变量转换(Metropolis Hastings)

机器算法验证 贝叶斯 马尔可夫链蒙特卡罗 大都会黑斯廷斯 雅可比
2022-04-15 04:53:26

假设我有一堆来自泊松分布的数据,我想找出我的后验,即我正在拟合数据:

p(λ|X)p(X|λ)p(λ)

其中所以我的对数似然看起来像:p(X|λ)=exp(λ)λxx!

logL(λ|X)xlogλλ

现在作为,我将坐标转换为我的新发行版如下所示:λ>0α=logλ

p(X|α)=exp(exp(α))exp(αx)x!exp(α)

其中最终的来自变换的雅可比行列式exp(α)

这使得:

logL(λ|X)exp(α)+αx+α

其中新对数似然中的最终来自较早的Jacobianα

我遇到问题 ,那么我的 Metropolis-Hastings MCMC 会给我一个不正确的结果。如果我使用排除它的对数相似性:α

logL(λ|X)exp(α)+αx

然后我得到正确的结果。

我的问题是:为什么 Metropolis-Hastings 算法不关心雅可比?

2个回答

你不需要因为它是一个参数。变量公式的变化适用于您正在“积分”的变量。在你的情况下是所以MH要求你去掉多余的因素是对的。αx

所以你真正拥有的是:

p(X|α)=exp(exp(α))exp(αx)x!

您是否对变量应用了一些转换 - 那么应该使用变量公式的变化。x

编辑要了解发生了什么,请考虑普通的 RV所以是密度。如果你用任何变换,你得到的新变量是并且不需要 jacobian。我希望你同意(如果不同意,我将不得不在 tex 中写更多......)。XN(μ,σ2)p(X|μ,σ2)μfYN(f(μ),σ2)

如果你想要你会积分并保持固定 - 这就是我说“积分”时的意思。毕竟,概率就是关于整合的。P(XA|α)xα

所以最后你有没有额外的雅可比项。然后像往常一样使用贝叶斯规则等,你会得到“正确的”密度。p(x|α)

检查您的代码,特别是出现在可能性中的 N(数据点数量)的因素。我发现与包含在对数后验中的雅可比因子(因此额外的 alpha)一致的结果,以及当我不包含雅可比时的不一致推论(与您所说的发现相反)。雅可比行列式是由于先验而不是可能性而出现的;在您的分析中,您隐含地假设 lambda 上的先验是平坦的,因此您需要将其转换为包含相同假设的 alpha 上的先验(当然,它将不再是平坦的)-雅可比因子会为您进行此转换。