解释 QQplot - 是否有任何经验法则可以决定非正态性?

机器算法验证 解释 正态假设 QQ图
2022-02-07 07:36:19

我在这里阅读了足够多的关于 QQplots 的主题,以了解 QQplot 可以比其他正态性测试提供更多信息。但是,我对解释 QQplots 缺乏经验。我用谷歌搜索了很多;我发现了很多非正态 QQ 图的图表,但没有关于如何解释它们的明确规则,除了看起来与已知分布和“直觉”的比较。

我想知道您是否有(或您知道)任何经验法则来帮助您决定非正态性。

当我看到这两张图时,这个问题出现了: 图2 图1

我了解非正态性的决定取决于数据以及我想用它们做什么;但是,我的问题是:一般来说,观察到的偏离直线的情况何时构成足够的证据来使正态性近似变得不合理?

无论如何,Shapiro-Wilk 检验在这两种情况下都未能拒绝非正态性假设。

4个回答

请注意,Shapiro-Wilk 是对正态性的有力检验。

最好的方法是真正了解您要使用的任何程序对各种非正态性的敏感程度(它必须以这种方式有多严重的非正态性才能影响您的推理而不是您可以接受)。

查看图表的一种非正式方法是生成许多数据集,这些数据集实际上与您拥有的样本大小相同(例如,其中 24 个)是正常的。在此类图的网格中绘制您的真实数据(在 24 个随机集的情况下为 5x5)。如果它不是特别不寻常的外观(比如说最糟糕的外观),那么它与正常情况相当一致。

在此处输入图像描述

在我看来,中心的数据集“Z”看起来与“o”和“v”甚至可能与“h”大致相当,而“d”和“f”看起来稍差一些。“Z”是真实数据。虽然我暂时不相信它实际上是正常的,但当你将它与正常数据进行比较时,它并不是特别不寻常。

[编辑:我刚刚进行了一项随机民意调查——好吧,我问了我的女儿,但在一个相当随机的时间——她最不喜欢直线的选择是“d”。因此,100% 的受访者认为“d”是最奇怪的。]

更正式的方法是进行 Shapiro-Francia 测试(它有效地基于 QQ 图中的相关性),但是(a)它甚至不如 Shapiro Wilk 测试强大,并且(b)正式测试答案是问题(有时)您应该已经知道答案(您的数据所来自的分布并不完全正常),而不是您需要回答的问题(这有多重要?)。


根据要求,上述显示的代码。没有什么花哨的:

    z = lm(dist~speed,cars)$residual
    n = length(z)
    xz = cbind(matrix(rnorm(12*n), nr=n), z, 
         matrix(rnorm(12*n), nr=n))
    colnames(xz) = c(letters[1:12],"Z",letters[13:24])
    
    opar = par()
    par(mfrow=c(5,5));
    par(mar=c(0.5,0.5,0.5,0.5))
    par(oma=c(1,1,1,1));
    
    ytpos = (apply(xz,2,min)+3*apply(xz,2,max))/4
    cn = colnames(xz)
    
    for(i in 1:25) {
      qqnorm(xz[, i], axes=FALSE, ylab= colnames(xz)[i], 
             xlab="", main="")
      qqline(xz[,i],col=2,lty=2)
      box("figure", col="darkgreen")
      text(-1.5,ytpos[i],cn[i])
    }
    
    par(opar)

请注意,这只是为了说明;我想要一个看起来有点不正常的小数据集,这就是为什么我使用汽车数据线性回归的残差(模型不太合适)。但是,如果我实际上是为回归的一组残差生成这样的显示,我会上回归所有 25 个数据集,并显示其残差的 QQ 图,因为残差有一些结构不存在于正常随机数中。x

(至少从 80 年代中期开始,我就一直在制作这样的图集。如果您不熟悉当假设成立时它们的行为方式——以及当它们不成立时的行为方式,您如何解释这些图?)

看更多:

