數(shù)據(jù)科學(xué)中的陷阱:定性變量的處理
在之前的文章里(《數(shù)據(jù)科學(xué)中的陷阱:變量的數(shù)學(xué)運(yùn)算合理嗎?》),我們討論過(guò)定性變量,也就是表示類(lèi)別的變量,比如性別、省份等。對(duì)于這類(lèi)變量,不能在模型里直接使用它們,因?yàn)槎ㄐ宰兞恐g的數(shù)學(xué)計(jì)算是毫無(wú)意義的。另一方面,定性變量是一類(lèi)很常見(jiàn)的變量,通常帶著很有價(jià)值的信息。因此,這篇文章就將討論如何正確地在模型里使用定性變量。
對(duì)于定性變量,常見(jiàn)的處理方法有兩種:一種是將定性變量轉(zhuǎn)換為多個(gè)虛擬變量,另一種對(duì)將有序的定性變量轉(zhuǎn)換為定量變量。
一、虛擬變量
正如前文中討論的,直接對(duì)定性變量數(shù)字編碼,得到的變量將無(wú)法進(jìn)行有意義的數(shù)學(xué)運(yùn)算。那么,相應(yīng)的解決方法就是使得變換之后的變量不能直接做數(shù)學(xué)運(yùn)算。
為了便于理解,我們先來(lái)看一個(gè)簡(jiǎn)單的例子:使用身高和性別對(duì)體重構(gòu)建線性回歸模型。性別是一個(gè)二元定性變量,可能的取值為男或女。用兩個(gè)新生成的變量來(lái)取代性別,記為(x1, x2)。其中,x1 = 1表示性別為男, x1 = 0表示性別不為男; x2類(lèi)似,表示性別是否為女。在學(xué)術(shù)上,新生成的變量被稱(chēng)為虛擬變量(dummy variable)。虛擬變量是一種特殊的離散型變量,可能的值只有兩個(gè):0或1,因此也被稱(chēng)為0/1變量。
用y表示體重, z表示身高,于是有:
注意到
,也就是變量和變量成線性關(guān)系。這會(huì)導(dǎo)致另外一個(gè)問(wèn)題:多重共線性(多重共線性源自線性模型,它是指由于自變量之間存在高度相關(guān)關(guān)系而使模型參數(shù)估計(jì)不準(zhǔn)確,我們會(huì)在后面的文章里詳細(xì)討論)這個(gè)由虛擬變量引起的多重共線性問(wèn)題在學(xué)術(shù)上被稱(chēng)為虛擬變量陷阱(dummy variable trap)。為了規(guī)避這個(gè)問(wèn)題,我們對(duì)公式(1)做如下的數(shù)學(xué)變換,得到:
上面的數(shù)學(xué)轉(zhuǎn)換可翻譯為:首先選擇性別男為基準(zhǔn)類(lèi)別,生成一維虛擬變量,變量的含義與之前相同。這個(gè)變量前面的系數(shù)b - a表示性別女相對(duì)于性別男(基準(zhǔn)類(lèi)別)的體重差異。需要注意的是,針對(duì)二元定性變量,從表面上來(lái)看,直接對(duì)變量數(shù)字編碼同虛擬變量效果一樣。但這只是一個(gè)巧合而已,兩種方法有本質(zhì)的區(qū)別。
將上面的方法推廣到n元定性變量(可能取值為n個(gè)的定性變量)。選擇一個(gè)類(lèi)別作為基準(zhǔn)類(lèi)別,并生成n - 1個(gè)虛擬變量,分別表示剩下的n - 1個(gè)類(lèi)別。在搭建模型時(shí),用這n - 1個(gè)新生成的虛擬變量代替原來(lái)的定性變量。具體過(guò)程如圖1所示。

圖1二、從定性變量到定量變量
前面討論的虛擬變量的方法是比較通用的處理方法。但這種方法有一個(gè)很明顯的缺點(diǎn):每個(gè)虛擬變量都是0或1,無(wú)法提供更多的信息。特別是對(duì)于多個(gè)有序的定性變量,這會(huì)損失掉每個(gè)定性變量本身的順序信息和定性變量間的關(guān)聯(lián)信息。為了解決這個(gè)問(wèn)題,常常根據(jù)類(lèi)別的順序,將定性變量轉(zhuǎn)換為定量變量。具體的轉(zhuǎn)換方法有很多,但限于篇幅,這里只討論其中的一種:針對(duì)二元分類(lèi)問(wèn)題的Ridit scoring(此方法在保險(xiǎn)業(yè)中應(yīng)用很廣),如圖2所示。
假設(shè)有序的定性變量x有t個(gè)可能的取值,記為
。而且對(duì)于被預(yù)測(cè)值,排在后面的類(lèi)別,y = 1發(fā)生的可能性越小。也就是說(shuō),對(duì)于y = 1這件事,其他變量相同時(shí),類(lèi)別1的概率最大,類(lèi)別t的概率最小。用
分別表示各個(gè)類(lèi)別所占比例,于是類(lèi)別的Ridit scoring為:

圖2對(duì)于一般的定性變量,我們也可以使用所謂的WOE(weight of evidence)方法來(lái)將其轉(zhuǎn)換為定量變量,這種方法在信貸風(fēng)控領(lǐng)域十分廣泛。具體來(lái)說(shuō),假設(shè)二元分類(lèi)問(wèn)題里有兩個(gè)類(lèi)別,用B和G表示(這樣標(biāo)記源自金融領(lǐng)域,B表示bad,G表示good)。同樣假設(shè),定性變量x有t個(gè)可能的取值,記為
。那么對(duì)于取值i,它的WOE值為:
其中
表示x等于i時(shí),B類(lèi)別的數(shù)量,
表示B類(lèi)別的總數(shù)量;
和
表示的意思類(lèi)似。
注:這篇文章的大部分內(nèi)容參考《精通數(shù)據(jù)科學(xué):從線性回歸到深度學(xué)習(xí)》。




























