如何处理 R 中的错​​误“Shapiro.test(...) 中的错误:样本大小必须在 3 到 5000 之间”?

阅读 1818 收藏 0 点赞 0 评论 0

的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 上执行 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

评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号