0

在开发 MCMC Gibbs 采样器后,我正在寻找一种绘制后验预测样本的解决方案。麻烦的是,我不确定如何将观察到的数据(data.frame)绘制在我的后验样本(存储在数组中)的箱线图上,其中 data.frame 中的行整体对应于数组的列。不幸的是,我花了几个月的时间来开发一种算法来获取我的后验样本,所以我对改变我的后验样本的排列不感兴趣。我在下面提供了一个简化的示例来说明我的数据是如何设置的(实际上,每个 obs.y 我有 200 个 obs.y 和 10000 个后验样本,所以我不能像下面那样手动绘制它)。

set.seed(11)

#example data#
obs.y=rnorm(5, 0, 10)
obs.x=rnorm(5, 1, 10)
dat=data.frame(obs.y, obs.x)

plot(obs.y,obs.x, main="data")

#example posterior samples for each obs.y (pretend I have implemented a MCMC algorithm to come up with these datapoints)#
post=array(NA, dim=c(100,5,1))
for (i in 1:100){
post[i,,] <- mvrnorm(1, obs, diag(15, 5, 5))}

#desired result#
boxplot(as.data.frame(post[,,]), ylim=c(-30,30))
points(1,dat$obs.y[1], col="green")
points(2,dat$obs.y[2], col="green")
points(3,dat$obs.y[3], col="green")
points(4,dat$obs.y[4], col="green")
points(5,dat$obs.y[5], col="green")

在此处输入图像描述

4

0 回答 0