標籤:

啞變數在數據挖掘中的使用

啞變數(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時,第一次計算的公式正好等於第二次機算的公式。

推薦閱讀:

紙上得來終覺淺 絕知此事要躬行
學習數據分析的意義和實踐計劃
R語言實戰第八章:回歸
如何評價三菱數據造假醜聞事件?
分析競爭力,數字時代的差異化競爭優勢

TAG:數據分析 |