我有一个R中的矢量,有1521298个点,必须进行常态测试。我选择了Shapiro-Wilk测试,但R函数shapiro.test()
说:
shapiro.test(z_scores)出错:样本大小必须介于3到5000之间
您是否知道其他任何测试功能或如何规避此问题?
答案 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)