我使用 Kolmogorov-Smirnov、Cramer-von Mises 和 Anderson-Darling 检验来检查 OLS 回归残差的正态性。令我感到困惑的是,尽管 R 和 SAS 为所有测试提供了相同的测试统计量,但产生的 p 值却截然不同。以下是我的结果摘要
Test | Test-Statistic | p-value in R | p-value in SAS
Kolmogorov-Smirnov| 0.12607 | 0.3506 | 0.038
Cramer-von Mises | 0.14958 | 0.3919 | 0.023
Anderson-Darling | 0.80307 | 0.4782 | 0.037
我用来生成结果的 R 命令是
ks.test(model$residuals, 'pnorm',mean(model$residuals), sd(model$residuals))
library(goftest)
ad.test(model$residuals, 'pnorm',mean(model$residuals), sd(model$residuals))
cvm.test(model$residuals, 'pnorm',mean(model$residuals), sd(model$residuals))
SAS 中的以下代码是生成结果的宏的一部分
data _ar_norm2_(drop=testlab);
set _ar_normality_(where=(testlab='D') keep=testlab pvalue;
run;
data _ar_norm3_(drop=testlab);
set _ar_normality_(where=(testlab='W-Sq') keep=testlab pvalue;
run;
data _ar_norm4_(drop=testlab);
set _ar_normality_(where=(testlab='A-Sq') keep=testlab pvalue;
run;
这种差异的根本原因是什么?
编辑
非常感谢 Glen_b!你的答案是正确的。
library(nortest)
lillie.test(model$residuals)
ad.test(model$residuals)
cvm.test(model$residuals)
p 值 = 0.0382
p 值 = 0.03513
p 值 = 0.02311