计算后验预测
您刚刚探索了身高为 \(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