开始使用免费开始使用

模拟 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_gridpoll_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()
编辑并运行代码