如何解决如何模拟抽样分布?
我正在尝试更深入地了解采样分布,为此我一直在进行一些模拟。在本练习中,我使用的分布是均值=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 举报,一经查实,本站将立刻删除。