如何处理 R 中的错误“Shapiro.test(...) 中的错误:样本大小必须在 3 到 5000 之间”?
的shapiro.test具有R中的限制,它可以最多只能应用于大小5000的样品和至少样本大小必须是3。因此,我们有所谓的安德森达林正态性检验的替代假设检验。要执行此测试,我们需要加载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
shapiro.test在x上执行-
shapiro.test(df1$x)
shapiro.test(df1$x)中的错误:样本大小必须在3到5000之间
加载nortest包并在x上执行AndersonDarling测试-
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执行AndersonDarling测试-
ad.test(df2$y) Anderson-Darling normality test data: df2$y A = 8634.6, p-value < 2.2e-16