首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用replicate创建函数的模拟

使用replicate创建函数的模拟
EN

Stack Overflow用户
提问于 2020-11-22 05:57:47
回答 1查看 26关注 0票数 0

我创建了这个函数来从R生成的一组随机数字中获取样本,然后计算这些数字的平均值、标准差和置信区间。我的目标是尝试并复制它,以便模拟置信区间的重复采样。然而,每当我使用replicate函数运行我的代码时,它都会返回一个从1到10000的值矩阵,而不是返回我想要的重复的置信度区间采样。这是我现在拥有的代码:

代码语言:javascript
复制
SampleCI <- function(n, mu, sigma){
  SRS <- rnorm(n = n, mean = mu, sd = sigma)
  SampleTest <- sample(SRS, size = 15)
  samplestatistics <- c(sum(!is.na(SampleTest)), mean(SampleTest), sd(SampleTest))
  names(samplestatistics) <- c("n", "sample mean", "StdDev")
  
  # 95% CI for mu
  L <- samplestatistics[2] - qt(.975, samplestatistics[1] - 1) * samplestatistics[3] / sqrt(samplestatistics[1])
  U <- samplestatistics[2] + qt(.975, samplestatistics[1] - 1) * samplestatistics[3] / sqrt(samplestatistics[1])
  CI <- c(L,U)
  
  list(samplestatistics = samplestatistics,
       CI = CI
       )
}
PossibleDataset <- SampleCI(100, 25, 3)
NSim = 10^4
testing <- replicate(NSim, PossibleDataset)
testing
EN

回答 1

Stack Overflow用户

发布于 2020-11-22 05:59:50

应在应用函数时应用replicate,而不是在输出上应用

代码语言:javascript
复制
outlst <- replicate(NSim, SampleCI(100, 25, 3), simplify = FALSE)

在OP的代码中,SampleCI只应用一次,然后复制输出n

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64948515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档