shapiro.test 中的错误:样本大小必须介于

Pet*_*and 10 r normal-distribution

我在 R 中有一个向量,有 1521298 个点,必须对其进行正态性测试。我选择了 Shapiro-Wilk 测试,但 R 函数shapiro.test()说:

shapiro.test(z_scores) 中的错误:样本大小必须在 3 到 5000 之间

你知道任何其他功能来测试它或如何规避这个问题吗?

Wag*_*ano 7

使用超过 5.000 条记录无法完成夏皮罗测试。

您可以尝试仅使用前 5.000 个样本进行 shapiro 测试。如果它可以帮助您,请使用如下代码:

shapiro.test(beaver2$temp[0:5000])
Run Code Online (Sandbox Code Playgroud)

但请注意,测试将仅使用数据的前 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
Run Code Online (Sandbox Code Playgroud)


小智 5

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

library(nortest)
ad.test(data$variable)
Run Code Online (Sandbox Code Playgroud)