R:检验线性模型残差的正态性-使用哪些残差


13

我想对线性模型的残差进行Shapiro Wilk的W检验和Kolmogorov-Smirnov检验,以检查正态性。我只是想知道应该使用什么残差-原始残差,Pearson残差,学生化残差或标准化残差?对于Shapiro-Wilk的W检验,原始和Pearson残差的结果似乎相同,而其他残差的结果则不同。

fit=lm(mpg ~ 1 + hp + wt, data=mtcars)
res1=residuals(fit,type="response")
res2=residuals(fit,type="pearson")
res3=rstudent(fit)
res4=rstandard(fit)
shapiro.test(res1) # W = 0.9279, p-value = 0.03427
shapiro.test(res2) # W = 0.9279, p-value = 0.03427
shapiro.test(res3) # W = 0.9058, p-value = 0.008722
shapiro.test(res4) # W = 0.9205, p-value = 0.02143

关于KS的同样问题,以及是否应按照以下方法针对正态分布(范数)测试残差

ks.test(res1, "pnorm") # D = 0.296, p-value = 0.005563

或nk-2自由度的t型学生分布,例如

ks.test(res3, "pt",df=nrow(mtcars)-2-2) 

有什么建议吗?另外,为了使分布足够接近正态且不会过多影响您的推论,检验统计量W(> 0.9?)和D的推荐值是多少?

最后,这种方法是否考虑了拟合lm系数的不确定性,或者在这方面cumres()封装功能gof()会更好?

干杯,汤姆


9
这种测试很少有任何意义。问问自己,如果残差被证明是“明显”不正常的,您将采取什么具体措施。经验告诉您,这取决于它们与正常水平之间的差异以及差异。这些均不能通过SW,KS或任何其他正式的分布测试直接(或充分地)测量。对于这项工作,您要使用探索性图形,而不是形式化测试。哪些残差可能适合绘制的问题仍然存在,但是其余的问题则无关紧要。
ub

是的,我注意到许多统计学家都主张这一立场。但是我仍然想检查这些测试的测试统计信息(例如,检查Shapiro Wilks W的值是否大于0.9)。而且我总是可以进行Box-Cox变换或类似的方法来在出现较大偏差的情况下提高正态性。再者,我的问题在某种程度上也是概念性的-也就是说,即使在实践中正常性并不总是那么重要,这是什么最正确的方式呢?
Tom Wenseleers 2014年

Answers:


9

长了一段时间才发表评论。

  1. 对于普通的回归模型(例如由拟合lm),您考虑的前两种残差类型之间没有区别;type="pearson"与非高斯GLM相关,但与response高斯模型相同。

  2. 您将测试应用到的观察值(某种形式的残差)不是独立的,因此通常的统计数据没有正确的分布。此外,严格来说,您考虑的残差都不是完全正常的,因为您的数据永远不会是完全正常的。[正式测试回答了错误的问题-一个更相关的问题是“这种非正态性会在多大程度上影响我的推论?”,这个问题通常无法通过拟合假设检验来回答。

  3. 即使您的数据是完全正常的,第三种或第四种残差都不是完全正常的。然而,人们检查这些数据(例如用QQ绘图)比原始残差要普遍得多。

  4. X

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.