Python貝葉斯回歸分析住房負擔能力數(shù)據(jù)集|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=11664
最近我們被客戶要求撰寫關于貝葉斯回歸的研究報告,包括一些圖形和統(tǒng)計輸出。
我想研究如何使用pymc3在貝葉斯框架內進行線性回歸。根據(jù)從數(shù)據(jù)中學到的知識進行推斷

?貝葉斯規(guī)則是什么??
本質上,我們必須將已經(jīng)知道的知識與世界上的事實相結合。
這里有一個例子。
假設存在這種罕見疾病,每10,000人中就有1人隨機感染這種疾病。換句話說,有0.01%的機會患上這種疾病。幸運的是,有一項測試可以99%的正確識別出患有這種疾病的人,如果沒有這種疾病,它也可以正確地說出您99%沒有患這種疾病。您參加了測試,結果為陽性。您有多少幾率實際患上該病?
好吧,讓我們從邏輯上考慮一下。我們知道,每10,000人中就有1人患此病。假設有10,000人。他們中的9,999人沒有疾病,但其中1%的人會得到陽性結果。因此,即使只有1人實際患有這種疾病,也有約101人獲得了陽性結果。這意味著即使結果為陽性,您也只有101分之一的幾率實際患上該?。ɑ虼蠹s1%的幾率)。
數(shù)學描述? :

看起來很簡單。實際上,這很簡單。該公式僅需要一些概率分布的知識。但是實際上,右邊的分母通常意味著我們將要計算很多真正的計算重積分。因此,貝葉斯統(tǒng)計被放棄了很多年。從某種意義上講,它自然而然地脫離了概率論。如果我們只有擅長計算大量數(shù)字的東西,那么這類問題就可以解決。
計算機確實非??斓剡M行計算貝葉斯回歸。
代碼
這是進行貝葉斯回歸所需的知識。通常,我們想到這樣的回歸:

e是正態(tài)分布的誤差。?
因此,我們假設:

與先驗:

因此,如果我們擁有X和Y的數(shù)據(jù),則可以進行貝葉斯線性回歸。
?代碼?
我們要使用的數(shù)據(jù)集是《? 住房調查:2013年住房負擔能力數(shù)據(jù) 》數(shù)據(jù)集。?
我們感興趣的是住房負擔如何隨著年齡而變化。AGE1包含戶主的年齡。BURDEN是一個變量,它告訴我們住房費用相對于收入有多大。為簡單起見,我們僅關注這兩個變量。我們想知道的是,隨著年齡的增長,住房負擔會變得更容易嗎?特別是,我們想知道斜率系數(shù)是否為負,并且由于我們處于貝葉斯框架中,因此該概率為負的概率是多少?
因此,我們將導入所需的庫和數(shù)據(jù)。進行一些數(shù)據(jù)清理。
df=pd.read_csv('2013n.txt',sep=',')df=df[df['BURDEN']>0]df=df[df['AGE1']>0]
現(xiàn)在,讓我們構建上面討論的模型。讓我們做一個散點圖,看看數(shù)據(jù)是什么樣子。
plt.scatter(df['AGE1'],df['BURDEN'])plt.show()
結果如下:

點擊標題查閱往期內容

R語言用貝葉斯層次模型進行空間數(shù)據(jù)分析

左右滑動查看更多

01

02

03

04

住房負擔很容易超過收入的10倍。
這是構建和運行模型的代碼:
pm.traceplot(trace)plt.show()
**看起來與我們上面的模型完全一樣,不同之處在于我們還有一個正態(tài)分布的截距beta。現(xiàn)在我們的模型已經(jīng)訓練好了,我們可以繼續(xù)做一些推論工作。
**
完成運行后,會看到類似以下內容:

可以看到,我們有斜率和截距的后驗分布以及回歸的標準偏差。
**住房負擔會隨著年齡的增長而減少嗎?
**
是的。隨著人們的建立,他們的住房成本將相對于收入下降。這將等于年齡變量的負斜率系數(shù)。運行以下代碼,則可以找出斜率系數(shù)為負的確切概率。
print(np.mean([1?if?obj<0?else?0?for?obj?in?trace['x']]))
該系數(shù)為負的概率約為13.8%。

