我的数据集的response变量由观察值Y1、Y2、...、Y49组成。我提出了一个贝叶斯分层模型来对Y50进行贝叶斯预测。我还有Y1,...,Y49的MCMC样本,我可以用它们与Y1,Y2,...,Y49的实际值进行比较,来评估我的贝叶斯模型的整体拟合。
有没有办法从分层模型的MCMC对象中绘制我的贝叶斯预测的毛虫图,以及代表我在R上的原始数据集中实际观察到的Y的点?
谢谢,
发布于 2020-04-11 10:13:21
首先,您需要提取每个$Y_i$的置信区间。(如果您不使用标准的S3对象,则通常使用分位数函数来完成此操作)。
然后创建以下df:
df <- data_frame(
obs = seq(from = 1,
to = 49,
by = 1),
lower = q1,
upper = q2,
estimate = estimate,
actual = actual)然后你会说:
df %>% ggplot(aes(x = obs)) +
geom_line(aes(y = actual)) +
geom_pointrange(aes(ymin = lower, ymax = upper, y = estimate)) +
coord_flip()如果你正在做分层模型,我真的推荐使用rstanarm包,它与tidybayes库(可以自动生成毛毛虫图)兼容。
https://stackoverflow.com/questions/55730575
复制相似问题