Simulation-based calibration checking (SBC) is a practical method to validate computationally-derived posterior distributions or their approximations. In this paper, we introduce a new variant of SBC to alleviate several known problems. Our variant allows the user to in principle detect any possible issue with the posterior, while previously reported implementations could never detect large classes of problems including when the posterior is equal to the prior. This is made possible by including additional data-dependent test quantities when running SBC. We argue and demonstrate that the joint likelihood of the data is an especially useful test quantity. Some other types of test quantities and their theoretical and practical benefits are also investigated. We provide theoretical analysis of SBC, thereby providing a more complete understanding of the underlying statistical mechanisms. We also bring attention to a relatively common mistake in the literature and clarify the difference between SBC and checks based on the data-averaged posterior. We support our recommendations with numerical case studies on a multivariate normal example and a case study in implementing an ordered simplex data type for use with Hamiltonian Monte Carlo. The SBC variant introduced in this paper is implemented in the $\mathtt{SBC}$ R package.
翻译:基于模拟的校准检验(SBC)是一种验证计算所得后验分布或其近似值的实用方法。本文引入了一种新的SBC变体,以缓解若干已知问题。该变体允许用户原则上检测后验分布的任何潜在问题,而此前报告的实现从未能检测到包括后验等于先验在内的大类问题。这是通过在运行SBC时纳入额外依赖于数据的检验量实现的。我们论证并证明数据的联合似然是一种特别有用的检验量。我们还研究了其他类型的检验量及其理论和实践优势。我们提供了SBC的理论分析,从而更全面地理解其背后的统计机制。我们还提醒注意文献中一个相对常见的错误,并阐明了SBC与基于数据平均后验的检验之间的区别。我们通过多变量正态分布的数值案例研究以及一个在哈密顿蒙特卡洛中实现有序单纯形数据类型的案例研究,为我们的建议提供了支持。本文引入的SBC变体已在$\mathtt{SBC}$ R包中实现。