如何使用 R 自动化柯尔莫果洛夫 - 斯米尔诺夫测试


可以

自动化它(使用循环,函数或其他东西)吗?目前,我正在"手动"完成所有工作(换句话说,一步一步),这对我来说很烦人。我使用 kstest()。

考虑原假设 H0 : X ∼ N(0, 1)。

对于不同的 μ 值(例如 μ = 0, 0.25, 0.50, 0.75, 1,),以及不同的 n 值(例如 n = 25, 50, 100),请执行以下步骤:

  • 从 N(μ, 1) 生成 1000 个样本。
  • 对于每个样本,检验假设 H0 : X ∼ N(0, 1)。
  • 获取每种情况下的拒绝频率。
  • 当原假设为真时,检查水平是否近似良好(例如,取α = 0.10、0.05、0.01)。

非常感谢。

我写了一个函数来获取接受零假设的数字比例,当你输入 $\mu$、n 和 $\alpha$ 时:

library(stats)
anxo <- function(mu, n, alpha){
  prop <- 0
  for (i in 1:n) {
     x <- rnorm(1000, mu, 1)
     if (ks.test(x, pnorm)$p.value > alpha) {
     prop <- prop + 1
     }
  }
  return(prop/n)
}

最新更新