這不正常,不是嗎?
在最近關於使用參數檢定的幾次討論中,出現了數據是否呈正態分佈(或通過正態性適合度檢定)的問題。在每種情況下,樣本量都相對較低(<30),結論是資料並非來自常態分佈的總體。接下來的步驟涉及一些複雜的轉換步驟,使分析變得過於複雜。
我開始想知道當基礎總體實際上呈正態分佈時,擬合優度檢定失敗的可能性有多大,或者 I 類錯誤率是多少。另一方面,如果總體有一點偏差、非常態,那麼它通過擬合優度檢定的頻率有多少?
首先,我使用一些隨機函數作為資料表中的公式,從常態分佈總體和伽瑪分佈總體中產生了 10 個樣本集。隨機法線 (20,4) 和隨機伽瑪 (20)。總體統計數據清楚地表明,常態分佈是常態分佈,而伽瑪分佈未通過常態性檢定(圖 1)。

圖 1. 常態分佈或伽瑪分佈的總體分佈比較。樣本量為 10,000。由於樣本量較大,伽瑪分佈總體的尾部(左圖)明顯落在常態分位數圖中常態機率迴歸線的 95% 信賴區間(紅色虛線)之外。
將大型資料集 (n=100,000) 分為 10 個組,並使用與圖 1 中的資料集相同的測試來測試每個子組 (n=10,000) 的常態性。數據來自常態分佈,因此使用0.05 的截斷值來確定子組是否通過適合度檢定。表格結果如圖 2 所示。來自正常群體的組別在大約 5% 的時間裡失敗了,來自伽瑪分佈群體的組別在大約 94% 的時間裡通過了(大約 6%)的失敗。

圖 2. 未通過適合度檢定的樣本比例。服從常態分佈的機率 <= 0.05 的樣本組 (n=10) 被標記為“1”,透過組別被標記為“0”。
我對正態分佈樣本的 1 類錯誤率感到有點驚訝(也許我不應該…)這意味著,如果樣本量很小,大約 20 次中有 1 次,來自基礎正態分佈總體的數據將未能通過適合度檢定。來自稍微傾斜的人群的樣本具有相似的檢出率。
顯然問題是樣本數少?下一步是用越來越大的樣本量進行相同的測試組。當然,樣本稍大一點,假陽性率就會急劇下降。下一步是測試 30 個子組,效果甚微,然後是 100、300 和 1000 個子組。然而,表格開始變大,分析開始變慢,所以我停止了 1000 個樣本量。依照我的科學觀點,3 個樣本量是最小的,10 個樣本量就很多了,30 個樣本數就顯得愚蠢了。事實證明,正確的數字可能要高得多,才能真正可靠地評估擬合優度。圖 3 包含了我使用的樣本量未能通過適合度檢定的樣本比例。

圖 3. 非常態樣本的比例。針對 Anderson-Darling 和 Shapiro-Wilk 檢定繪製了每個樣本大小的非常態樣本比例。樣本來自呈常態分佈的總體。
根據這些模擬中的數據和分析,我對於在不仔細查看數據的情況下接受擬合優度測試的結果更加謹慎。我非常猶豫是否要在驗收標準或處理資料的 SOP 中加入適合度統計資料。盲目地用數據跑幾乎和用剪刀跑一樣安全?我想這引出了一個問題:如何更好地評估參數檢定的常態性假設。也許這是未來部落格文章的一個很好的主題。
如果您想改進我用於質疑正態性檢定誤報率的方法,或者只是想嘗試重現我的結果,我在下面提供了用於生成資料的腳本。在腳本中,有關於在哪裡更改表格大小和樣本大小值的註釋。
Names Default To Here( 1 );
dt = New Table( "Source Data",
Add Rows( 10000 ), //Change row number when using larger sample sizes
New Column( "Normal", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Normal( 20, 4 ) ) ),
New Column( "Gamma", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Gamma( 20 ) ) ),
//Change the number of times the group column repeats for larger or smaller sample sizes
New Column( "group", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sequence( 1, N Rows(), 1, 10 ) ) )
);
rpt = New Window( "Distribution",
dt << Distribution(
Continuous Distribution(
Column( :Normal ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Process Capability( 0 ),
Fit Normal( Goodness of Fit( 1 ) )
),
Continuous Distribution(
Column( :Gamma ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Process Capability( 0 ),
Fit Normal( Goodness of Fit( 1 ) )
),
By( :group )
)
);
Wait( 0 );
//Get tables from the report
dt1 = rpt["Distributions", "group=1", "Normal", "Fitted Normal Distribution", "Goodness-of-Fit Test", Table Box( 1 )] << Make Combined Data Table;
dt1 << set name( "AD" );
dt2 = rpt["Distributions", "group=1", "Normal", "Fitted Normal Distribution", "Goodness-of-Fit Test", Table Box( 2 )] << Make Combined Data Table;
dt2 << set name( "SW" );
rpt << Close Window;
//table formatting
dt1 << New Formula Column( Operation( Category( "Row" ), "Row" ), Columns( :Table ) );
dt2 << New Formula Column( Operation( Category( "Row" ), "Row" ), Columns( :Table ) );
dt1:Column 1 << Set Name( "Goodness of Fit Test" );
dt2:Column 1 << Set Name( "Goodness of Fit Test" );
Column( dt1, 7 ) << Set Name( "Fit" );
Column( dt2, 7 ) << Set Name( "Fit" );
Column( dt1, 8 ) << Set Name( "Prob" );
Column( dt2, 8 ) << Set Name( "Prob" );
dt3 = dt1 << Concatenate( dt2, Output Table( "Goodness of Fit Tests" ) );
Close( dt, nosave );Close( dt1, nosave );Close( dt2, nosave );
sfsdff
我開始想知道當基礎總體實際上呈正態分佈時,擬合優度檢定失敗的可能性有多大,或者 I 類錯誤率是多少。另一方面,如果總體有一點偏差、非常態,那麼它通過擬合優度檢定的頻率有多少?
另一個有趣的考慮因素(特別是如果您正在執行製程能力分析)是在比較基於 AICc 的分佈時,常態分佈不會排在清單首位的機率是多少。