【问题标题】:Interval estimation of mean of future predicted values未来预测值均值的区间估计
【发布时间】:2017-10-30 16:55:02
【问题描述】:

我有一个用于估计 RStan 中的模型(有点复杂的模型)的贝叶斯代码。在估计模型后,我从后验分布中抽取了 500 个参数集样本,以模拟未来(下 1 个月)模型中的数据。最后,我取了预测值的平均值(每个时间点 500 个预测值),然后将它们与实际观察值进行比较(带图)。

我的问题是 - 我如何计算这些预测值均值的区间?

示例:从后验分布中抽取参数样本后,我使用这些参数从模型中模拟了变量 X1、X2、....X30:

X1= (33,25,10,19,25)
X2= (11,10,15,13.5,17)
.......

X30= (40,33.3,50,29,45.1)

现在我发现 mean(X1); mean(X2);....mean(X30) 并根据时间绘制它们。我想找到这些方法的区间。

【问题讨论】:

  • 我不明白您所说的“计算预测值的这些均值的区间”是什么意思......你想要什么样的区间?此外,有一些最小的例子会使问题变得具体。我建议创建一个玩具示例,您可以在其中发布一个小型数据集和代码。
  • @ssp3nc3r 嗨,我想要某种“预测区间”来表示预测值的平均值。我在上面提供了一个玩具示例。
  • 如果您的意思是可信区间,例如 X1 代表多个后验抽签,那么您可以执行类似 quantile(X1, probs = c(.1, .9)) 之类的操作,它提供了中间 80% 的抽签。

标签: r bayesian rstan


【解决方案1】:

每个 X1 ... X30 的后向绘制示例:

m <- matrix(data = rep(rnorm(500, 0, 1), 30), nrow = 500, ncol = 30, byrow = FALSE)
colnames(m) <- paste0("X", 1:30)

获取这些抽奖的可信间隔:

ci <- apply(m, 2, quantile, probs = c(0.1, 0.9))
colnames(ci) <- paste0("X", 1:30)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 2023-02-16
    • 1970-01-01
    • 2017-06-07
    • 2021-01-24
    • 1970-01-01
    相关资源
    最近更新 更多