在本文中,咱們將在貝葉斯框架中引入迴歸建模,並使用PyMC3 MCMC庫進行推理。python
咱們將首先回顧經典或頻率論的多重線性迴歸方法。而後咱們將討論貝葉斯如何考慮線性迴歸。編程
在本節中,咱們將對統計實例進行一種歷史悠久的方法,即模擬一些咱們知道的屬性的數據,而後擬合一個模型來推算這些原始屬性。框架
在咱們開始討論貝葉斯線性迴歸以前,我想簡要地概述廣義線性模型(GLM)的概念,由於咱們將使用它們來在PyMC3中制定咱們的模型。學習
廣義線性模型是將普通線性迴歸擴展到更通常形式的迴歸的靈活機制,包括邏輯迴歸(分類)和泊松迴歸(用於計數數據)以及線性迴歸自己。
GLM容許具備除正態分佈之外的偏差分佈的因變量。優化
在咱們使用PyMC3來指定和採樣貝葉斯模型以前,咱們須要模擬一些噪聲線性數據。spa
輸出以下圖所示:rem
經過Numpy,pandas和seaborn模擬噪聲線性數據get
如今咱們已經進行了模擬,咱們想要對數據擬合貝葉斯線性迴歸。這是glm模塊。與R指定模型有相似的模型規範語法。深度學習
而後咱們將找到MCMC採樣器的最大後驗機率(MAP)估計值。最後,咱們將使用No-U-Turn Sampler(NUTS)來進行實際推理,而後繪製模型的曲線,將前500個樣本丟棄爲「burn in」預燒過程。數據分析
traceplot以下圖所示:
首先咱們使用seaborn lmplot方法,fit_reg參數設置False爲中止繪製頻數迴歸曲線。而後咱們繪製100個採樣的後驗預測迴歸線。最後,咱們繪製使用原始的「真實」迴歸線和β1=2的參數。
咱們能夠在下圖中看到迴歸線的抽樣範圍:
最受歡迎的看法
4.R語言中的block Gibbs吉布斯採樣貝葉斯多元線性迴歸