对于这种感知差异的一些可能的通用解释,当然假设代码或可能性定义或 MCMC 实现或 MCMC 迭代次数或似然最大化器的收敛没有问题(感谢Jacob Socolar):
大尺寸N中,后验不集中在最大值上,而是在一定距离上N−−√从模式,这意味着 MCMC 采样器遇到的似然函数的最大值通常远低于其最大值的似然值。例如,如果后验是θ|x∼NN(0,IN),θ至少在一段距离N−22N−−−√从模式,0.
虽然 MAP 和 MLE 在平坦先验下确实混淆了,但模型的不同参数的边际密度可能具有远离相应 MLE(即 MAP)的(边际)模式。
MAP 是参数空间中后验密度最高的位置,但这并不表示 MAP 邻域的后验权重或体积。一个非常细的钉子没有后部重量。这也是为什么 MCMC 探索后验可能难以识别后验模式的原因。
大多数参数是有界的这一事实可能导致 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