微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何模拟抽样分布?

如何解决如何模拟抽样分布?

我正在尝试更深入地了解采样分布,为此我一直在进行一些模拟。在本练习中,我使用的分布是均值=0.1 和 sigma=0.17 的对数正态分布。我的代码如下:

n_sims <- 1000

mu <- rep(NA,n_sims)
lo95 <- rep(NA,n_sims)
hi95 <- rep(NA,n_sims)

data <- rlnorm(1000,0.1,0.17)

for (i in 1:n_sims){
  sim <- sample(data,1000)
  mu[i] <- mean(sim)
  lo95[i] <- mean(sim) - 2*sd(sim)
  hi95[i] <- mean(sim) + 2*sd(sim)
}

xs <- seq(1,n_sims,1)

plot(xs,mu,pch=16,ylim = c(min(lo95)-0.05,max(hi95)+0.05))
segments(xs,lo95,xs,hi95,lwd = 0.5,col = "gray")

sum((lo95 <= 1.1) & (hi95 >= 1.1))

我期望 95% 的样本包含分布的真实值(转换后的比例为 1.1),但最后一行代码显示所有 1000 个样本都包含真实平均值?我的理解是这些模拟中只有 95% 应该包含正确的平均值。有什么我不明白的地方吗?

解决方法

错误位于此处:sample(data,1000)
sample 函数的默认值是“replace=FALSE”,因此每次迭代都使用相同的精确样本。要正确引导您的分析,您需要替换采样:sim <- sample(data,1000,replace=TRUE)

还要计算估计均值的置信限,我相信您想使用 mu +/- 2*sd/sqrt(n),其中 n 是样本数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。