R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

在这篇文章中,我将对多元线性回归做同样的事情。我将得出阻塞的Gibbs采样器所需的条件后验分布。 

 一个贝叶斯模型

假设我们有一个样本大小的R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归科目。我们观察R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归结果向量R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归。贝叶斯多元回归假设该向量是从多元正态分布中得出的,其中均值向量是R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归和协方差矩阵R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归。这里R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归是观察到R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归的协变量矩阵。注意,该矩阵的第一列是标识。参数矢量R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归,   R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归是一种常见的方差参数,R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归单位矩阵。通过使用单位矩阵,我们假设独立观察。从形式上看,

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

到目前为止,这与频率设置中看到的多元正态回归相同。假设R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归是完整列排名,最大化可能性产生解决方案:

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

通过为R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归和指定先验分布来获得贝叶斯模型R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归。对于这个例子,我将使用平坦的,不正确的先验  R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归和反伽马先验R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

我们假设超级参数是简单的。

联合后验分布

关节后验分布与...成正比

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

我们可以这样写,因为我们假设事先独立。那是,

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

替换分布,

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

block吉布斯采样器

在对采样器进行编码之前,我们需要导出Gibbs采样器的组件 - 每个参数的后验条件分布。

条件后验R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归是通过降低因子而R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归不是从关节后部和重新排列来找到的。这种情况很容易,因为没有什么可以放弃的:

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

条件后验R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归需要更多的线性代数。

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

这是一个非常漂亮和直观的结果。因为我们在参数向量上使用平坦先验,所以参数向量的条件后验以最大似然估计为中心  R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归。条件后验的协方差矩阵是协方差矩阵的频率估计,R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

还要注意,条件后验是一个多变量分布,因为它R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归是一个向量。因此,在Gibbs采样器的每次迭代中,我们从后部绘制整个矢量或“块”。这比从每个参数的条件分布中绘制条件分布一样,一次一个,效率要高得多。这就是程序被称为“阻塞”采样器的原因。

模拟

 我模拟了一个R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归 结果向量R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归。这R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归单位矩阵,R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归是一个R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归模型矩阵。真正的参数向量R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

运行阻塞的Gibbs采样器(block_gibbs()函数)会生成真实系数和方差参数的估计值。运行了500,000次迭代。老化期为100,000,修剪10次迭代。

下面是MCMC链的图,其中真实值用红线表示。

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

以下是应用老化和修剪后参数的后验分布:

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

似乎我们能够对这些参数进行合理的后验估计。分布并不完全以事实为中心,因为我们的数据集只是事实的一个实现。为了确保贝叶斯估计器正常工作,我重复这个练习1000个模拟数据集。

这将产生1,000套后验平均值和1,000套95%可信区间。平均而言,这1000个后方手段应以真相为中心。平均而言,真实参数值应该在95%的时间内在可信区间内。

以下是这些评估的摘要。

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

“Estimator Means”列是所有1,000个模拟的平均后验平均值。非常好。百分比偏差均小于5%。所有参数的95%CI覆盖率约为95%。

 

扩展

我们可以对此模型进行许多扩展。例如,可以使用除Normal之外的其他分布以适应不同类型的结果。例如,如果我们有二进制数据,我们可以将其建模为:

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

然后预先分配R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归。这个想法将贝叶斯线性回归推广到贝叶斯GLM。

在本文中概述的线性情况下,可以更灵活地对协方差矩阵进行建模。相反,假设协方差矩阵是具有单个共同方差的对角线。这是多元线性回归中的同方差性假设。如果数据是聚类的(例如,每个受试者多次观察),我们可以使用逆Wishart分布来模拟整个协方差矩阵。

非常感谢您阅读本文,有任何问题请在下面留言!