绘制“后中值曲面”

机器算法验证 预言 空间的 后部 分层贝叶斯 pymc
2022-03-22 15:56:04

作为复制我在 Stack Overflow 上的这个问题中部分描述的模型的一部分,我想获得一个后验分布图。(空间)模型将某些房产的售价描述为伯努利分布,具体取决于房产是昂贵的(1)还是便宜的(0)。在方程式中:

yiBernoulli(pi)
pilogit1(b0+b1LivingArea/1000+b2Age+w(s))
w(s)MVN(0,Σ)

其中是二进制结果 1 或 0,是便宜或昂贵的概率,是空间随机变量,其中 表示其位置. 对于每个 ,所有这些都是因为数据集中有 70 个属性。是基于数据点地理位置的协方差矩阵。如果您对此模型感到好奇,可以在此处找到数据集。yipiw(s)si={1,...,70}Σ

我想获得的情节是以下等高线图:

在此处输入图像描述

的后中值表面的图像图,二元空间模型”。书中还这样说:w(s)

过程的后平均表面的叠加轮廓线的图像图。w(s)

但是,数据集中只有 70 对点。我想,为了生成等高线图,我需要以 70*70 点估计所以,我的问题是:我如何产生这个后中间表面?到目前为止,我有所有涉及的参数的后验分布样本(使用 PyMC),我知道我可以使用后验预测分布在新的点但是,我不知道如何在新点也许我错了,情节不是通过预测而是通过插值构建的。w(s)yw(s)s

更新

首先,这是在每个有属性的位置的后验分布的中位数。这是基于的 MCMC 跟踪。w(s)w

在此处输入图像描述

这是使用径向基函数的插值(带有等高线图):

在此处输入图像描述

(如果您对代码感兴趣,请告诉我)

如您所见,图中存在显着差异。几个问题:

  1. 我怎么知道插值过程是否解释了这些差异?

  2. 的后验分布存在重要的变化,并且书中显示的那个。MCMC 模拟之间有多少变化是可以接受的?甚至我自己的参数也会根据我使用的采样而发生一些变化(Metropolis,Metropolis Adaptive。)w(s)

  3. 是否有一些贝叶斯程序来预测点以生成等高线图,就像我使用径向基函数所做的那样?w(s)

1个回答

作者很可能使用高斯过程来产生插值。我认为这是真的,因为书中的一个练习描述了一个与这个问题非常相似的问题,并且需要一个基于高斯过程的情节。

我试过了,我认为生成的图与原始问题的后中值表面具有相同的特征。的后验分布的中位数(略有不同,因为我运行了另一个 MCMC 模拟):w(s)

在此处输入图像描述

这是基于高斯过程的插值:

在此处输入图像描述

正如你所看到的,插值的方法有很大的不同。