我正在尝试使用mvnormtest软件包执行Shapiro-wilk测试:
mvnormtest::mshapiro.test(data)
但是有一个错误:
mshapiro.test(data)中的错误:U []不是矩阵的 列(样本量)在3到5000之间
尽管数据尺寸为40000x10,但它没有运行。
数据样本为:
structure(list(V1 = c(78.16, 99.19, 99.95, 102.44, 91.2, 0, 0, 0, 0, 0), V2 = c(9588736, 102400, 102400, 102400, 1593344, 4112384, 4112384, 4112384, 4112384, 4112384), V3 = c(149422080L, 145465344L, 138002432L, 137867264L, 103489536L, 81920L, 81920L, 81920L, 81920L, 81920L)), .Names = c("V1", "V2", "V3"), row.names = c(NA, 10L), class = "data.frame")
答案 0 :(得分:0)
让我们生成一个包含6,000列的数据集:
df <- matrix(rnorm(6000 * 10), nrow=10)
> mvnormtest::mshapiro.test(df)
Error in mvnormtest::mshapiro.test(df) :
sample size must be between 3 and 5000
很明显,样本在行中,变量在列中。因此,问题在于您使用的测试版本中的消息令人困惑,错误地指出了“列”而不是“行”。我的版本(0.1-9)只是抱怨样本数量太大。
但是,我认为您仍然会遇到问题:您有40,000个变量和10个样本,这意味着mshapiro.test将遇到奇点问题。