贝叶斯分析的许多介绍使用相对简单的教学实例 。虽然这可以很好地介绍贝叶斯原理,但将这些原则扩展到回归并不是直截了当的。

这篇文章将概述这些原则如何扩展到简单的线性回归。在此过程中,我将推导出感兴趣的参数的后验条件分布,呈现用于实现Gibbs采样器的R代码,并呈现所谓的网格点方法。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

贝叶斯模型

假设我们观察到的数据R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第1张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第2张​的R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第3张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第4张​。我们的模型R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第5张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第6张​是

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第7张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第8张

有兴趣的是推断R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第9张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第10张​和R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第11张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第12张​。如果我们在方差项上放置系数的正常先验和在方差项之前的反伽马,那么这个数据的完整贝叶斯模型可以写成:

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第13张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第14张
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第15张
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第16张
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第17张
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第18张
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第19张
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第20张

假设超参数R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第21张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第22张​并且R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第23张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第24张​已知,后验可以写成比例常数,

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第25张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第26张

括号中的术语是数据或可能性的联合分布。其他术语包括参数的联合先验分布(因为我们隐含地假定先前独立,联合先前因子)。

这被认为是熟悉的表达方式:

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第27张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第28张​。

随附的R代码的第0部分从该模型生成用于指定“真实”参数的数据。我们稍后将使用此数据估计贝叶斯回归模型,以检查我们是否可以恢复这些真实参数。

Gibbs采样器

从这个后验分布中得出,我们可以使用吉布斯采样算法。吉布斯采样是一种迭代算法,它根据每个感兴趣参数的后验分布产生样本。它是通过以下列方式从每个参数的条件后验顺序绘制来实现的:

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第29张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第30张

可以证明,在适当的老化期后,1000次抽取的剩余部分是从后部分布中抽出的。这些样本不是独立的。绘制的顺序是在后部空间中的随机游走,并且空间中的每个步骤取决于先前的位置。通常也会使用稀疏期(这里没有这样做)。减薄10意味着我们每10次抽奖。这个想法是,每一个平局可能依赖于以前的平局,但不能  作为依赖于10日以前的平局。

条件后验分布

要使用Gibbs,我们需要确定每个参数的条件后验。

它有助于从完全非标准化的后验开始:

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第31张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第32张

为了找到参数的条件后验,我们简单地从不包括该参数的联合后验中删除所有项。例如,常数项R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第33张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第34张​具有条件后验:

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第35张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第36张

同样的,

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第37张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第38张

条件后验可以被识别为另一个反伽马分布,具有一些代数操作。

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第39张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第40张

的条件后验R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第41张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第42张​和R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第43张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第44张​不容易辨认。但是如果我们愿意使用网格方法,我们真的不需要通过任何代数。

网格方法

考虑R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第45张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第46张​。网格方法是一种非常强力的方式(在我看来)从其条件后验分布中进行采样。这种条件分布只是一个函数R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第47张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第48张​。因此,我们可以评估某些R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第49张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第50张​值的密度。在R表示法中,这可以是grid = seq(-10,10,by = .001)。这个序列是点的“网格”。

然后在每个网格点评估的条件后验分布告诉我们该抽取的相对可能性。

然后我们可以使用R中的sample()函数从这些点网格中绘制,采样概率与网格点处的密度评估成比例。

这在随附的R代码的第1部分中的函数rb0cond()和rb1cond()中实现。

在使用网格方法时遇到数值问题是很常见的。由于我们正在评估网格上的非标准化后验,因此结果会变得相当大或很小。这可能会在R中产生Inf和-Inf值。

例如,在函数rb0cond()和rb1cond()中,我实际上计算了导出的条件后验分布的对数。然后,我从所有评估的最大值中减去每个评估,然后从对数标度中取代,然后进行标准化。这倾向于处理这样的数字问题。

我们不需要使用网格方法从条件后验中绘制,R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第51张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第52张​因为它来自已知的分布。

请注意,此网格方法有一些缺点。

首先,它的计算成本很高。如我们所做的那样,通过代数并希望得到一个已知的后验分布可以在计算上更有效率R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第53张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第54张​。

其次,网格方法需要指定网格点的区域。如果条件后验在我们指定的[-10,10]的网格区间之外有明显的密度怎么办?在这种情况下,我们不会从条件后验得到准确的样本。记住这一点并尝试宽网格间隔非常重要。因此,我们需要聪明地处理数值问题,例如接近Inf的数字和R中的-Inf值。

仿真结果

现在我们可以从每个参数的条件后验中进行采样,我们可以实现Gibbs采样器。这在随附的R代码的第2部分中完成。它编码上面R中概述的相同算法。

结果很好。下图显示了1000个Gibbs样本的序列(删除了老化抽取并且未实施细化)。红线表示我们模拟数据的真实参数值。第四个图显示了截距和斜率项的联合后验,红线表示轮廓。

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第55张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第56张

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第57张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第58张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第59张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第60张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第61张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第62张

总而言之,我们首先导出了一个表达式,用于参数的联合分布。然后我们概述了用于从后部绘制样本的Gibbs算法。在这个过程中,我们认识到Gibbs方法依赖于每个参数的条件后验分布的顺序绘制。因为R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第63张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第64张​,这是一个容易识别,已知的分布。对于斜率和截距项,我们决定使用网格方法绕过代数。这样做的好处是我们支持很多代数。成本增加了计算复杂性,在选择适当的网格范围时会出现一些反复试验和数值问题。

还有问题吗?联系我们!

 

大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务

统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第65张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第66张​QQ:3025393450

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第67张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第68张

【服务场景】  

科研项目; 公司项目外包;线上线下一对一培训;数据采集;学术研究;报告撰写;市场调查。

【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询服务

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第69张R语言Gibbs抽样的贝叶斯简单线性回归仿真分析 随笔 第70张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