shapiro.test出错:样本大小必须介于两者之间

时间:2015-01-29 14:36:41

标签: r normal-distribution

我有一个R中的矢量,有1521298个点,必须进行常态测试。我选择了Shapiro-Wilk测试,但R函数shapiro.test()说:

  

shapiro.test(z_scores)出错:样本大小必须介于3到5000之间

您是否知道其他任何测试功能或如何规避此问题?

2 个答案:

答案 0 :(得分:3)

使用超过5.000条记录无法完成Shapiro测试。

您可以尝试仅使用前5000个样本进行shapiro测试。 如果它可以帮助你,使用这样的代码:

shapiro.test(beaver2$temp[0:5000])

但请注意,测试只会使用您数据的前5000个样本。

另一方面,如果您需要使用样本的所有记录,请使用另一个类似的测试,例如Anderson-Darling正态性测试。 您也可以同时执行和比较,如下面的脚本:

# clean workspace
rm(list=ls())

# Install required packages:
install.packages('nortest')

#Model data tho use
ModelData = beaver2$temp

#Do shapiro test with only the first 5000 records
shapiro.test(ModelData[0:5000])$p.value

#Anderson-Darling normality test
library(nortest)
ad.test(ModelData)$p.value

答案 1 :(得分:0)

您可以尝试Anderson-Darling正态性测试,该测试适用于较大的样本量。

library(nortest)
ad.test(data$variable)