使用新数据更新Stanfit对象

时间:2016-10-25 14:42:28

标签: stan rstan

我通过API调用生成数据,一次一个数据点。我想将每个点提供给Stan模型,保存更新的模型,并丢弃数据点。

这可能与斯坦有关吗?

如果是这样,您如何处理组级参数?例如,如果我的模型具有J组级参数,但我一次只输入一个数据点,这不会产生错误吗?

1 个答案:

答案 0 :(得分:1)

我认为您的问题可以概念化为贝叶斯更新。换句话说,您对参数的信念目前由某些联合分布表示,然后您再获得一个数据点,并且您希望根据此数据点更新您的信念。然后重复这个过程。

如果是这样,那么你可以做一个只有一个数据点的Stan模型,但你需要某种方式来表示你当前的信念,并将概率分布用作先验。这通常将通过对无约束空间中的参数的一些多元正态分布来完成。您可以使用rstan包中的unconstrain_pars函数来获得无约束后抽样矩阵,然后查看它接近的多变量法线。如果你有很多参数,你可能想要使用一些缩小的协方差估计来得到多元正态。然后,在Stan程序中,在参数上使用多元法线优先级,并执行需要进行的任何转换,以便在约束空间中获取转换参数(许多此类转换记录在Stan用户手册中)。

确实,当您估计只有一个数据点的层次模型时,该数据点基本上没有关于特定数据点不在的组的信息。但是,在这种情况下,后验分布的边缘对于省略的组的参数将基本上与先前的分布相同。没关系。