我最近开始使用 Pareto 平滑重要性抽样留一法交叉验证 (PSIS-LOO),在这些论文中进行了描述:
- Vehtari, A. 和 Gelman, A. (2015)。帕累托平滑重要性抽样。arXiv 预印本(链接)。
- Vehtari, A.、Gelman, A. 和 Gabry, J. (2016)。使用留一法交叉验证和 WAIC 的实用贝叶斯模型评估。arXiv 预印本(链接)
这代表了一种非常诱人的样本外模型评估方法,因为它允许通过单次 MCMC 运行来执行 LOO-CV,并且据称它比现有的信息标准(如 WAIC)更好。
PSIS-LOO 有一个诊断程序可以告诉您该近似值是否可靠,即由帕累托分布的估计指数给出,该指数拟合到重要性权重的经验分布的尾部(每个数据点一个权重)。简而言之,如果估计的权重,就会发生不好的事情。
可悲的是,我发现在我将这种方法应用于我的问题时,对于大多数感兴趣的模型,我发现的很大一部分。不出所料,一些报告的 LOO 对数似然显然是荒谬的(与其他数据集相比)。作为复查,我进行了传统(且耗时)的 10 倍交叉验证,发现在上述情况下 PSIS-LOO 确实给出了非常错误的结果(从好的方面来说,结果与 10 -fold CV 对于所有的模型。作为记录,我正在使用Aki Vehtari 的 PSIS-LOO的MATLAB 实现。
也许我很不幸,因为我目前应用这种方法的第一个问题对于 PSIS-LOO 来说是“困难的”,但我怀疑这种情况可能相对常见。对于像我这样的案例,Vehtary, Gelman & Gabry 的论文简单地说:
即使 PSIS 估计具有有限方差,当时,用户应该考虑直接从中对有问题的进行采样,使用折交叉验证,或使用更稳健的模型。
这些是显而易见但不是真正理想的解决方案,因为它们都非常耗时或需要额外的摆弄(我很欣赏 MCMC和模型评估都是摆弄,但越少越好)。
有没有我们可以事先应用的通用方法来尝试防止PSIS-LOO 失败?我有一些初步的想法,但我想知道是否已经存在人们一直在采用的经验解决方案。