R語(yǔ)言用貝葉斯線性回歸、貝葉斯模型平均 (BMA)來(lái)預(yù)測(cè)工人工資|附代碼數(shù)據(jù)
?全文鏈接:
在本文中,貝葉斯模型提供了變量選擇技術(shù),確保變量選擇的可靠性。對(duì)社會(huì)經(jīng)濟(jì)因素如何影響收入和工資的研究為應(yīng)用這些技術(shù)提供了充分的機(jī)會(huì),同時(shí)也為從性別歧視到高等教育的好處等主題提供了洞察力(點(diǎn)擊文末“閱讀原文”獲取完整代碼數(shù)據(jù))。
背景
下面,貝葉斯信息準(zhǔn)則(BIC)和貝葉斯模型平均法被應(yīng)用于構(gòu)建一個(gè)簡(jiǎn)明的收入預(yù)測(cè)模型。
這些數(shù)據(jù)是從 935 名受訪者的隨機(jī)樣本中收集的。該數(shù)據(jù)集是_計(jì)量經(jīng)濟(jì)學(xué)數(shù)據(jù)集_系列的一部分 。
相關(guān)視頻
拓端
,贊30
加載包
數(shù)據(jù)將首先使用該dplyr
?包進(jìn)行探索?,并使用該ggplot2
?包進(jìn)行可視化?。稍后,實(shí)現(xiàn)逐步貝葉斯線性回歸和貝葉斯模型平均 (BMA)。
數(shù)據(jù)
數(shù)據(jù)集網(wǎng)頁(yè)提供了以下變量描述表:
變量
描述
wage
每周收入(元)
hours
每周平均工作時(shí)間
IQ
智商分?jǐn)?shù)
kww
對(duì)世界工作的了解得分
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
工資自然對(duì)數(shù)?wage
探索數(shù)據(jù)
與任何新數(shù)據(jù)集一樣,一個(gè)好的起點(diǎn)是標(biāo)準(zhǔn)的探索性數(shù)據(jù)分析。匯總表是簡(jiǎn)單的第一步。
#?數(shù)據(jù)集中所有變量的匯總表--包括連續(xù)變量和分類變量 summary(wage)


因變量(工資)的直方圖給出了合理預(yù)測(cè)應(yīng)該是什么樣子的。
#工資數(shù)據(jù)的簡(jiǎn)單柱狀圖 hst(wge$wae,?breks?=?30)

直方圖還可用于大致了解哪些地方不太可能出現(xiàn)結(jié)果。
#?檢查圖表?"尾部?"的點(diǎn)的數(shù)量 sm(wage$ge?<?300)##?\[1\]?6sm(wae$wge?>?2000)##?\[1\]?20
簡(jiǎn)單線性回歸
由于周工資('wage')是該分析中的因變量,我們想探索其他變量作為預(yù)測(cè)變量的關(guān)系。我們?cè)跀?shù)據(jù)中看到的工資變化的一種可能的、簡(jiǎn)單的解釋是更聰明的人賺更多的錢。下圖顯示了每周工資和 IQ 分?jǐn)?shù)之間的散點(diǎn)圖。
gplot(wae,?es(iq,?wge))?+?gom\_oint()?+gom\_smoth()

點(diǎn)擊標(biāo)題查閱往期內(nèi)容
左右滑動(dòng)查看更多
01
02
03
04
IQ 分?jǐn)?shù)和工資之間似乎存在輕微的正線性關(guān)系,但僅靠 IQ 并不能可靠地預(yù)測(cè)工資。盡管如此,這種關(guān)系可以通過擬合一個(gè)簡(jiǎn)單的線性回歸來(lái)量化,它給出:
工資 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è)模型之前,請(qǐng)注意貝葉斯建模假設(shè)誤差 (?i) 以恒定方差正態(tài)分布。通過檢查模型的殘差分布來(lái)檢查該假設(shè)。如果殘差高度非正態(tài)或偏斜,則違反假設(shè)并且任何后續(xù)推論都無(wú)效。要檢查假設(shè),請(qǐng)按如下方式繪制殘差:
#?用散點(diǎn)圖和模型誤差殘差的直方圖來(lái)檢查正態(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ù)測(cè)模型。但是,對(duì)?僅具有正值的偏斜_因_變量使用(自然)對(duì)數(shù)變換?通??梢越鉀Q問題。下面,該模型使用轉(zhuǎn)換后的工資變量進(jìn)行了重新擬合。
#?用IQ的自然對(duì)數(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ì)對(duì)工資產(chǎn)生太大影響。需要進(jìn)一步細(xì)化。數(shù)據(jù)集包含更多信息。
多元線性回歸和 BIC
我們可以首先在回歸模型中包含所有潛在的解釋變量,來(lái)粗略地嘗試解釋盡可能多的工資變化。
#?對(duì)數(shù)據(jù)集中的所有變量運(yùn)行一個(gè)線性模型,使用'.'約定。 full?=?lm(lwge?~?.?-?wage,?dta?=?wge)

