最大似然参数偏离后验分布

机器算法验证 贝叶斯 最大似然 优化 推理 马尔可夫链蒙特卡罗
2022-03-27 12:16:29

我有一个似然函数给定一些模型参数我想估计的数据假设参数的先验平坦,似然与后验概率成正比。我使用 MCMC 方法对这个概率进行采样。L(d|θ)dθRN

查看生成的收敛链,我发现最大似然参数与后验分布不一致。例如,其中一个参数的边缘化后验概率分布可能是,而在最大似然点的值是 ,本质上几乎是 MCMC 采样器遍历的最大值。θ0N(μ=0,σ2=1)θ0θ0ML4θ0

这是一个说明性的例子,不是我的实际结果。实际分布要复杂得多,但一些 ML 参数在它们各自的后验分布中具有类似不太可能的 p 值。请注意,我的一些参数是有界的(例如);在范围内,先验总是一致的。0θ11

我的问题是:

  1. 这种偏差本身是一个问题吗?显然,我不希望 ML 参数与每个边缘化后验分布的最大值完全一致,但直觉上感觉它们也不应该在尾部深处找到。这种偏差会自动使我的结果无效吗?

  2. 无论这是否一定有问题,它是否可能是数据分析某个阶段特定病理的症状?例如,是否可以就这样的偏差是否可能由不正确的收敛链、不正确的模型或对参数的过紧限制做出任何一般性陈述?

2个回答

对于平坦的先验,后验与可能性相同,直到一个常数。因此

  1. MLE(使用优化器估计)应该与 MAP 相同(最大后验值 = 后验的多变量模式,使用 MCMC 估计)。如果您没有得到相同的值,则说明您的采样器或优化器有问题。

  2. 对于复杂模型,边缘模式与 MAP 不同是很常见的。例如,如果参数之间的相关性是非线性的,就会发生这种情况。这很好,但边际模式因此不应被解释为后验密度最高的点,也不应与 MLE 进行比较。

  3. 但是,在您的具体情况下,我怀疑后部与先前的边界相冲突。在这种情况下,后验将是强不对称的,用均值 sd 来解释它是没有意义的。这种情况没有原则性问题,但在实践中,它经常暗示模型指定错误或先验选择不当。

对于这种感知差异的一些可能的通用解释,当然假设代码或可能性定义或 MCMC 实现或 MCMC 迭代次数或似然最大化器的收敛没有问题(感谢Jacob Socolar):

  1. 大尺寸N中,后验不集中在最大值上,而是在一定距离上N从模式,这意味着 MCMC 采样器遇到的似然函数的最大值通常远低于其最大值的似然值。例如,如果后验是θ|xNN(0,IN),θ至少在一段距离N22N从模式,0.

  2. 虽然 MAP 和 MLE 在平坦先验下确实混淆了,但模型的不同参数的边际密度可能具有远离相应 MLE(即 MAP)的(边际)模式。

  3. MAP 是参数空间中后验密度最高的位置,但这并不表示 MAP 邻域的后验权重或体积。一个非常细的钉子没有后部重量。这也是为什么 MCMC 探索后验可能难以识别后验模式的原因。

  4. 大多数参数是有界的这一事实可能导致 MAP=MLE 的某些分量出现在边界处。

有关MAP 估计器的非贝叶斯性质的论点,请参见Druhlet 和 Marin (2007) 。一个是这些估计器对主要度量的依赖,另一个是在重新参数化下缺乏不变性(与 MLE 不同)。

作为上面第 1 点的示例,这里是一个简短的 R 代码

N=100
T=1e4
lik=dis=rep(0,T)
mu=rmvnorm(1,mean=rep(0,N))
xobs=rmvnorm(1,mean=rep(0,N))
lik[1]=dmvnorm(xobs,mu,log=TRUE)
dis[1]=(xobs-mu)%*%t(xobs-mu)
for (t in 2:T){
  prop=rmvnorm(1,mean=mu,sigma=diag(1/N,N))
  proike=dmvnorm(xobs,prop,log=TRUE)
  if (log(runif(1))<proike-lik[t-1]){
    mu=prop;lik[t]=proike
     }else{lik[t]=lik[t-1]}
    dis[t]=(xobs-mu)%*%t(xobs-mu)}

它模仿维度 N=100 的随机游走 Metropolis-Hastings 序列。MAP 处的对数似然值是 -91.89,但访问的似然度永远不会接近:

> range(lik)
[1] -183.9515 -126.6924

这可以通过序列永远不会接近观察的事实来解释:

> range(dis)
[1]  69.59714 184.11525