后验与先验和可能性非常不同

机器算法验证 贝叶斯 事先的 后部 可能性
2022-02-03 14:46:51

如果先验和似然彼此非常不同,那么有时会出现后验与它们都不相似的情况。例如,参见这张图片,它使用正态分布。

后向行为

虽然这在数学上是正确的,但它似乎不符合我的直觉——如果数据与我坚定的信念或数据不匹配,我预计这两个范围都不会很好,并且会期望一个平坦的后验整个范围,或者可能是围绕先验和可能性的双峰分布(我不确定哪个更合乎逻辑)。我当然不会期望在一个既不符合我先前的信念或数据的范围内有一个紧密的后验。我知道随着收集的数据越多,后验概率会越来越高,但在这种情况下,这似乎违反直觉。

我的问题是:我对这种情况的理解有什么缺陷(或者它是否有缺陷)。后验是这种情况的“正确”功能吗?如果不是,它还能如何建模?

为了完整起见,先验给出为N(μ=1.5,σ=0.4)和可能性为N(μ=6.1,σ=0.4).

编辑:看看给出的一些答案,我觉得我没有很好地解释这种情况。我的观点是,鉴于模型中的假设,贝叶斯分析似乎产生了非直观的结果。我希望后验能够以某种方式“解释”可能是糟糕的建模决策,但考虑到这一点绝对不是这种情况。我将在我的回答中对此进行扩展。

4个回答

是的,这种情况可能会出现,并且是您的建模假设的一个特征,特别是先前和采样模型中的正态性(可能性)。相反,如果您为先验选择了柯西分布,则后验看起来会大不相同。

prior = function(x) dcauchy(x, 1.5, 0.4)
like = function(x) dnorm(x,6.1,.4)

# Posterior
propto = function(x) prior(x)*like(x)
d = integrate(propto, -Inf, Inf)
post = function(x) propto(x)/d$value

# Plot
par(mar=c(0,0,0,0)+.1, lwd=2)
curve(like, 0, 8, col="red", axes=F, frame=T)
curve(prior, add=TRUE, col="blue")
curve(post, add=TRUE, col="seagreen")
legend("bottomleft", c("Prior","Likelihood","Posterior"), col=c("blue","red","seagreen"), lty=1, bg="white")

柯西先验正态采样模型

Tony O'Hagan 在1990 年针对单样本位置问题详细写了这种“贝叶斯惊喜”的情况基本上,这取决于先验或可能性是否有更重的尾巴。如果先验的尾部较重,则后验很高兴在先验的尾部,靠近数据处。如果似然的尾部较重,则后验很高兴在似然的尾部出路,先验集中在那里。如果它们都差不多,你要么最终得到一个双峰后验(对于两个重尾先验),要么是一个中间后验(对于两个轻尾先验),一个过渡的例子是拉普拉斯分布,你可以得到一个非常宽的后模态平台。

这里有一个应用程序,可以让你玩这些。

我有点不同意到目前为止给出的答案 - 这种情况没有什么奇怪的。无论如何,这种可能性是渐近正态的,并且正态先验一点也不罕见。如果将两者放在一起,并且先验和可能性没有给出相同的答案,我们就会遇到我们在这里谈论的情况。我在下面用 jaradniemi 的代码描述了这一点。

我们在1中提到,这种观察的正常结论是 a) 模型在结构上是错误的 b) 数据是错误的 c) 先验是错误的。但是肯定有问题,如果您进行一些后验预测检查,您也会看到这一点,无论如何您都应该这样做。

1哈蒂格,F.;戴克,J。希克勒,T。希金斯,SI;奥哈拉,RB;Scheiter, S. & Huth, A. (2012) 将动态植被模型与数据联系起来——逆向视角。J. Biogeogr., 39, 2240-2252。http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2699.2012.02745.x/abstract

    prior = function(x) dnorm(x, 1, .3)
    like = function(x) dnorm(x, -1, .3)
    
    # Posterior
    propto = function(x) prior(x)*like(x)
    d = integrate(propto, -Inf, Inf)
    post = function(x) propto(x)/d$value
    
    # Plot
    par(mar=c(0, 0, 0, 0) + .1, lwd=2)
    curve(like, -2, 2, col="red", axes=FALSE, frame=TRUE, 
            ylim = c(0,2))
    curve(prior, add=TRUE, col="blue")
    curve(post, add=TRUE, col="seagreen")
    legend("bottomleft", c("Prior", "Likelihood", "Posterior"), 
             col=c("blue", "red", "seagreen"), lty=1, bg="white")

在此处输入图像描述

在考虑了一段时间后,我的结论是,如果建模假设不好,后验可能是既不符合先前信念也不符合可能性的结果。由此得出的自然结果是后验不是,一般来说,分析的结束。如果后验应该大致适合数据,或者应该在先验和可能性之间扩散(在这种情况下),那么必须在事后检查,可能使用后验预测检查或其他东西相似的。将其合并到模型中似乎需要将概率放在概率陈述上的能力,我认为这是不可能的。