r - 关于 R 中正态性检验的小型模拟研究

标签 r statistics

我正在进行一项小型模拟研究,以判断两个正态性检验到底有多好。我的计划是生成大量不太多观察值的正态分布样本,并确定每个检验拒绝正态零假设的频率。

到目前为止我拥有的(不完整)代码是

  library(nortest)
  y<-replicate(10000,{
     x<-rnorm(50)
     ad.test(x)$p.value
     ks.test(x,y=pnorm)$p.value
   }
   )

现在我想计算每次测试中 p 值小于 0.05 的比例。你能告诉我该怎么做吗?如果这是一个新手问题,我很抱歉,但我自己对 R 来说还是个新手。

谢谢。

最佳答案

 library(nortest)
 nsim <- 10000
 nx <- 50

 set.seed(101)
 y <- replicate(nsim,{
    x<-rnorm(nx)
    c(ad=ad.test(x)$p.value,
      ks=ks.test(x,y=pnorm)$p.value)
  }
 )
 apply(y<0.05,MARGIN=1,mean)
 ##     ad     ks 
 ## 0.0534 0.0480

使用 MARGIN=1 告诉 apply 取行间的平均值,而不是列的平均值 - 考虑到 replicate() 的顺序,这是明智的code> 的内置简化产生。

对于此类示例,任何标准测试的 I 类错误率将极其接近其标称值(本例中为 0.05)。

关于r - 关于 R 中正态性检验的小型模拟研究,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27305155/

相关文章:

r - 基于变异内匹配正则表达式的条件 str_replace?

javascript - Shiny 的 R : Change border color of selectInput

r - 转换为日期和剥离时间?

r - ggplot2 的组合图(不在单个图中),使用 par() 或 layout() 函数?

c# - 如何确定一组值的标准偏差 (stddev)?

r - 在 RStudio 中处理带有 .Rtex 扩展名的文件,如 knit/Sweave 文件

math - 如何使用 Welford 的在线算法计算更新和删除的值

python - Python 中的列联表

algorithm - 以编程方式确定项目列表(书籍、歌曲、电影等)的相对 "popularities"

python - 什么是 [Sci/Num]Python 相当于 Matlabs "norminv"(正态逆累积分布函数)