如何在 R 中处理错误“Error in shapiro.test(…) : sample size must be between 3 and 5000”?
shapiro.test 在 R 中有一个限制,即它只能应用于最多 5000 个样本,并且最小样本量必须为 3。因此,我们有一个替代的假设检验称为 Anderson Darling 正态性检验。要执行此检验,我们需要加载 nortest 包并使用 ad.test 函数,如下例所示。
考虑以下数据框 -
示例
x<-rnorm(1000000) df1<-data.frame(x) head(df1,20)
输出
x 1 1.27305105 2 1.79910461 3 -1.05456918 4 0.27247323 5 -1.22709375 6 1.87211271 7 -0.98918543 8 -0.98504275 9 0.55901414 10 1.17920161 11 -0.16612397 12 -0.89614357 13 -0.70229748 14 1.16583130 15 -0.17427556 16 0.05428080 17 1.26193927 18 0.63517470 19 -0.02052002 20 -1.23316924
对 x 执行 shapiro.test -
shapiro.test(df1$x)
Error in shapiro.test(df1$x) : sample size must be between 3 and 5000
加载 nortest 包并对 x 执行 Anderson Darling 检验 -
library(nortest) ad.test(df1$x) Anderson-Darling normality test data: df1$x A = 0.21458, p-value = 0.8496
示例
y<-sample(0:9,500000,replace=TRUE) df2<-data.frame(y) head(df2,20)
输出
y 1 8 2 9 3 7 4 0 5 3 6 4 7 9 8 3 9 1 10 5 11 9 12 4 13 5 14 9 15 5 16 7 17 1 18 0 19 4 20 4
对 y 执行 Anderson Darling 检验 -
ad.test(df2$y) Anderson-Darling normality test data: df2$y A = 8634.6, p-value < 2.2e-16
广告