如何在 ABC 中选择缩放矩阵(不作弊!)?

机器算法验证 贝叶斯 近似贝叶斯计算
2022-04-17 02:35:35

我正在做一个数值实验,涉及将近似贝叶斯计算 (ABC) 与其他方法进行比较。

我正在模拟数据y从模型中,我正在使用 ABC 从参数的后验中获取样本θ. 汇总统计S(y)在非常不同的尺度上,协方差强烈依赖于参数Σθ. 考虑到这一点,在接受步骤中,我使用二次形式:

(sis0)Σ^θ1(sis0)<ϵ
在哪里si是统计的模拟向量,s0观察到的统计数据和ϵ容忍度。

到目前为止,我已经“作弊”并且使用过Σ^θ0在哪里θ0是真实的参数。我认为缩放矩阵的选择是次要的(无关紧要ϵ0)但事实证明,在我的情况下,如果我不估计Σ^θ真的很接近θ0该算法只是卡住了(接受率极低,几乎没有统计数据支配一切)。

当实际参数未知时,有人知道任何可用于选择加权矩阵的实用方法吗?谢谢

1个回答

您可能认为或可能不认为是“作弊”的问题的一种解决方案是在运行采样器之前使用降维(请参阅此评论)。想到的最直接的方法(也在前面的评论中讨论过)是偏最小二乘回归(PLS)。在 ABC 中首次使用 PLS(至少据我所知)是Wegmann 等人

在这种方法中,在运行任何 ABC 算法(拒绝采样、MCMC、SMC 等)之前引入“校准”步骤,其中基于先验的抽取模拟大量汇总统计数据,并使用 PLS 计算变换解释参数空间中最大差异的汇总统计量。然后转换观察到的汇总统计数据,并且在随后的 ABC 拒绝步骤中,将使用转换后的模拟和观察到的汇总统计数据之间的距离,而不是原始汇总统计数据。这样,您将避免计算(或反转)Σθ.

校准步骤可概述如下 -

  1. 样本BθP(θ)
  2. 执行B模拟来自SP(S|θ)
  3. 估计的 PLS 变换SS

PLS 适用于RpythonC++