R語言用貝葉斯線性回歸、貝葉斯模型平均 (BMA)來預(yù)測工人工資|附代碼數(shù)據(jù)
全文鏈接:http://tecdat.cn/?p=24141
最近我們被客戶要求撰寫關(guān)于貝葉斯線性回歸的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
在本文中,貝葉斯模型提供了變量選擇技術(shù),確保變量選擇的可靠性。對社會(huì)經(jīng)濟(jì)因素如何影響收入和工資的研究為應(yīng)用這些技術(shù)提供了充分的機(jī)會(huì),同時(shí)也為從性別歧視到高等教育的好處等主題提供了洞察力
背景
下面,貝葉斯信息準(zhǔn)則(BIC)和貝葉斯模型平均法被應(yīng)用于構(gòu)建一個(gè)簡明的收入預(yù)測模型。
這些數(shù)據(jù)是從 935 名受訪者的隨機(jī)樣本中收集的。該數(shù)據(jù)集是_計(jì)量經(jīng)濟(jì)學(xué)數(shù)據(jù)集_系列的一部分 。
加載包
數(shù)據(jù)將首先使用該dplyr
?包進(jìn)行探索?,并使用該ggplot2
?包進(jìn)行可視化?。稍后,實(shí)現(xiàn)逐步貝葉斯線性回歸和貝葉斯模型平均 (BMA)。
數(shù)據(jù)
數(shù)據(jù)集網(wǎng)頁提供了以下變量描述表:
變量描述wage
每周收入(元)hours
每周平均工作時(shí)間IQ
智商分?jǐn)?shù)kww
對世界工作的了解得分educ
受教育年數(shù)exper
多年工作經(jīng)驗(yàn)tenure
在現(xiàn)任雇主工作的年數(shù)age
年齡married
=1 如果已婚black
=1 如果是黑人south
=1 如果住在南方urban
=1 如果居住在都市sibs
兄弟姐妹的數(shù)量brthord
出生順序meduc
母親的教育(年)feduc
父親的教育(年)lwage
工資自然對數(shù)?wage
``
探索數(shù)據(jù)
與任何新數(shù)據(jù)集一樣,一個(gè)好的起點(diǎn)是標(biāo)準(zhǔn)的探索性數(shù)據(jù)分析。匯總表是簡單的第一步。
#?數(shù)據(jù)集中所有變量的匯總表--包括連續(xù)變量和分類變量summary(wage)
因變量(工資)的直方圖給出了合理預(yù)測應(yīng)該是什么樣子的。
#工資數(shù)據(jù)的簡單柱狀圖hst(wge$wae,?breks?=?30)
直方圖還可用于大致了解哪些地方不太可能出現(xiàn)結(jié)果。
#?檢查圖表?"尾部?"的點(diǎn)的數(shù)量sm(wage$ge?<?300)
##?[1]?6
sm(wae$wge?>?2000)
##?[1]?20
簡單線性回歸
由于周工資('wage')是該分析中的因變量,我們想探索其他變量作為預(yù)測變量的關(guān)系。我們在數(shù)據(jù)中看到的工資變化的一種可能的、簡單的解釋是更聰明的人賺更多的錢。下圖顯示了每周工資和 IQ 分?jǐn)?shù)之間的散點(diǎn)圖。
gplot(wae,?es(iq,?wge))?+?gom_oint()?+gom_smoth()
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語言和STAN,JAGS:用RSTAN,RJAG建立貝葉斯多元線性回歸預(yù)測選舉數(shù)據(jù)
左右滑動(dòng)查看更多
01
02
03
04
IQ 分?jǐn)?shù)和工資之間似乎存在輕微的正線性關(guān)系,但僅靠 IQ 并不能可靠地預(yù)測工資。盡管如此,這種關(guān)系可以通過擬合一個(gè)簡單的線性回歸來量化,它給出:
工資 i = α + β?iqi + ?iwagei = α + β?iqi + ?i
m_wg_iq?=?lm(wge?~?iq,?dta?=?age)
coefients
工資 i = 116.99 + 8.3 ?iqi + ?iwagei = 116.99 + 8.3 ?iqi + ?i
在轉(zhuǎn)向貝葉斯改進(jìn)這個(gè)模型之前,請注意貝葉斯建模假設(shè)誤差 (?i) 以恒定方差正態(tài)分布。通過檢查模型的殘差分布來檢查該假設(shè)。如果殘差高度非正態(tài)或偏斜,則違反假設(shè)并且任何后續(xù)推論都無效。要檢查假設(shè),請按如下方式繪制殘差:
#?用散點(diǎn)圖和模型誤差殘差的直方圖來檢查正態(tài)性假設(shè)glot(dta?=?mwag_q,?es(x?=?.ite,?y?=?.rd))?+
??gemittr()?+
plot(dta?=?m_g_iq,?aes(x?=?.reid))?+
??histgm(bnwth?=?10)
變量變換
兩個(gè)圖都顯示殘差是右偏的。因此,IQ(因?yàn)樗壳按嬖谟跀?shù)據(jù)集中)不應(yīng)用作貝葉斯預(yù)測模型。但是,對?僅具有正值的偏斜_因_變量使用(自然)對數(shù)變換?通常可以解決問題。下面,該模型使用轉(zhuǎn)換后的工資變量進(jìn)行了重新擬合。
#?用IQ的自然對數(shù)擬合th模型lm(lage?~?iq,?data?=?wae)
#?殘差sctterplot和轉(zhuǎn)換后數(shù)據(jù)的柱狀圖plt(data?=?m_lag_iq,?es(x?=?.fited,?y?=?.reid))?
??geiter()?+
ggpot(dta?=?m_lwgeiq,?as(x?=?.resd))?+
??gostgam(binwth?=?.1)?+
殘差確實(shí)大致呈正態(tài)分布。然而,由此產(chǎn)生的 IQ 系數(shù)非常?。ㄖ挥?0.0088),這是可以預(yù)料的,因?yàn)?IQ 分?jǐn)?shù)提高 1 分幾乎不會(huì)對工資產(chǎn)生太大影響。需要進(jìn)一步細(xì)化。數(shù)據(jù)集包含更多信息。
多元線性回歸和 BIC
我們可以首先在回歸模型中包含所有潛在的解釋變量,來粗略地嘗試解釋盡可能多的工資變化。
#?對數(shù)據(jù)集中的所有變量運(yùn)行一個(gè)線性模型,使用'.'約定。full?=?lm(lwge?~?.?-?wage,?dta?=?wge)
完整線性模型的上述總結(jié)表明,自變量的許多系數(shù)在統(tǒng)計(jì)上并不顯著(請參閱第 4 個(gè)數(shù)字列中的 p 值)。選擇模型變量的一種方法是使用貝葉斯信息準(zhǔn)則 (BIC)。BIC 是模型擬合的數(shù)值評估,它也會(huì)按樣本大小的比例懲罰更多的參數(shù)。這是完整線性模型的 BIC:
BIC(full)
BIC 值越小表示擬合越好。因此,BIC 可以針對各種縮減模型進(jìn)行計(jì)算,然后與完整模型 BIC 進(jìn)行比較,以找到適合工資預(yù)測工作的最佳模型。當(dāng)然,R 有一個(gè)功能可以系統(tǒng)地執(zhí)行這些 BIC 調(diào)整。
#?用step計(jì)算模型pIC(lwge?~?.?-?wge,?dta?=?na.oi(wge))lg(lgth(na.mit(wge))))
#?顯示逐步模型的BICBIC(se_mol)
調(diào)用 step找到產(chǎn)生最低 BIC 的變量組合,并提供它們的系數(shù)。很不錯(cuò)。
貝葉斯模型平均(BMA)
即使BIC處于最低值,我們能有多大把握確定所得到的模型是真正的 "最佳擬合"?答案很可能取決于基礎(chǔ)數(shù)據(jù)的規(guī)模和穩(wěn)定性。在這些不確定的時(shí)候,貝葉斯模型平均化(BMA)是有幫助的。BMA對多個(gè)模型進(jìn)行平均化,獲得系數(shù)的后驗(yàn)值和新數(shù)據(jù)的預(yù)測值。下面,BMA被應(yīng)用于工資數(shù)據(jù)(排除NA值后)。
#?不包括NAa_ona?=?na.omt(wae)#?運(yùn)行BMA,指定BIC作為判斷結(jié)果模型的標(biāo)準(zhǔn)BMA(wge?~?.?-wge,?daa=?ae_o_a,
???????????????????pror?=?"BIC",?
???????????????????moepor?=?ufom())#?顯示結(jié)果summary
結(jié)果表顯示了五個(gè)最有可能的模型,以及每個(gè)系數(shù)被包含在真實(shí)模型中的概率。我們看到,出生順序和是否有兄弟姐妹是最不可能被包含的變量,而教育和智商變量則被鎖定。BMA模型的排名也可以用圖像圖來顯示,它清楚地顯示哪些變量在所有模型中,哪些變量被排除在所有模型之外,以及那些介于兩者之間的變量。
ge(b_lge,?tp.oels)
我們還可以提供模型系數(shù)的95%置信區(qū)間。下面的結(jié)果支持了關(guān)于包括或排除系數(shù)的決定。例如,在區(qū)間包含零,有大量證據(jù)支持排除該變量。
confint(ceflae)
進(jìn)行預(yù)測
構(gòu)建模型后,pediction 只是插入數(shù)據(jù)的問題:
#?用一個(gè)虛構(gòu)的工人的統(tǒng)計(jì)資料來預(yù)測數(shù)據(jù)的例子#?進(jìn)行預(yù)測redict?=?pedct(e_odl,?newdt?=?wrkr,eitr?=?"BMA")#?將結(jié)果轉(zhuǎn)換為元exp(wk_pedct)
預(yù)計(jì)這名化妝工作人員的周薪為 745 元。這到底有多準(zhǔn)確?你得問她,但我們對我們的變量選擇很有信心,并對現(xiàn)有的數(shù)據(jù)盡了最大努力。應(yīng)用的貝葉斯技術(shù)使我們對結(jié)果有信心。
本文摘選?《?R語言用貝葉斯線性回歸、貝葉斯模型平均 (BMA)來預(yù)測工人工資?》?,點(diǎn)擊“閱讀原文”獲取全文完整代碼和數(shù)據(jù)資料。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機(jī)森林算法預(yù)測心臟病PYTHON銀行機(jī)器學(xué)習(xí):回歸、隨機(jī)森林、KNN近鄰、決策樹、高斯樸素貝葉斯、支持向量機(jī)SVM分析營銷活動(dòng)數(shù)據(jù)|數(shù)據(jù)分享
PYTHON用戶流失數(shù)據(jù)挖掘:建立邏輯回歸、XGBOOST、隨機(jī)森林、決策樹、支持向量機(jī)、樸素貝葉斯和KMEANS聚類用戶畫像
MATLAB隨機(jī)森林優(yōu)化貝葉斯預(yù)測分析汽車燃油經(jīng)濟(jì)性
R語言中貝葉斯網(wǎng)絡(luò)(BN)、動(dòng)態(tài)貝葉斯網(wǎng)絡(luò)、線性模型分析錯(cuò)頜畸形數(shù)據(jù)
使用貝葉斯層次模型進(jìn)行空間數(shù)據(jù)分析MCMC的rstan貝葉斯回歸模型和標(biāo)準(zhǔn)線性回歸模型比較
python貝葉斯隨機(jī)過程:馬爾可夫鏈Markov-Chain,MC和Metropolis-Hastings,MH采樣算法可視化
Python貝葉斯推斷Metropolis-Hastings(M-H)MCMC采樣算法的實(shí)現(xiàn)
matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)
貝葉斯線性回歸和多元線性回歸構(gòu)建工資預(yù)測模型
Metropolis Hastings采樣和貝葉斯泊松回歸Poisson模型
貝葉斯分位數(shù)回歸、lasso和自適應(yīng)lasso貝葉斯分位數(shù)回歸分析免疫球蛋白、前列腺癌數(shù)據(jù)
R語言RSTAN MCMC:NUTS采樣算法用LASSO 構(gòu)建貝葉斯線性回歸模型分析職業(yè)聲望數(shù)據(jù)
R語言STAN貝葉斯線性回歸模型分析氣候變化影響北半球海冰范圍和可視化檢查模型收斂性
PYTHON用戶流失數(shù)據(jù)挖掘:建立邏輯回歸、XGBOOST、隨機(jī)森林、決策樹、支持向量機(jī)、樸素貝葉斯和KMEANS聚類用戶畫像
貝葉斯分位數(shù)回歸、lasso和自適應(yīng)lasso貝葉斯分位數(shù)回歸分析免疫球蛋白、前列腺癌數(shù)據(jù)R語言JAGS貝葉斯回歸模型分析博士生延期畢業(yè)完成論文時(shí)間
R語言Metropolis Hastings采樣和貝葉斯泊松回歸Poisson模型
Python決策樹、隨機(jī)森林、樸素貝葉斯、KNN(K-最近鄰居)分類分析銀行拉新活動(dòng)挖掘潛在貸款客戶
R語言貝葉斯MCMC:用rstan建立線性回歸模型分析汽車數(shù)據(jù)和可視化診斷
R語言貝葉斯MCMC:GLM邏輯回歸、Rstan線性回歸、Metropolis Hastings與Gibbs采樣算法實(shí)例
R語言貝葉斯Poisson泊松-正態(tài)分布模型分析職業(yè)足球比賽進(jìn)球數(shù)
隨機(jī)森林優(yōu)化貝葉斯預(yù)測分析汽車燃油經(jīng)濟(jì)性
R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機(jī)森林算法預(yù)測心臟病
R語言用Rcpp加速M(fèi)etropolis-Hastings抽樣估計(jì)貝葉斯邏輯回歸模型的參數(shù)
R語言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸
Python貝葉斯回歸分析住房負(fù)擔(dān)能力數(shù)據(jù)集
R語言實(shí)現(xiàn)貝葉斯分位數(shù)回歸、lasso和自適應(yīng)lasso貝葉斯分位數(shù)回歸分析
Python用PyMC3實(shí)現(xiàn)貝葉斯線性回歸模型
R語言用WinBUGS 軟件對學(xué)術(shù)能力測驗(yàn)建立層次(分層)貝葉斯模型
R語言Gibbs抽樣的貝葉斯簡單線性回歸仿真分析
R語言和STAN,JAGS:用RSTAN,RJAG建立貝葉斯多元線性回歸預(yù)測選舉數(shù)據(jù)
R語言基于copula的貝葉斯分層混合模型的診斷準(zhǔn)確性研究
R語言貝葉斯線性回歸和多元線性回歸構(gòu)建工資預(yù)測模型
R語言貝葉斯推斷與MCMC:實(shí)現(xiàn)Metropolis-Hastings 采樣算法示例
R語言stan進(jìn)行基于貝葉斯推斷的回歸模型
R語言中RStan貝葉斯層次模型分析示例
R語言使用Metropolis-Hastings采樣算法自適應(yīng)貝葉斯估計(jì)與可視化
R語言隨機(jī)搜索變量選擇SSVS估計(jì)貝葉斯向量自回歸(BVAR)模型
WinBUGS對多元隨機(jī)波動(dòng)率模型:貝葉斯估計(jì)與模型比較
R語言實(shí)現(xiàn)MCMC中的Metropolis–Hastings算法與吉布斯采樣
R語言貝葉斯推斷與MCMC:實(shí)現(xiàn)Metropolis-Hastings 采樣算法示例
R語言使用Metropolis-Hastings采樣算法自適應(yīng)貝葉斯估計(jì)與可視化
視頻:R語言中的Stan概率編程MCMC采樣的貝葉斯模型
R語言MCMC:Metropolis-Hastings采樣用于回歸的貝葉斯估計(jì)