对R中多个变量的Shapiro-Wilk正态性检验

时间:2017-03-18 03:25:34

标签: r variables

Shapiro-Wilk对R中多个变量的正态性检验:我有一个名为data的数据集,以及三个连续变量a,b,c。如何编写for循环分别对变量执行shapiro.test()?

3 个答案:

答案 0 :(得分:1)

由朋友捐赠。

for (i in 1:3){print(shapiro.test(data[,i]))}

答案 1 :(得分:0)

  

如果您有3个向量a,b,c:

    vars <- list(a, b, c)
    result <- list()
    for(i in seq(length(vars))) {
        result <- append(result, shapiro.test(vars[[i]]))
    }
  

如果您有数据框:

    result <- list()
    for(i in seq(dim(data)[2])) {
        result <- append(result, shapiro.test(data[[i]]))
    }

答案 2 :(得分:0)

您也知道,通过这种方式循环独立的假设测试通常是一种不好的做法。每次这样做,你都会承担少量的风险(通常为5%,如果alpha为0.05),那么如果你有100个变量,那么你真的会接受0.05+0.05+0.05+...+0.05 = 0.05*100的总风险。这是不合理的。即使他们都通过了正常性的考验,你现在肯定(概率 - 盟友),他们不相信他们都是正确的。它不是如上所述的严格添加剂,而是接近的。每个变量0.95对你的结论都有信心,然后第二次成为0.95^2,所以它继续。这使你最终对其总体正常性有一个(通常)很小的信心。虽然统计学家过去曾这样做过。不鼓励。