Tree Surrogate 樹替代是決策樹CART演算法裡面內建的處理遺失值的一個很棒的演算法。只要資料列有目標變數搭配只少一個未遺失的特徵值,即可進行遺失值的預測,計算預測遺失值的surrogate variable list來作為替代值順位。
CART決策樹模型遺失值預測法 Tree Surrogate 簡介
- 在使用rpart()(Recursive Partitioning Tree)建模時,我們不用特別針對遺失值進行處理。
- 只要觀測值有y值,和至少一個未遺失的x值,則可投入模型。
- 在遇到觀測資料有遺失值的情況,會使用Surrogate Variable List中的代理變數順位最高者來預測遺失變數值
Tree Surrogate Variables
ID
|
A
|
B
|
C
|
T
|
1
|
T
|
?
|
F
|
Y
|
2
|
?
|
F
|
?
|
N
|
3
|
F
|
F
|
F
|
Y
|
4
|
F
|
T
|
T
|
N
|
其中:
- T欄為目標變數
- A,B,C欄為預測變數
- 而根據Gini Index,C會被選中為決策樹變數
對於C欄位有遺失值的觀測資料列,CART決策樹會使用計算出來的代理變數(Surrogate Variables)來預測C值。
計算C欄位Surrogate Variables的方法如下:依據計算除了C以外的預測變數作為Surrogate Variables的錯誤率並比較排序。
Step 1: C is missing but B has value
首先計算B作為Surrogate Variable的錯誤率:
B
|
C
|
F
|
F
|
T
|
T
|
使用決策樹模型產生用B預測C的邏輯:
-
B=T -> C=T
-
B=F -> C=F
-
Error rate = 0%
Step 2: C is missing but A has value
計算A作為Surrogate Variable預測C值得錯誤率:
A | C |
T
|
F
|
F
|
F
|
F
|
T
|
使用決策樹模型產生用A預測C的邏輯:
-
A=T -> C=F
-
A=F -> C=T
-
Erro rate = 33%
總結以上,預測C欄位各Surrogate Variables的預測錯誤率分別為:
-
A 有33% 的預測錯誤率
-
B 有0%的預測錯誤率
-
Naive隨機則有50%的預測錯誤率 (blind rule)
- 若錯誤率比Naive隨機預測結果還高者,會從Surrogate Variables list給移除
因此,Surrogate Variables的順位為:B,A,Naive
-
以ID2為例,C值會被指派為(根據B)F
更多rpart()函數對surrogate variable說明可參考:https://cran.r-project.org/web/packages/rpart/vignettes/longintro.pdf
更多統計模型筆記連結: