开始使用免费开始使用

计算后验预测

您刚刚探索了身高为 \(X = 180\) 的成年人其体重 \(Y\) 的后验「趋势」:\(m\)180 $= a + b * 180$。数据框 weight_chains 包含了 100,000 个由相应的 \(a\) 与 \(b\) 计算得到的 \(m\)180 的后验可能值:

> head(weight_chains, 2)
          a        b        s iter     m_180
1 -113.9029 1.072505 8.772007    1  79.14803
2 -115.0644 1.077914 8.986393    2  78.96014

先不谈趋势——如果您想要「预测」某一位身高正好为 180 cm 的特定成年人的体重呢?是可以的!为此,您需要考虑相对于趋势的个体变异性,其建模为:

\(Y\)180 \(\sim N(m\)180\(, s^2)\)

基于该模型,您将针对 weight_chains 中每一组后验可能参数来模拟体重预测。

本练习是课程的一部分

使用 RJAGS 的贝叶斯建模

查看课程

练习说明

  • 使用 rnorm()weight_chains 的第一行参数设置下,模拟一个体重预测值。
  • 使用 weight_chains 的「第二」行参数设置,重复上述步骤。
  • weight_chains 的 100,000 组参数设置下,各模拟一个体重预测值。将这些结果存入 weight_chains 的新变量 Y_180
  • 打印 weight_chains 中参数与预测的前 6 行。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Simulate 1 prediction under the first parameter set
rnorm(n = 1, mean = ___, sd = ___)

# Simulate 1 prediction under the second parameter set
rnorm(n = 1, mean = ___, sd = ___)

# Simulate & store 1 prediction under each parameter set
weight_chains <- weight_chains  %>% 
    mutate(Y_180 = rnorm(n = 100000, mean = ___, sd = ___))

# Print the first 6 parameter sets & predictions
编辑并运行代码