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

原文连接:http://tecdat.cn/?p=5263

在本文中,咱们将在贝叶斯框架中引入回归建模,并使用PyMC3 MCMC库进行推理。python

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

用PyMC3进行贝叶斯线性回归

在本节中,咱们将对统计实例进行一种历史悠久的方法,即模拟一些咱们知道的属性的数据,而后拟合一个模型来推算这些原始属性。框架

什么是广义线性模型?

在咱们开始讨论贝叶斯线性回归以前,我想简要地概述广义线性模型(GLM)的概念,由于咱们将使用它们来在PyMC3中制定咱们的模型。学习

广义线性模型是将普通线性回归扩展到更通常形式的回归的灵活机制,包括逻辑回归(分类)和泊松回归(用于计数数据)以及线性回归自己。

GLM容许具备除正态分布之外的偏差分布的因变量优化

用PyMC3模拟数据并拟合模型

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

输出以下图所示:rem

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

如今咱们已经进行了模拟,咱们想要对数据拟合贝叶斯线性回归。这是glm模块。与R指定模型有相似的模型规范语法。深度学习

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

traceplot以下图所示:

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

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

咱们能够在下图中看到回归线的抽样范围:

有问题欢迎联系咱们!


最受欢迎的看法

1.matlab使用贝叶斯优化的深度学习

2.matlab贝叶斯隐马尔可夫hmm模型实现

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

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

5.R语言中的Stan几率编程MCMC采样的贝叶斯模型

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

7.R语言使用贝叶斯 层次模型进行空间数据分析

8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

9.matlab贝叶斯隐马尔可夫hmm模型实现