點擊文末?“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《Python貝葉斯回歸分析住房負擔能力數(shù)據(jù)集》。
點擊標題查閱往期內容
課程視頻|R語言bnlearn包:貝葉斯網(wǎng)絡的構造及參數(shù)學習的原理和實例
R語言Gibbs抽樣的貝葉斯簡單線性回歸仿真分析
python貝葉斯隨機過程:馬爾可夫鏈Markov-Chain,MC和Metropolis-Hastings,MH采樣算法可視化
Python貝葉斯推斷Metropolis-Hastings(M-H)MCMC采樣算法的實現(xiàn)
Metropolis Hastings采樣和貝葉斯泊松回歸Poisson模型
Matlab用BUGS馬爾可夫區(qū)制轉換Markov switching隨機波動率模型、序列蒙特卡羅SMC、M H采樣分析時間序列R語言RSTAN MCMC:NUTS采樣算法用LASSO 構建貝葉斯線性回歸模型分析職業(yè)聲望數(shù)據(jù)
R語言BUGS序列蒙特卡羅SMC、馬爾可夫轉換隨機波動率SV模型、粒子濾波、Metropolis Hasting采樣時間序列分析
R語言Metropolis Hastings采樣和貝葉斯泊松回歸Poisson模型
R語言貝葉斯MCMC:用rstan建立線性回歸模型分析汽車數(shù)據(jù)和可視化診斷
R語言貝葉斯MCMC:GLM邏輯回歸、Rstan線性回歸、Metropolis Hastings與Gibbs采樣算法實例
R語言貝葉斯Poisson泊松-正態(tài)分布模型分析職業(yè)足球比賽進球數(shù)
R語言用Rcpp加速Metropolis-Hastings抽樣估計貝葉斯邏輯回歸模型的參數(shù)
R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機森林算法預測心臟病
R語言中貝葉斯網(wǎng)絡(BN)、動態(tài)貝葉斯網(wǎng)絡、線性模型分析錯頜畸形數(shù)據(jù)
R語言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸
Python貝葉斯回歸分析住房負擔能力數(shù)據(jù)集
R語言實現(xiàn)貝葉斯分位數(shù)回歸、lasso和自適應lasso貝葉斯分位數(shù)回歸分析
Python用PyMC3實現(xiàn)貝葉斯線性回歸模型
R語言用WinBUGS 軟件對學術能力測驗建立層次(分層)貝葉斯模型
R語言Gibbs抽樣的貝葉斯簡單線性回歸仿真分析
R語言和STAN,JAGS:用RSTAN,RJAG建立貝葉斯多元線性回歸預測選舉數(shù)據(jù)
R語言基于copula的貝葉斯分層混合模型的診斷準確性研究
R語言貝葉斯線性回歸和多元線性回歸構建工資預測模型
R語言貝葉斯推斷與MCMC:實現(xiàn)Metropolis-Hastings 采樣算法示例
R語言stan進行基于貝葉斯推斷的回歸模型
R語言中RStan貝葉斯層次模型分析示例
R語言使用Metropolis-Hastings采樣算法自適應貝葉斯估計與可視化
R語言隨機搜索變量選擇SSVS估計貝葉斯向量自回歸(BVAR)模型
WinBUGS對多元隨機波動率模型:貝葉斯估計與模型比較
R語言實現(xiàn)MCMC中的Metropolis–Hastings算法與吉布斯采樣
R語言貝葉斯推斷與MCMC:實現(xiàn)Metropolis-Hastings 采樣算法示例
R語言使用Metropolis-Hastings采樣算法自適應貝葉斯估計與可視化
視頻:R語言中的Stan概率編程MCMC采樣的貝葉斯模型
R語言MCMC:Metropolis-Hastings采樣用于回歸的貝葉斯估計