線性回歸分析中的啞變量


 

最近偶爾在重溫統計學,發現自己工作后用了各種高級的統計分析方法,各種統計模型,卻忽視了統計學中一些最基礎的知識,而這些知識是所有這些高級方法的基礎,基礎不扎實,高級方法用起來真覺得底氣不足,今天看到啞變量在回歸分析中的應用,總結如下:

啞變量(Dummy Variable),也叫虛擬變量,引入啞變量的目的是,將不能夠定量處理的變量量化,如職業、性別對收入的影響,戰爭、自然災害對GDP的影響,季節對某些產品(如冷飲)銷售的影響等等。 這種“量化”通常是通過引入“啞變量”來完成的。根據這些因素的屬性類型,構造只取“0”或“1”的人工變量,通常稱為啞變量(dummy variables),記為D。

舉一個例子,假設變量“職業”的取值分別為:工人、農民、學生、企業職員、其他,5種選項,我們可以增加4個啞變量來代替“職業”這個變量,分別為D1(1=工人/0=非工人)、D2(1=農民/0=非農民)、D3(1=學生/0=非學生)、D4(1=企業職員/0=非企業職員),最后一個選項“其他”的信息已經包含在這4個變量中了,所以不需要再增加一個D5(1=其他/0=非其他)了。這個過程就是引入啞變量的過程,其實在結合分析(conjoint analysis)中,就是利用啞變量來分析各個屬性的效用值的。

在線性回歸分析中引入啞變量的目的是,可以考察定性因素對因變量的影響,引入啞變量有兩種方式:加法方式與乘法方式。

所謂加法方式是指,啞變量作為單獨的自變量,有獨立的系數,從幾何意義上來講,就是只改變回歸直線的截距(constant),不改變斜率(B);

而乘法方式則正好相反,不改變截距,只改變斜率,因為啞變量在回歸方程中不是作為一個獨立的自變量,而是與其中某一個自變量相乘后作為一個自變量。

當然,也可以同時使用加法和乘法來引入啞變量,即同時改變截距和斜率。

由於啞變量的取值只有0和1,它起到的作用像是一個“開關”的作用,它可以屏蔽掉D=0的case,使之不進入分析,在spss軟件中就是filter的作用。我試驗了一下,確實如此。

利用spss軟件自帶的data:car.sav,分析汽車的功率與100米加速時間的關系,將變量“filter_$”作為啞變量,我們分別run兩次線性回歸分析,然后對比這2次的結果,來說明上面的想法。

第一次:將啞變量“filter_$”納入到分析中,同時利用加法和乘法來引入,將“accel”作為因變量,“horse”、“filter_$”、“filter_$*horse”作為自變量,進行線性回歸分析;

第二次,利用變量“filter_$”進行篩選case,即不分析filter_$=0的case,同樣將“accel”作為因變量,而只將“horse”作為自變量;

兩次的線性回歸結果分別為:

第一次:accel=20.495-0.049*horse-0.007*"filter_$*horse"+0.738*filter_$

第二次:accel=21.234-0.056*horse

當filter_$=1時,第一次計算的公式正好等於第二次機算的公式。


 

虛擬變量(Dummy Variable),又稱名義變量或啞變量,是量化了的質變量,通常取值為0或1。在研究一個因變量的時候,解釋變量中除了定量變量,有時候會有一些定性變量,比如性別、年齡、宗教、民族、婚姻狀況、教育程度等。這些定性變量也可以成為指標變量或分類變量。此時需要使用虛擬變量。引入啞變量可使線形回歸模型變得更復雜,但對問題描述更簡明,一個方程能達到倆個方程的作用,而且接近現實。如果某個因素有n種選擇,則將其用啞變量引入模型時,要設置n-1個啞變量,以避免完全的多重共線性。如性別的選擇有兩種,則引入一個啞變量,是男則數值為1,否則為0,當然也可以設置為女為1,否則為0。季節的選擇有4個,則引入3個啞變量,啞變量1:春為1,否則為0.啞變量2:夏為1,否則為0.啞變量3:秋為1,否則為0.

對於有序變量,如輕、中、重,則要酌情考慮。如果樣本量足夠大的話,也進行啞變量化,這樣可以得到不同級別的差異。但是如果樣本量不夠大時,啞變量化造成變量數目上升,使回歸結果變得不可靠,只能適得其反。

啞變量設置的原則
在模型中引入多個啞變量時,啞變量的個數應按下列原則確定:如果有n種互斥的屬性類型,在模型中引入(n-1)個啞變量。例如,文化程度分小學、初中、高中、大學、研究生5類,引用4個啞變量

回歸分析
spss中,logistics回歸中,有專門的選項來處理需要啞變量化的變量,只需單擊“Categorical..”進行設置即可。但是對於多元線性回歸就沒有那么幸運了。
computer或recode設置一組啞變量。由於啞變量是一個整體變量,所以進行變量篩選時必須共同進退。因此,將所有啞變量同一般變量一下直接進行篩選是不對的,會出現一部分變量進入一部分變量未進入的情形。解決的方法是:將同一因素下的啞變量進行歸組,在納入方法中選擇了“ENTER”來確保這些啞變量同進同出,而其它連續型變量和二分類變量則歸為另一組,納入方法為STEPWISE。然后在沒有納入這組啞變量的情況下再做一次STEPWISE,再來比較是不是應該納入這組啞變量。

sas中,啞變量的設置需要另外寫程序,但是在回歸程序中,則比較簡單。eg.因變量y,自變量x1,x2,啞變量組x31 x32 x33,
proc reg;
  model y=x1 x2 {x31 x32 x33} /selection=stepwise;
run;
即,把啞變量組用{}括起來就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM