分類變量的水平一定要壓縮
模型中分類變量一般需要處理成0-1形式的啞變量。
如果變量水平本身較多,那麼啞變量的水平個數也會相應變多,這種情況下去構建模型肯定不行,需要將分類變量的水平進行壓縮處理。
分類變量水平壓縮的方法
一般情況,分類變量水平壓縮有下面兩種方法,這一篇先說說我對啞變量編碼法的理解:
- 啞變量編碼法;
-
基於目標變量的WOE轉換法;
我眼中的啞變量編碼法
建模時,如果入模變量有N個等級,爲了避免多重共線性,不可以設置N個啞變量,一般需設置N-1個0-1形式的啞變量。變量等級過多會爲後續的建模工作帶來麻煩,但如果堅持想通過構建啞變量的方式來構建模型,則只能通過人爲的方法去合併變量的水平數量,即進行變量壓縮處理。
例如某個分類變量共有19個水平,那麼可以通過變量壓縮,將水平合併爲5個,再針對這5個水平設置4個啞變量,這樣事情就變得非常的簡單了,通常,我會用決策樹去實現這個過程。
SAS構建邏輯迴歸模型時會使用CLASS語句去告訴軟件該變量爲分類變量,同時,SAS也會自動生成對應的N-1個啞變量,而迴歸模型則需手動設置生成啞變量,這個環節與迴歸模型相比,邏輯迴歸模型更加簡單便捷。
變量壓縮的原則
變量壓縮遵循的基本原則爲:將缺乏變異性的 數據分類 壓縮處理掉。
以績效等級爲例,Y爲0-1形式的二值型數據,如果數據處於第二個績效等級,則Y=0的概率爲100%,即這個績效等級的方差爲0,這意味着變量的隨機性已經退化到僅剩一個數值,Y因缺乏變異而導致無法計算,即第二個績效等級的分類水平明顯會導致過度擬合。
這種情況下,通常需要將第二個績效等級水平與其他水平進行合併處理。
我這樣進行水平合併
關於變量水平的合併,我會有兩種合併思路:
- 將頻次少的水平簡單合併爲一類,這種方式看上去簡單粗暴,但其實經度降低並不大,變量水平依然不少;
- Y=1的概率越高,表明其越容易過度擬合,最優的情況爲比例全在0.5左右,越靠近0.5說明變異性越好,可以依據每個水平Y=1的佔比,將值接近1的觀測劃分爲一類,這種方式可以通過快速聚類來實現。
變量水平的合併需要進行多次嘗試,宗旨是力求變異性最大化,也就是P*(1-P)最大。合併的過程需要手動完成,需要將每一個分類變量拿出來後,逐一進行列聯表分析,然後人工的去挑出沒有變異的值後,再手動進行合併。
我的公衆號:Data Analyst