到目前为止,我一直在使用 Shapiro-Wilk 统计量来测试小样本中的正态性假设。
你能推荐另一种技术吗?
到目前为止,我一直在使用 Shapiro-Wilk 统计量来测试小样本中的正态性假设。
你能推荐另一种技术吗?
R 中的fBasics包(Rmetrics的一部分)包括几个正态性检验,涵盖了许多流行的常客检验——Kolmogorov-Smirnov、Shapiro-Wilk、Jarque-Bera 和 D'Agostino——以及用于正态性检验的包装器在最北的包裹中——安德森-达林、克莱默-冯·米塞斯、利利福斯(Kolmogorov-Smirnov)、皮尔逊卡方和夏皮罗-弗朗西亚。包文档还提供了所有重要的参考资料。这是一个演示,展示了如何使用来自 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 - 他们研究了小样本分布)。偏度和峰度的渐近联合分布与小样本分布完全不同——就像香蕉看起来不像橙子一样。对于一些有趣的替代方案,它也具有非常低的功效 - 例如,它具有低功效来拾取具有接近正态分布的峰度的对称双峰分布。]
人们经常测试拟合优度,结果证明不是特别好的原因,或者他们回答的问题不是他们真正想要回答的问题。
例如,您几乎可以肯定已经知道您的数据并不真正正常(不完全正常),因此尝试回答您知道答案的问题是没有意义的 - 并且假设检验实际上并没有真正回答它。
鉴于您知道您还没有确切的正态性,您对正态性的假设检验确实为您提供了一个更接近“我的样本量是否足够大以获取我所拥有的非正态性数量”的问题的答案,而您有兴趣回答的真正问题通常更接近“这种非正态性对我感兴趣的其他这些事情有什么影响?”。假设检验是测量样本量,而您有兴趣回答的问题并不是非常依赖于样本量。
有时,正态性检验是有意义的,但这些情况几乎从不会发生在小样本中。
为什么要测试正常性?
为了完整起见,计量经济学家还喜欢他们 1983 年在《经济学快报》上发表的论文中的 Kiefer 和 Salmon 检验——它将偏度和峰度的“归一化”表达式求和,然后按卡方分布。我有一个我在读研究生时写的旧 C++ 版本,我可以翻译成 R。
编辑:这是 Bierens(重新)推导 Jarque-Bera 和 Kiefer-Salmon 的最新论文。
编辑 2:我查看了旧代码,看来这确实是 Jarque-Bera 和 Kiefer-Salmon 之间的相同测试。