完整線性模型的上述總結(jié)表明,自變量的許多系數(shù)在統(tǒng)計(jì)上并不顯著(請(qǐng)參閱第 4 個(gè)數(shù)字列中的 p 值)。選擇模型變量的一種方法是使用貝葉斯信息準(zhǔn)則 (BIC)。BIC 是模型擬合的數(shù)值評(píng)估,它也會(huì)按樣本大小的比例懲罰更多的參數(shù)。這是完整線性模型的 BIC:
BIC(full)

BIC 值越小表示擬合越好。因此,BIC 可以針對(duì)各種縮減模型進(jìn)行計(jì)算,然后與完整模型 BIC 進(jìn)行比較,以找到適合工資預(yù)測(cè)工作的最佳模型。當(dāng)然,R 有一個(gè)功能可以系統(tǒng)地執(zhí)行這些 BIC 調(diào)整。
#?用step計(jì)算模型 pIC(lwge?~?.?-?wge,?dta?=?na.oi(wge))lg(lgth(na.mit(wge))))

#?顯示逐步模型的BIC BIC(se_mol)

調(diào)用 step找到產(chǎn)生最低 BIC 的變量組合,并提供它們的系數(shù)。很不錯(cuò)。
貝葉斯模型平均(BMA)
即使BIC處于最低值,我們能有多大把握確定所得到的模型是真正的 "最佳擬合"?答案很可能取決于基礎(chǔ)數(shù)據(jù)的規(guī)模和穩(wěn)定性。在這些不確定的時(shí)候,貝葉斯模型平均化(BMA)是有幫助的。BMA對(duì)多個(gè)模型進(jìn)行平均化,獲得系數(shù)的后驗(yàn)值和新數(shù)據(jù)的預(yù)測(cè)值。下面,BMA被應(yīng)用于工資數(shù)據(jù)(排除NA值后)。
#?不包括NA a_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模型的排名也可以用圖像圖來(lái)顯示,它清楚地顯示哪些變量在所有模型中,哪些變量被排除在所有模型之外,以及那些介于兩者之間的變量。
ge(b_lge,?tp.oels)

我們還可以提供模型系數(shù)的95%置信區(qū)間。下面的結(jié)果支持了關(guān)于包括或排除系數(shù)的決定。例如,在區(qū)間包含零,有大量證據(jù)支持排除該變量。
confint(ceflae)
進(jìn)行預(yù)測(cè)
構(gòu)建模型后,pediction 只是插入數(shù)據(jù)的問題:
#?用一個(gè)虛構(gòu)的工人的統(tǒng)計(jì)資料來(lái)預(yù)測(cè)數(shù)據(jù)的例子 #?進(jìn)行預(yù)測(cè) redict?=?pedct(e_odl,?newdt?=?wrkr,eitr?=?"BMA") #?將結(jié)果轉(zhuǎn)換為元 exp(wk_pedct)

預(yù)計(jì)這名化妝工作人員的周薪為 745 元。這到底有多準(zhǔn)確?你得問她,但我們對(duì)我們的變量選擇很有信心,并對(duì)現(xiàn)有的數(shù)據(jù)盡了最大努力。應(yīng)用的貝葉斯技術(shù)使我們對(duì)結(jié)果有信心。

本文摘選《R語(yǔ)言用貝葉斯線性回歸、貝葉斯模型平均 (BMA)來(lái)預(yù)測(cè)工人工資》,點(diǎn)擊“閱讀原文”獲取全文完整代碼和數(shù)據(jù)資料。

點(diǎn)擊標(biāo)題查閱往期內(nèi)容