作为学习如何手动编码MCMC的练习,我在多项Dirichlet后验分布上建立了Metropolis-Hastings采样器。由于存在闭合形式解,我可以将MCMC的结果与实际后验分布的模拟进行比较。
我正在使用Dirichlet建议分布,其参数等于链中的最新概率乘以缩放常数(~1000),这使得分布的期望值等于那些概率,缩放常数控制方差。由于这种分布肯定不是对称的,我尝试将提案分布中的值的比率与接受概率的计算相加。
但是,这样做似乎会使结果偏离封闭形式解决方案给出的结果。我从MCMC得到的结果与封闭形式解决方案的结果匹配的唯一方法是仅从后验分布计算接受概率,就像提案分布是对称的那样。 R代码在这里:https://github.com/sivadivel/nps_stats/blob/master/manual_mcmc.R我的问题是:为什么会这样?