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模型實現

相關文章
相關標籤/搜索