拓端tecdat|R語言計(jì)量經(jīng)濟(jì)學(xué):虛擬變量(啞變量)在線性回歸模型中的應(yīng)用
原文鏈接:http://tecdat.cn/?p=22805?
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
為什么需要虛擬變量?
大多數(shù)數(shù)據(jù)都可以用數(shù)字來衡量,如身高和體重。然而,諸如性別、季節(jié)、地點(diǎn)等變量則不能用數(shù)字來衡量。相反,我們使用虛擬變量來衡量它們。
例子:性別
讓我們假設(shè)x對(duì)y的影響在男性和女性中是不同的。
對(duì)于男性y=10+5x+ey=10+5x+e
對(duì)于女性y=5+x+ey=5+x+e。
其中e是隨機(jī)效應(yīng),平均值為零。因此,在y和x的真實(shí)關(guān)系中,性別既影響截距又影響斜率。
首先,讓我們生成我們需要的數(shù)據(jù)。
#真斜率,男性=5,女性=1
ifelse(d$性別==1, 10+5*d$x+e,5+d$x+e)
首先,我們可以看一下x和y之間的關(guān)系,并按性別給數(shù)據(jù)著色。?
plot(data=d)
很明顯,y和x之間的關(guān)系不應(yīng)該用一條線來描繪。我們需要兩條:一條代表男性,一條代表女性。
如果我們只將y回歸到x和性別上,結(jié)果是
x的估計(jì)系數(shù)不正確。
正確的設(shè)置應(yīng)該是這樣的,這樣可以使性別同時(shí)影響截距和斜率。
或者使用下面的方法,添加一個(gè)虛擬變量。
該模型表示,對(duì)于女性(性別=0),估計(jì)的模型是y=5.20+0.99x;對(duì)于男性(性別=1),估計(jì)的關(guān)系是y=5.20+0.99x+4.5+4.02x,也就是y=9.7+5.01x,相當(dāng)接近真實(shí)關(guān)系。
接下來,讓我們嘗試兩個(gè)虛擬變量:性別和地點(diǎn)
性別和地點(diǎn)的虛擬變量
性別并不重要,但地點(diǎn)很重要
讓我們獲取一些數(shù)據(jù),其中性別不重要,但地點(diǎn)會(huì)很重要。
繪制查看x和y之間的關(guān)系,按性別給數(shù)據(jù)著色,并按地點(diǎn)分開。
plot(d,grid~location)
?性別對(duì)Y的影響似乎是顯著的。但當(dāng)你比較芝加哥的數(shù)據(jù)和多倫多的數(shù)據(jù)時(shí),截距不同,斜率也不同。
如果我們忽略了性別和地點(diǎn)的影響,模型將是
R-squared是相當(dāng)?shù)偷摹?/p>
我們知道性別并不重要,但我們還是把它加進(jìn)去,看看是否會(huì)有什么不同。?
正如預(yù)期,性別的影響并不顯著。
現(xiàn)在讓我們來看看地點(diǎn)的影響
位置的影響是很大。但我們的模型設(shè)置基本上是說,位置只會(huì)改變截距。
如果位置同時(shí)改變了截距和斜率呢?
你也可以試試這個(gè)。
性別并不重要,而地點(diǎn)會(huì)改變截距和斜率。
性別并不重要,而地點(diǎn)會(huì)改變截距和斜率
現(xiàn)在讓我們獲取一些性別和地點(diǎn)都很重要的數(shù)據(jù)。讓我們從兩個(gè)地點(diǎn)開始。
ifelse(d$性別=="0" & d$地點(diǎn)=="多倫多", 1+1*d$x+e,
+ ? ? ? ? ? ? ? ? ? ?ifelse(d$性別=="1" & d$地點(diǎn)=="芝加哥", 20+2*d$x+e,
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ifelse(d$性別=="0" & d$地點(diǎn)=="芝加哥", 2+2*d$x+e,NA))))
plot(d,x,y,color=性別~地點(diǎn))
性別和地點(diǎn)都很重要,5個(gè)地點(diǎn)
最后,讓我們嘗試一個(gè)有5個(gè)地點(diǎn)的模型。
+ ? ? ? ? ? ? ? ? ? ?ifelse(d$性別=="1" & d$地點(diǎn)=="芝加哥", 2+10*d$x+e,
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ifelse(d$性別=="0" & d$地點(diǎn)=="芝加哥", 2+2*d$x+e,
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ifelse(d$性別=="1" & d$地點(diǎn)=="紐約",3+15*d$x+e,
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ifelse(d$性別=="0" & d$地點(diǎn)=="紐約",3+5*d$x+e,
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ifelse(d$性別=="1" & d$地點(diǎn)=="北京",8+30*d$x+e,
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ifelse(d$性別=="0" & d$地點(diǎn)=="北京",8+2*d$x+e,
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ifelse(d$性別=="1" & d$地點(diǎn)=="上海",
plot( x,y,color=性別 ~地點(diǎn))
所以,如果你認(rèn)為某些因素(性別、地點(diǎn)、季節(jié)等)可能會(huì)影響你的解釋變量,就把它們?cè)O(shè)置為虛擬變量。
最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應(yīng)用案例
2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實(shí)現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗(yàn)
6.r語言中對(duì)LASSO回歸,Ridge嶺回歸和Elastic Net模型實(shí)現(xiàn)
7.在R語言中實(shí)現(xiàn)Logistic邏輯回歸
8.python用線性回歸預(yù)測(cè)股票價(jià)格
9.R語言如何在生存分析與Cox回歸中計(jì)算IDI,NRI指標(biāo)