You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计模拟t-test的拒绝次数?解决代码中rejects无法更新问题

解决t检验模拟中拒绝原假设计数的问题

你的代码里rejects始终为0,核心问题有两个:

  • 没有捕获t.test()的输出结果,根本没法获取p值来判断是否拒绝原假设
  • 误用了update()函数——这个函数是用来更新统计模型的,完全不适合用来更新普通变量

直接修改代码如下,核心是捕获检验结果并判断p值:

set.seed(5)
simulation <- function(n, mu, sigma, mu0, alpha) {
  rejects <- 0
  S <- 100
  for(i in 1:S) {
    sample <- rnorm(n, mean=mu, sd=sigma)
    # 保存t检验的完整结果
    tt_out <- t.test(sample, mu=mu0)
    # 当p值小于显著性水平alpha时,拒绝计数加1
    if(tt_out$p.value < alpha) {
      rejects <- rejects + 1
    }
  }
  return(rejects)
}

关键修改说明:

  • 用tt_out <- t.test(...)把检验结果存到变量里,这样可以通过tt_out$p.value提取p值
  • 用if条件判断p值是否小于alpha,满足条件时直接执行rejects <- rejects + 1完成计数更新
  • 删除了无效的update(rejects)语句

内容的提问来源于stack exchange,提问作者Talkthattalk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 23:25:20