编辑:为清楚我想要实现的目标,重新定义了问题。
我有一个观察到的数据集,我想使用其中的一些信息将其提供给蒙特卡洛模拟。我在这项研究中使用了R。
例如,在我观察到的数据集中,8/8的人具有特定的特征。
我想要做的是使用这些观察到的数据中的抽样分布来选择一些可能的总体比例,并将其输入到随机数生成器中,这样我就可以生成一些模拟的计数(其中我还需要使用更大的分母)。
观测数据和95%置信区间如下:
binom.test(8, 8)
## gives point estimate of 1 and 95% CI 0.63, 1然后,我希望(例如)从该采样分布中随机抽取1000个样本,将其输入到一个随机的二进制结果生成器中,以获得更大的分母(例如,每次迭代12次试验)。假设第一次随机抽奖的概率是0.75 (下面的代码只是说明了一次迭代):
set.seed(456)
rbinom(1, 12, 0.75)
## Gives a count of 11 events out of 12 for this single iteration.我的问题是如何让R从观察到的数据的抽样分布中提取概率(即,这些绘制的概率中的95%应该落在0.63和1之间,其形状由基础统计理论定义),然后我可以使用这些概率生成具有更大分母的随机计数(可能使用rbinom)。
编辑:我最初的帖子更加令人费解和困惑:我没有充分考虑使用人口参数的rbinom的含义,尽管我非常确定这是我使用rbinom的“问题”的根源。感谢DavidRobinson和DWin的评论/答案,他们澄清了我的答案以及我修改后的问题……
发布于 2012-12-19 05:11:10
这个答案来自@DavidRobinson的评论(谢谢!)他建议根据我观察到的数据对似是而非的概率进行后验分布。
代码改编于Hoff,P.D. (2009)的第42页,贝叶斯统计的第一门课程,施普林格,纽约。
## Set a uniform prior.
a <- 1; b <- 1
## Set observed data.
n <- 8; y <- 8
## Posterior 95% confidence interval:
qbeta(c(.025, .975), a+y, b+n-y)
## returns [1] 0.6637329 0.9971909这与基于二项分布的置信区间非常接近,由于先验的影响而略有不同。
binom.test(8, 8)
## returns 95% CI of 0.6305834 1.0000000.现在我可以从这个后验分布中提取一组随机概率来生成一些计数。我在这里只用五张图来说明。
set.seed(9876)
n.draws <- 5
## Use rbeta to get n.draws from posterior distribution.
drawn.probs <- rbeta(n.draws, a+y, b+n-y)
## Now I can use these drawn probabilities in rbinom to get simulated counts.
rbinom(n.draws, 12, drawn.probs)感谢你的评论/回答--这让我意识到这不仅仅是我尝试使用rbinom时遇到的问题,而是我错过了一个中间步骤。
https://stackoverflow.com/questions/13925969
复制相似问题