当前位置:首页>python>Python用PyMC3实现贝叶斯线性回归模型

Python用PyMC3实现贝叶斯线性回归模型

  • 2026-09-10 13:29:09
Python用PyMC3实现贝叶斯线性回归模型
原文链接:http://tecdat.cn/?p=5263

在本文中,我们将在贝叶斯框架中引入回归建模,并使用PyMC3 MCMC库进行推理(点击文末“阅读原文”获取完整代码数据)。

相关视频

我们将首先回顾经典频率论的多重线性回归方法。然后讨论贝叶斯如何考虑线性回归。

用PyMC3进行贝叶斯线性回归

在本节中,我们将对统计实例进行一种经典的方法,即模拟一些我们知道的属性的数据,然后拟合一个模型来推算这些原始属性。

什么是广义线性模型?

在我们开始讨论贝叶斯线性回归之前,我想简要地概述广义线性模型(GLM)的概念,因为我们将使用它们来在PyMC3中建立我们的模型。

广义线性模型是将普通线性回归扩展到更一般形式的回归的灵活方法,包括逻辑回归(分类)和泊松回归(用于计数数据)以及线性回归本身。

GLM允许具有除正态分布以外的误差分布的因变量。

用PyMC3模拟数据并拟合模型

在我们使用PyMC3来指定和采样贝叶斯模型之前,我们需要模拟一些噪声线性数据。

输出如下图所示:

通过Numpy,pandas和seaborn模拟噪声线性数据


点击标题查阅往期内容

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析

左右滑动查看更多

01

02

03

04

现在我们已经进行了模拟,我们想要对数据拟合贝叶斯线性回归。这是glm方法。

然后我们将找到MCMC采样器的最大后验概率(MAP)估计值。最后,我们将使用No-U-Turn Sampler(NUTS)来进行实际推理,然后绘制模型的曲线,将前500个样本丢弃为“burn in”预烧过程。

Kaizong Ye

拓端分析师

traceplot如下图所示:

使用PyMC3将贝叶斯GLM线性回归模型拟合到模拟数据

首先我们使用seaborn lmplot方法,fit_reg参数设置False,不绘制频数回归曲线。然后我们绘制100个采样的后验预测回归线。最后,我们绘制使用原始的“真实”回归线和β1=2的参数。

我们可以在下图中看到回归线的抽样范围:


本文中分析的完整数据、代码、文档分享到会员群,扫描下面二维码即可加群! 

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python用PyMC3实现贝叶斯线性回归模型》。

点击标题查阅往期内容

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析
R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据
R语言基于copula的贝叶斯分层混合模型的诊断准确性研究
R语言贝叶斯线性回归和多元线性回归构建工资预测模型
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
R语言stan进行基于贝叶斯推断的回归模型
R语言中RStan贝叶斯层次模型分析示例
R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化
WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较
视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

最新文章

随机文章