对于这种感知到的差异,可能有一些通用的解释,当然,假设代码或似然定义或MCMC实现,MCMC迭代次数或似然最大化器的收敛都没有问题(谢谢Jacob Socolar):
NN−−√θ|x∼NN(0,IN)θN−22N−−−√0
虽然MAP和MLE实际上在平坦的先验条件下是混杂的,但模型的不同参数的边际密度可能具有远离相应MLE(即MAP)的(边际)模式。
MAP是参数空间中后方密度最高的位置,但这并不表示MAP邻域的后方重量或体积的任何指示。非常细的尖刺不携带后重。这也是为什么MCMC探索后路可能难以识别后路模式的原因。
大多数参数有界的事实可能导致MAP = MLE的某些分量出现在边界处。
有关MAP估计量的非贝叶斯性质的论点,请参见Druihlet和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