Buja, A.、Cook, D. Hofmann, H.、Lawrence, M. Lee, E.-K.、Swayne, DF 和 Wickham, H. (2009) 探索性数据分析和模型诊断的统计推断 Phil。反式。R. Soc。A 2009 367, 4361-4383 doi: 10.1098/rsta.2009.0120

在不与这里的任何优秀答案相矛盾的情况下,我有一个经验法则,它通常(但不总是)决定性的。(@Dante 在答案中的一条评论似乎也很相关。)

有时这似乎太明显了,但你在这里。

如果我认为我可以提供明显更合适的不同描述,我很乐意将分布称为非正态分布。

因此,如果在正常的分位数-分位数图的尾部有轻微的曲率和/或不规则性,但在 gamma 分位数-分位数图上是近似直线度,我可以说“这不能很好地表征为正常;它更像是 gamma ”。

这与历史和科学哲学中的一个标准论点相呼应,更不用说一般科学实践,这并非偶然,即当你有一个更好的假设可以代替它时,一个假设会得到最清晰有效的反驳。(提示:对 Karl Popper、Thomas S. Kuhn 等人的暗示。)

的确,对于初学者,实际上对于每个人来说,在“这是正常的,除了我们总是预料到的轻微的不规则性”和“这与正常的非常不同,除了我们经常得到的一些粗略的相似之处”之间存在一个平滑的渐变”。

信心(类似)信封和多个模拟样本可以提供强大的帮助,我使用并推荐两者,但这也很有帮助。(顺便说一句,与模拟组合进行比较是最近的重复发明,但至少可以追溯到 1931 年的休哈特。)

我会回应我的顶线。有时,似乎根本没有品牌分布适合,你必须尽你所能前进。

就像@Glen_b 说的那样,您可以将您的数据与您确定正常的数据进行比较 - 您自己生成的数据,然后依靠您的直觉:)

以下是来自OpenIntro Statistics教科书的示例

我们来看看这个QQ图:

qq1

正常吗?让我们将其与正态分布的数据进行比较:

QQ2

这个看起来比我们的数据好,所以我们的数据看起来不太正常。让我们通过多次模拟并并排绘制来确保

QQ3

所以我们的直觉告诉我们样本不太可能是正常分布的。

这是执行此操作的 R 代码

load(url("http://www.openintro.org/stat/data/bdims.RData"))
fdims = subset(bdims, bdims$sex == 0)

qqnorm(fdims$wgt, col=adjustcolor("orange", 0.4), pch=19)
qqline(fdims$wgt)

qqnormsim = function(dat, dim=c(2,2)) {
  par(mfrow=dim)
  qqnorm(dat, col=adjustcolor("orange", 0.4), 
         pch=19, cex=0.7, main="Normal QQ Plot (Data)")
  qqline(dat)
  for (i in 1:(prod(dim) - 1)) {
    simnorm = rnorm(n=length(dat), mean=mean(dat), sd=sd(dat))
    qqnorm(simnorm, col=adjustcolor("orange", 0.4), 
           pch=19, cex=0.7,
           main="Normal QQ Plot (Sim)")
    qqline(simnorm)
  }
  par(mfrow=c(1, 1))
}
qqnormsim(fdims$wgt)

有许多正常性测试。人们通常关注原假设,即“H0:F=Normal”。但是,很少有人注意替代假设:“反对什么”?

通常,将任何其他分布视为备择假设的检验与具有正确备择假设的检验(例如,参见12)相比,功效较低。

有一个有趣的 R 包,它实现了几个非参数正态性检验('nortest',http://cran.r-project.org/web/packages/nortest/index.html)。正如上面的论文中提到的,具有适当替代假设的似然比检验比这些检验更强大。

@Glen_b 提到的关于将您的样本与您的(拟合)模型中的随机样本进行比较的想法在我的第二个参考资料中提到。它们被称为“QQ 信封”或“QQ 粉丝”。这隐含地需要有一个模型来生成数据,因此需要一个替代假设。