请注意,Shapiro-Wilk是对正态性的有力检验。
最好的方法实际上是对要使用的任何过程对各种非正常性的敏感程度有一个好主意(非正常性必须使这种非正常性影响到您的推理程度超过您的程度)可以接受)。
一种查看图表的非正式方法是生成一些实际上是正常的数据集,这些数据集的样本大小与您拥有的样本大小相同(例如,其中有24个)。在这些图的网格中绘制真实数据(在24个随机集的情况下为5x5)。如果看起来不是特别异常(例如看起来最糟),则可以与正常程度合理地保持一致。
在我看来,位于中心的数据集“ Z”与“ o”和“ v”甚至与“ h”大致相同,而“ d”和“ f”看起来稍差一些。“ Z”是实际数据。尽管我暂时不相信它是正常的,但是将其与正常数据进行比较时,它看起来并不特别。
[编辑:我刚刚进行了一次随机调查-好吧,我问我的女儿,但是是在相当随机的时间 -她对直线的选择至少是“ d”。因此,有100%的受访者认为“ d”是最奇数的。]
更正式的方法是进行Shapiro-Francia测试(该测试实际上是基于QQ图中的相关性),但是(a)它甚至不如Shapiro Wilk测试强大,并且(b)正式测试可以回答a问题(有时)是您应该已经知道答案的问题(从中提取数据的分布并不完全正常),而不是您需要回答的问题(问题有多严重?)。
根据要求,为以上显示代码。没什么花哨的:
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)
x
(至少从80年代中期开始,我一直在制作这样的图集。如果您不熟悉假设成立时和不成立时的行为,那么如何解释这些图?)
查看更多:
Buja,A.,Cook,D. Hofmann,H.,Lawrence,M.Lee,E.-K.,Swayne,DF和Wickham,H.(2009)探索性数据分析和模型诊断的统计推断。反式 R. Soc。A 2009 367,4361-4383 doi:10.1098 / rsta.2009.0120