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

本文介绍了如何在R语言中应用Block Gibbs采样进行贝叶斯多元线性回归。详细阐述了贝叶斯模型、条件后验分布和模拟过程,并展示了Gibbs采样器的实现,通过模拟数据验证了估计器的性能。
摘要由CSDN通过智能技术生成

原文链接:

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归​tecdat.cn
e0e9473d4c1dbe58d2500dc9bd142cc4.png

在这篇文章中,我将对多元线性回归做同样的事情。我将得出block的Gibbs采样器所需的条件后验分布。然后,我将对采样器进行编码,并使用模拟数据对其进行测试。

贝叶斯模型

假设我们有一个样本量的主题。 贝叶斯多元回归假设该向量是从多元正态分布中提取的 ,通过使用恒等矩阵,我们假设独立的观察结果。正式地,

708f36a7387fb8c5a7f5f1d0b765f108.png

到目前为止,这与 环境中看到的多元正态回归相同。 则将概率最大化可得出以下解 :

01baa296495e0b1ebfa915105a69cea9.png

贝叶斯模型是通过指定为一个先验分布得到 。在此示例中,我将在以下情况下使用 先验值

ecef9421a8075a2d4241370f199e31db.png

block Gibbs

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

6dfad59b1a6f652fb106adc69ebfd037.png

条件后验

​取更多的线性代数。

2cbc7b9d6701911f6d645beb9b3c84c8.png

这是一个非常漂亮和直观的结果。 条件后验的协方差矩阵是协方差矩阵的频繁估计,

f1d26602e0650f144ea64062f56dab25.png

因此,在Gibbs采样器的每次迭代中,我们从后验画出一个完整的矢量 。

模拟

我模拟的 结果向量

ed90e284257cde8ccc65c3eab9f2b553.png

运行 Gibbs采样器 会生成对真实系数和方差参数的估计。运行了500,000次迭代。修整周期为100,000次,修整了10次迭代。

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

# calculate posterior summary statistics (stats not used in rest of code) post_sum_stats<-post_dist %>% group_by(param) %>% summarise(median=median(draw), lwr=quantile(draw,.025), upr=quantile(draw,.975)) %>% mutate(true_vals=c(tb,tphi)) # merge on summary statistics post_dist <- post_dist %>% left_join(post_sum_stats, by='param') # plot MCMC Chains ggplot(post_dist,aes(x=iter,y=draw)) + geom_line() + geom_hline(aes(yintercept=true_vals, col='red'), show.legend=FALSE)+ facet_grid(param ~ .,scale='free_y',switch = 'y') + theme_bw() + xlab('Gibbs Sample Iteration') + ylab('MCMC Chains') + ggtitle('Gibbs Sampler MCMC Chains by Parameter')

7090033e10e3af417eb093a709f0274d.png

这是 修整后参数的后验分布:

ggplot(post_dist,aes(x=draw)) + geom_histogram(aes(x=draw),bins=50) + geom_vline(aes(xintercept = true_vals,col='red'), show.legend = FALSE) + facet_grid(. ~ param, scale='free_x',switch = 'y') + theme_bw() + xlab('Posterior Distributions') + ylab('Count') + ggtitle('Posterior Distributions of Parameters (true values in red)')

f6dad347ed6488e32e23f12bc2af9802.png

似乎我们能够获得这些参数的合理后验估计。 为了确保贝叶斯估计器正常工作,我对1,000个模拟数据集重复了此练习。

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

以下是这些评估的摘要。

88b392bf986562ab69f80d7668d4f3e9.png

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

扩展

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

0db35b359c22f637383fc0313fddbeb7.png

这个想法将贝叶斯线性回归推广到贝叶斯GLM。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值