这不正常,是吗?
在最近几次关于使用参数检验的讨论中,数据是否服从正态分布(或是否通过了正态性拟合优度检验)的问题已经出现。在每种情况下,样本量都相对较低(<30),结论是数据不是来自正态分布的总体。接下来的步骤涉及一些复杂的转换步骤,这些步骤使分析变得过于复杂。
我开始想知道,当基础总体实际上是正态分布时,拟合优度检验失败的概率有多大,或者 I 类错误率是多少。另一方面,如果总体只是稍微偏斜,非正态,那么它通过拟合优度检验的概率有多大?
首先,我使用一些随机函数作为数据表中的公式,从正态分布的总体和伽马分布的总体中生成了 10 个样本集。随机正态 (20,4) 和随机伽马 (20)。总体统计数据清楚地表明,正态分布是正态的,而伽马分布未通过正态性检验(图 1)。

图 1. 正态分布或伽马分布的总体分布比较。样本量为 10,000。样本量较大时,伽马分布总体(左图)的尾部明显超出了正态分位数图中正态概率回归线的 95% 置信区间(红色虚线)。
将大型数据集 (n=100,000) 分成 10 个组,并使用与图 1 中数据集相同的检验方法对每个子组 (n=10,000) 进行正态性检验。小概率值拒绝数据来自正态分布的零假设,因此使用 0.05 的截断值来确定子组是否通过拟合优度检验。表格结果显示在图 2 中。Anderson-Darling 和 Shapiro-Wilk 拟合优度检验都标记了相似比例的样本组。来自正态分布的组失败的概率约为 5%,而来自伽马分布的组通过的概率约为 94%(失败的概率约为 6%)。

图 2. 未通过拟合优度检验的样本比例。样本组 (n=10) 中符合正态分布的概率 <= 0.05 的样本组标记为“1”,通过的样本组标记为“0”。
我对正态分布样本的 1 类错误率感到有些惊讶(也许我不应该感到惊讶……)这意味着,如果样本量很小,大约 1/20,那么来自基础正态分布总体的数据将无法通过拟合优度检验。来自略微倾斜的总体的样本具有类似的检测率。
显然问题在于样本量太小?下一步是对相同的测试组进行越来越大的样本量测试。当然,样本量稍大一点,假阳性率就会大幅下降。下一步是测试 30 个子组,效果不大,然后是 100、300 和 1000 个子组。现在,为了让事情保持平衡,我希望子组数为 n=10,000;但是,表格开始变大,分析开始变慢,所以我以 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 );
韓國
我开始想知道,当基础总体实际上是正态分布时,拟合优度检验失败的概率有多大,或者 I 类错误率是多少。另一方面,如果总体只是稍微偏斜,非正态,那么它通过拟合优度检验的概率有多大?
另一个有趣的考虑因素(特别是如果您正在执行过程能力分析)是,当比较基于 AICc 的分布时,正态分布不会位于列表顶部的概率是多少。