我有一些我想测试正常性的样本。其中一个样本超过 5,000 个数据点,这是 shapiro 测试接受样本的上限。这是数据:
c1 <- exp(rnorm(505))
c2 <- exp(rnorm(550))
c3 <- exp(rnorm(5500))
cluster.data <- c(c1, c2, c3)
cluster.factors <- c(rep("Cluster_1", length(c1)),
rep("Cluster_2", length(c2)),
rep("Cluster_3", length(c3)))
# set up data for test:
cluster.df <- data.frame(cluster.data, cluster.factors)
为了规避 5,000 的限制,如果我只对较小的数据子样本进行测试,在统计上是否可以接受?例如,在这里,我为所有三个变量绘制了一个大小为 500 的子样本:
tapply(cluster.df[,1], cluster.df[,2], function(x) shapiro.test(sample(x, 500)))
并且测试返回了所有三个显着的结果:
$Cluster_1
Shapiro-Wilk normality test
data: sample(x, 500)
W = 0.59561, p-value < 2.2e-16
$Cluster_2
Shapiro-Wilk normality test
data: sample(x, 500)
W = 0.57891, p-value < 2.2e-16
$Cluster_3
Shapiro-Wilk normality test
data: sample(x, 500)
W = 0.67686, p-value < 2.2e-16