r - 如何同时测试R中多个变量的正态性?

标签 r normal-distribution

我有一个由 20 个观察值和 35 个变量组成的数据框。

一个变量的正态性检验将是

shapiro.test(mydata$var1)

我想同时测试所有变量的正态性。我怎样才能在 R 中做到这一点?

最佳答案

这在很大程度上取决于您正在寻找什么样的输出以及您希望做什么来控制家庭错误率。这是使用 Bonferroni 校正的一种解决方案

# example data
t <- as.data.frame(matrix(rnorm(700), 20,35))

shapiro_test_df <- function(df, bonf= TRUE, alpha= 0.05) {
  l <- lapply(df, shapiro.test)
  s <- do.call("c", lapply(l, "[[", 1))
  p <- do.call("c", lapply(l, "[[", 2))
  if (bonf == TRUE) {
    sig <- ifelse(p > alpha / length(l), "H0", "Ha")
  } else {
    sig <- ifelse(p > alpha, "H0", "Ha")
  }
  return(list(statistic= s,
              p.value= p,
              significance= sig,
              method= ifelse(bonf == TRUE, "Shapiro-Wilks test with Bonferroni Correction",
                             "Shapiro-Wilks test without Bonferroni Correction")))
}

shapiro_test_df(t)

关于r - 如何同时测试R中多个变量的正态性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33489330/

相关文章:

r - 如何将 rbind 数据帧转换为 rbind 数据帧?

r - 更改 googleVis 时间轴图表上的轴限制

r - 加载 RData、Package 时有 Shiny 的进度条?

c - C 中 0 和 1 [0, 1) 之间的归一化随机数分布

R - R 中的多元正态分布

email - 如何使用 R 发送/接收(SMTP/POP3)电子邮件?

r - 汇集估算数据集的 glmers

php - php用小数据生成不同的钟形曲线

matlab - 从半高斯分布中采样

statistics - 计算两个叠加的高斯函数的质心