到目前为止,我一直在使用Shapiro-Wilk统计量来检验小样本中的正态性假设。
您能推荐另一种方法吗?
到目前为止,我一直在使用Shapiro-Wilk统计量来检验小样本中的正态性假设。
您能推荐另一种方法吗?
Answers:
R中的fBasics软件包(Rmetrics的一部分)包括几个正常性测试,包括许多流行的频繁性测试 -Kolmogorov-Smirnov,Shapiro-Wilk,Jarque-Bera和D'Agostino-以及用于正常性测试的包装在标准包装中-安德森-达林(Anderson-Darling),克雷默 -冯·米塞斯(Cramer-von Mises),小里尔(Lilliefors)(科尔莫格罗夫-斯米尔诺夫(Kolmogorov-Smirnov)),皮尔逊卡方(Pearson chi-square)和夏皮罗-弗朗西亚(Shapiro-Francia)。软件包文档还提供了所有重要参考。这是一个演示,演示了如何使用nortest中的测试。
如果有时间,一种方法是使用多个测试并检查是否一致。测试以多种方式变化,因此选择“最佳”并非完全简单。您所在领域的其他研究人员还使用什么?这可能会有所不同,因此最好坚持接受的方法,以便其他人会接受您的工作。由于部分原因,我经常使用Jarque-Bera检验,并使用Anderson-Darling进行比较。
您可以查看“单变量正态性检验的比较”(Seier 2002)和“各种正态性检验的比较”(Yazici; Yolacan 2007)以进行问题的比较和讨论。
由于所有分布函数,测试这些方法以在R中进行比较也很简单。这是一个带有模拟数据的简单示例(我将不会打印出结果来节省空间),尽管需要更全面的说明:
library(fBasics); library(ggplot2)
set.seed(1)
# normal distribution
x1 <- rnorm(1e+06)
x1.samp <- sample(x1, 200)
qplot(x1.samp, geom="histogram")
jbTest(x1.samp)
adTest(x1.samp)
# cauchy distribution
x2 <- rcauchy(1e+06)
x2.samp <- sample(x2, 200)
qplot(x2.samp, geom="histogram")
jbTest(x2.samp)
adTest(x2.samp)
获得不同分布上的各种测试的结果后,就可以比较哪种方法最有效。例如,上面的Jarque-Bera检验的p值对于正态分布(接受)返回0.276,对于柯西系数,则返回<2.2e-16(拒绝原假设)。
为了正常,实际的Shapiro-Wilk在相当小的样本中具有良好的功效。
我看到的研究的主要竞争者是比较普通的Anderson-Darling,虽然表现不错,但我不会说这会更好。如果您可以弄清您感兴趣的替代方案,则更好的统计数据可能会更加明显。[编辑:如果您估计参数,则应为此调整AD测试。]
[我强烈建议您不要考虑在小样本中使用Jarque-Bera(在统计界中可能更名为Bowman-Shenton,他们研究了小样本分布)。偏度和峰度的渐近联合分布是不一样的小样本分布-以同样的方式香蕉看起来并不像一个橘子。与某些有趣的替代方法相比,它的功率也非常低-例如,它的峰度接近于正态分布的对称双峰分布的功率很低。]
人们经常出于并非特别好的原因而测试适合度,或者回答的问题不是他们真正想回答的问题。
例如,您几乎可以肯定已经知道您的数据不是很正常(不是完全正确),因此尝试回答您知道答案的问题毫无意义-假设检验实际上并没有回答它。
既然您知道您还没有确切的正态性,那么正态性的假设检验实际上是在为您回答一个更接近于“我的样本量是否足以容纳我所拥有的非正态性数量”的问题的答案,而你有兴趣在回答真正的问题通常更接近是“什么是影响这种非正常的对我有兴趣在这些其他的事情?”。假设检验正在测量样本量,而您想回答的问题并不是非常依赖样本量。
有时候,对正常性进行测试是有道理的,但是那些情况很少出现在小样本上。
为什么要测试正常性?
关于正常性测试,有一个完整的Wikipedia类别,包括:
我认为AD可能是其中最好的。
实际上,Kiefer Salmon检验和Jarque Bera检验在几个地方都表现出了很大的不同,但是最近在这里 - 标准化误差分布的矩量检验:陈奕婷的一种简单稳健方法。与标准的Jarque Bera测试不同,面对ARCH类型的错误结构,通过构造进行的Kiefer Salmon测试非常可靠。陈奕婷的论文开发并讨论了我认为目前可能是最好的测试。
对于小于30名受试者的样本量,Shapiro-Wilk被认为具有强大的功效- 调整测试的显着性水平时要小心,因为它可能引起II型错误![1]