博客
关于我
R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
阅读量:162 次
发布时间:2019-02-28

本文共 1944 字,大约阅读时间需要 6 分钟。

原文链接:


 

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

 

 贝叶斯模型

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

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

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

 

 

block Gibbs

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

 

条件后验\ beta取更多的线性代数。

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

还要注意,条件后验是一个多元分布,因为它\ beta是一个向量。因此,在Gibbs采样器的每次迭代中,我们从后验画出一个完整的矢量 。

模拟

 

我模拟的 结果向量。 

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

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

# 计算后验摘要统计信息(未在其余代码中使用的统计信息)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)) # 合并汇总统计信息post_dist <- post_dist %>%  left_join(post_sum_stats, by='param') # 绘制MCMC链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')

MCMC_chains_blocked_Gibbs

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

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)')

 

 

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

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

以下是这些评估的摘要。

 

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

 

扩展 

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

然后在上放一个先验分布\ beta。这个想法将贝叶斯线性回归推广到贝叶斯GLM。

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

 


最受欢迎的见解 

1.

2.

3.

4.

5.

6.

7.

8.

9.

转载地址:http://fxic.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
查看>>
Mysql学习总结(67)——MYSQL慢查询日志
查看>>
Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
查看>>
Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
查看>>
Mysql学习总结(6)——MySql之ALTER命令用法详细解读
查看>>
Mysql学习总结(70)——MySQL 优化实施方案
查看>>
Mysql学习总结(71)——MySQL 重复记录查询与删除总结
查看>>
Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
查看>>
Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
查看>>
Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
查看>>
Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范
查看>>
Mysql学习总结(78)——MySQL各版本差异整理
查看>>
Mysql学习总结(79)——MySQL常用函数总结
查看>>
Mysql学习总结(7)——MySql索引原理与使用大全
查看>>
Mysql学习总结(80)——统计数据库的总记录数和库中各个表的数据量
查看>>
Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
查看>>
Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
查看>>
Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
查看>>
Mysql学习总结(84)—— Mysql的主从复制延迟问题总结
查看>>
Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
查看>>