我有一个包含1521298个点的向量,在R中需要对其进行正态性检验。我选择了Shapiro-Wilk检验,但R函数shapiro.test()
显示:
Error in shapiro.test(z_scores) : 样本大小必须在3到5000之间
你知道其他任何可用于测试或如何规避此问题的函数吗?
我有一个包含1521298个点的向量,在R中需要对其进行正态性检验。我选择了Shapiro-Wilk检验,但R函数shapiro.test()
显示:
Error in shapiro.test(z_scores) : 样本大小必须在3到5000之间
你知道其他任何可用于测试或如何规避此问题的函数吗?
Shapiro检验无法使用超过5,000个记录。
您可以尝试仅使用前5,000个样本进行Shapiro检验。 如果有帮助,请使用类似以下代码的代码:
shapiro.test(beaver2$temp[0:5000])
但要注意,测试将仅使用您数据的前 5,000 个样本。
另一方面,如果您需要使用样本的所有记录,请使用另一个类似的测试,例如 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
library(nortest)
ad.test(data$variable)
nortest
包)。 (2) 你能否评论一下为什么要进行这个测试?如果你有如此大的数据集,我几乎可以保证你会以非常低的p值拒绝正态性假设。 - Ben Bolker