模拟 X 对 p 的依赖关系
在竞选公职的过程中,您的团队对 10 名可能投票者进行了民调。设 \(X\) 为支持您的人数。显然,\(X\) 会随样本而变化,并取决于 $p$,即您在更大总体中的真实支持率。由于 \(X\) 是 10 次相互独立试验中成功次数的计数,每次成功概率为 $p$,因此可用二项分布 Bin(10, \(p\)) 来建模 \(X\) 对 \(p\) 的依赖关系。
您将使用 rbinom(n, size, prob) 函数的随机样本来模拟该二项模型。这个"向量化"的函数会从 Bin(size, prob) 分布中抽取 n 个样本。若给定一个 prob 值的"向量",则第 1 个抽样使用第 1 个 prob 值,第 2 个抽样使用第 2 个 prob 值,依此类推。
本练习是课程的一部分
使用 RJAGS 的贝叶斯建模
练习说明
- 定义一个
seq(),生成 0 到 1 范围内的 1000 个可能的 \(p\) 值。将其保存为p_grid。 - 使用
rbinom(),为p_grid中的每个 1000 个 \(p\) 模拟一个民调结果 $X$。将其赋值为poll_result。 - 数据框
likelihood_sim组合了p_grid和poll_result。使用ggplot()并添加geom_density_ridges()图层,展示每个poll_result所对应模拟来源的p_grid值在x轴上的分布(y轴为poll_result)。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Define a vector of 1000 p values
p_grid <- seq(from = ___, to = ___, length.out = ___)
# Simulate 1 poll result for each p in p_grid
# Create likelihood_sim data frame
likelihood_sim <- data.frame(p_grid, poll_result)
# Density plots of p_grid grouped by poll_result
ggplot(likelihood_sim, aes(x = ___, y = ___, group = poll_result)) +
geom_density_ridges()