1.IV的用途
IV的全稱是Information Value,中文意思是信息價(jià)值,或者信息量。
我們在用邏輯回歸、決策樹等模型方法構(gòu)建分類模型時(shí),經(jīng)常需要對自變量進(jìn)行篩選。比如我們有200個(gè)候選自變量,通常情況下,不會(huì)直接把200個(gè)變量直接放到模型中去進(jìn)行擬合訓(xùn)練,而是會(huì)用一些方法,從這200個(gè)自變量中挑選一些出來,放進(jìn)模型,形成入模變量列表。那么我們怎么去挑選入模變量呢?
挑選入模變量過程是個(gè)比較復(fù)雜的過程,需要考慮的因素很多,比如:變量的預(yù)測能力,變量之間的相關(guān)性,變量的簡單性(容易生成和使用),變量的強(qiáng)壯性(不容易被繞過),變量在業(yè)務(wù)上的可解釋性(被挑戰(zhàn)時(shí)可以解釋的通)等等。但是,其中最主要和最直接的衡量標(biāo)準(zhǔn)是變量的預(yù)測能力。
“變量的預(yù)測能力”這個(gè)說法很籠統(tǒng),很主觀,非量化,在篩選變量的時(shí)候我們總不能說:“我覺得這個(gè)變量預(yù)測能力很強(qiáng),所以他要進(jìn)入模型”吧?我們需要一些具體的量化指標(biāo)來衡量每自變量的預(yù)測能力,并根據(jù)這些量化指標(biāo)的大小,來確定哪些變量進(jìn)入模型。IV就是這樣一種指標(biāo),他可以用來衡量自變量的預(yù)測能力。類似的指標(biāo)還有信息增益、基尼系數(shù)等等。
2.對IV的直觀理解
從直觀邏輯上大體可以這樣理解“用IV去衡量變量預(yù)測能力”這件事情:我們假設(shè)在一個(gè)分類問題中,目標(biāo)變量的類別有兩類:Y1,Y2。對于一個(gè)待預(yù)測的個(gè)體A,要判斷A屬于Y1還是Y2,我們是需要一定的信息的,假設(shè)這個(gè)信息總量是I,而這些所需要的信息,就蘊(yùn)含在所有的自變量C1,C2,C3,……,Cn中,那么,對于其中的一個(gè)變量Ci來說,其蘊(yùn)含的信息越多,那么它對于判斷A屬于Y1還是Y2的貢獻(xiàn)就越大,Ci的信息價(jià)值就越大,Ci的IV就越大,它就越應(yīng)該進(jìn)入到入模變量列表中。
3.IV的計(jì)算
前面我們從感性角度和邏輯層面對IV進(jìn)行了解釋和描述,那么回到數(shù)學(xué)層面,對于一個(gè)待評(píng)估變量,他的IV值究竟如何計(jì)算呢?為了介紹IV的計(jì)算方法,我們首先需要認(rèn)識(shí)和理解另一個(gè)概念——WOE,因?yàn)镮V的計(jì)算是以WOE為基礎(chǔ)的。
3.1WOE
WOE的全稱是“Weight of Evidence”,即證據(jù)權(quán)重。WOE是對原始自變量的一種編碼形式。
要對一個(gè)變量進(jìn)行WOE編碼,需要首先把這個(gè)變量進(jìn)行分組處理(也叫離散化、分箱等等,說的都是一個(gè)意思)。分組后,對于第i組,WOE的計(jì)算公式如下:
其中,pyi是這個(gè)組中響應(yīng)客戶(風(fēng)險(xiǎn)模型中,對應(yīng)的是違約客戶,總之,指的是模型中預(yù)測變量取值為“是”或者說1的個(gè)體)占所有樣本中所有響應(yīng)客戶的比例,pni是這個(gè)組中未響應(yīng)客戶占樣本中所有未響應(yīng)客戶的比例,#yi是這個(gè)組中響應(yīng)客戶的數(shù)量,#ni是這個(gè)組中未響應(yīng)客戶的數(shù)量,#yT是樣本中所有響應(yīng)客戶的數(shù)量,#nT是樣本中所有未響應(yīng)客戶的數(shù)量。
從這個(gè)公式中我們可以體會(huì)到,WOE表示的實(shí)際上是“當(dāng)前分組中響應(yīng)客戶占所有響應(yīng)客戶的比例”和“當(dāng)前分組中沒有響應(yīng)的客戶占所有沒有響應(yīng)的客戶的比例”的差異。
對這個(gè)公式做一個(gè)簡單變換,可以得到:
變換以后我們可以看出,WOE也可以這么理解,他表示的是當(dāng)前這個(gè)組中響應(yīng)的客戶和未響應(yīng)客戶的比值,和所有樣本中這個(gè)比值的差異。這個(gè)差異是用這兩個(gè)比值的比值,再取對數(shù)來表示的。WOE越大,這種差異越大,這個(gè)分組里的樣本響應(yīng)的可能性就越大,WOE越小,差異越小,這個(gè)分組里的樣本響應(yīng)的可能性就越小。
關(guān)于WOE編碼所表示的意義,大家可以自己再好好體會(huì)一下。
3.2 IV的計(jì)算公式
有了前面的介紹,我們可以正式給出IV的計(jì)算公式。對于一個(gè)分組后的變量,第i 組的WOE前面已經(jīng)介紹過,是這樣計(jì)算的:
同樣,對于分組i,也會(huì)有一個(gè)對應(yīng)的IV值,計(jì)算公式如下:
有了一個(gè)變量各分組的IV值,我們就可以計(jì)算整個(gè)變量的IV值,方法很簡單,就是把各分組的IV相加:
其中,n為變量分組個(gè)數(shù)。
3.3 用實(shí)例介紹IV的計(jì)算和使用
下面我們通過一個(gè)實(shí)例來講解一下IV的使用方式。
3.3.1 實(shí)例
假設(shè)我們需要構(gòu)建一個(gè)預(yù)測模型,這個(gè)模型是為了預(yù)測公司的客戶集合中的每個(gè)客戶對于我們的某項(xiàng)營銷活動(dòng)是否能夠響應(yīng),或者說我們要預(yù)測的是客戶對我們的這項(xiàng)營銷活動(dòng)響應(yīng)的可能性有多大。假設(shè)我們已經(jīng)從公司客戶列表中隨機(jī)抽取了100000個(gè)客戶進(jìn)行了營銷活動(dòng)測試,收集了這些客戶的響應(yīng)結(jié)果,作為我們的建模數(shù)據(jù)集,其中響應(yīng)的客戶有10000個(gè)。另外假設(shè)我們也已經(jīng)提取到了這些客戶的一些變量,作為我們模型的候選變量集,這些變量包括以下這些(實(shí)際情況中,我們擁有的變量可能比這些多得多,這里列出的變量僅僅是為了說明我們的問題):
- 最近一個(gè)月是否有購買;
- 最近一次購買金額;
- 最近一筆購買的商品類別;
- 是否是公司VIP客戶;
假設(shè),我們已經(jīng)對這些變量進(jìn)行了離散化,統(tǒng)計(jì)的結(jié)果如下面幾張表所示。
(1) 最近一個(gè)月是否有過購買:
(2) 最近一次購買金額:
(3) 最近一筆購買的商品類別:
(4) 是否是公司VIP客戶:
3.3.2 計(jì)算WOE和IV
我們以其中的一個(gè)變量“最近一次購買金額”變量為例:
我們把這個(gè)變量離散化為了4個(gè)分段:<100元,[100,200),[200,500),>=500元。首先,根據(jù)WOE計(jì)算公式,這四個(gè)分段的WOE分別為:
插播一段,從上面的計(jì)算結(jié)果中我們可以看一下WOE的基本特點(diǎn):
- 當(dāng)前分組中,響應(yīng)的比例越大,WOE值越大;
- 當(dāng)前分組WOE的正負(fù),由當(dāng)前分組響應(yīng)和未響應(yīng)的比例,與樣本整體響應(yīng)和未響應(yīng)的比例的大小關(guān)系決定,當(dāng)前分組的比例小于樣本整體比例時(shí),WOE為負(fù),當(dāng)前分組的比例大于整體比例時(shí),WOE為正,當(dāng)前分組的比例和整體比例相等時(shí),WOE為0。
- WOE的取值范圍是全體實(shí)數(shù)。
我們進(jìn)一步理解一下WOE,會(huì)發(fā)現(xiàn),WOE其實(shí)描述了變量當(dāng)前這個(gè)分組,對判斷個(gè)體是否會(huì)響應(yīng)(或者說屬于哪個(gè)類)所起到影響方向和大小,當(dāng)WOE為正時(shí),變量當(dāng)前取值對判斷個(gè)體是否會(huì)響應(yīng)起到的正向的影響,當(dāng)WOE為負(fù)時(shí),起到了負(fù)向影響。而WOE值的大小,則是這個(gè)影響的大小的體現(xiàn)。
好,回到正題,計(jì)算完WOE,我們分別計(jì)算四個(gè)分組的IV值:
再插播一段,從上面IV的計(jì)算結(jié)果我們可以看出IV的以下特點(diǎn):
- 對于變量的一個(gè)分組,這個(gè)分組的響應(yīng)和未響應(yīng)的比例與樣本整體響應(yīng)和未響應(yīng)的比例相差越大,IV值越大,否則,IV值越??;
- 極端情況下,當(dāng)前分組的響應(yīng)和未響應(yīng)的比例和樣本整體的響應(yīng)和未響應(yīng)的比例相等時(shí),IV值為0;
- IV值的取值范圍是[0,+∞),且,當(dāng)當(dāng)前分組中只包含響應(yīng)客戶或者未響應(yīng)客戶時(shí),IV = +∞。
OK,再次回到正題。最后,我們計(jì)算變量總IV值:
3.3.3 IV值的比較和變量預(yù)測能力的排序
我們已經(jīng)計(jì)算了四個(gè)變量中其中一個(gè)的WOE和IV值。另外三個(gè)的計(jì)算過程我們不再詳細(xì)的說明,直接給出IV結(jié)果。
- 最近一個(gè)月是否有過購買:0.250224725
- 最近一筆購買的商品類別:0.615275563
- 是否是公司VIP客戶:1.56550367
前面我們已經(jīng)計(jì)算過,最近一次購買金額的IV為0.49270645
這四個(gè)變量IV排序結(jié)果是這樣的:是否是公司VIP客戶 > 最近一筆購買的商品類別 > 最近一次購買金額 > 最近一個(gè)月是否有過購買。我們發(fā)現(xiàn)“是否是公司VIP客戶”是預(yù)測能力最高的變量,“最近一個(gè)月是否有過購買”是預(yù)測能力最低的變量。如果我們需要在這四個(gè)變量中去挑選變量,就可以根據(jù)IV從高到低去挑選了。
4.關(guān)于IV和WOE的進(jìn)一步思考
4.1 為什么用IV而不是直接用WOE
從上面的內(nèi)容來看,變量各分組的WOE和IV都隱含著這個(gè)分組對目標(biāo)變量的預(yù)測能力這樣的意義。那我們?yōu)槭裁床恢苯佑肳OE相加或者絕對值相加作為衡量一個(gè)變量整體預(yù)測能力的指標(biāo)呢?
并且,從計(jì)算公式來看,對于變量的一個(gè)分組,IV是WOE乘以這個(gè)分組響應(yīng)占比和未響應(yīng)占比的差。而一個(gè)變量的IV等于各分組IV的和。如果愿意,我們同樣也能用WOE構(gòu)造出一個(gè)這樣的一個(gè)和出來,我們只需要把變量各個(gè)分組的WOE和取絕對值再相加,即(取絕對值是因?yàn)閃OE可正可負(fù),如果不取絕對值,則會(huì)把變量的區(qū)分度通過正負(fù)抵消的方式抵消掉):
那么我們?yōu)槭裁床恢苯佑眠@個(gè)WOE絕對值的加和來衡量一個(gè)變量整體預(yù)測能力的好壞,而是要用WOE處理后的IV呢。
我們這里給出兩個(gè)原因。IV和WOE的差別在于IV在WOE基礎(chǔ)上乘以的那個(gè),我們暫且用pyn來代表這個(gè)值。
第一個(gè)原因,當(dāng)我們衡量一個(gè)變量的預(yù)測能力時(shí),我們所使用的指標(biāo)值不應(yīng)該是負(fù)數(shù),否則,說一個(gè)變量的預(yù)測能力的指標(biāo)是-2.3,聽起來很別扭。從這個(gè)角度講,乘以pyn這個(gè)系數(shù),保證了變量每個(gè)分組的結(jié)果都是非負(fù)數(shù),你可以驗(yàn)證一下,當(dāng)一個(gè)分組的WOE是正數(shù)時(shí),pyn也是正數(shù),當(dāng)一個(gè)分組的WOE是負(fù)數(shù)時(shí),pyn也是負(fù)數(shù),而當(dāng)一個(gè)分組的WOE=0時(shí),pyn也是0。
當(dāng)然,上面的原因不是最主要的,因?yàn)槠鋵?shí)我們上面提到的這個(gè)指標(biāo)也可以完全避免負(fù)數(shù)的出現(xiàn)。
更主要的原因,也就是第二個(gè)原因是,乘以pyn后,體現(xiàn)出了變量當(dāng)前分組中個(gè)體的數(shù)量占整體個(gè)體數(shù)量的比例,對變量預(yù)測能力的影響。怎么理解這句話呢?我們還是舉個(gè)例子。
假設(shè)我們上面所說的營銷響應(yīng)模型中,還有一個(gè)變量A,其取值只有兩個(gè):0,1,數(shù)據(jù)如下:
我們從上表可以看出,當(dāng)變量A取值1時(shí),其響應(yīng)比例達(dá)到了90%,非常的高,但是我們能否說變量A的預(yù)測能力非常強(qiáng)呢?不能。為什么呢?原因就在于,A取1時(shí),響應(yīng)比例雖然很高,但這個(gè)分組的客戶數(shù)太少了,占的比例太低了。雖然,如果一個(gè)客戶在A這個(gè)變量上取1,那他有90%的響應(yīng)可能性,但是一個(gè)客戶變量A取1的可能性本身就非常的低。所以,對于樣本整體來說,變量的預(yù)測能力并沒有那么強(qiáng)。我們分別看一下變量各分組和整體的WOE,IV。
從這個(gè)表我們可以看到,變量取1時(shí),響應(yīng)比達(dá)到90%,對應(yīng)的WOE很高,但對應(yīng)的IV卻很低,原因就在于IV在WOE的前面乘以了一個(gè)系數(shù),而這個(gè)系數(shù)很好的考慮了這個(gè)分組中樣本占整體樣本的比例,比例越低,這個(gè)分組對變量整體預(yù)測能力的貢獻(xiàn)越低。相反,如果直接用WOE的絕對值加和,會(huì)得到一個(gè)很高的指標(biāo),這是不合理的。
4.2 IV的極端情況以及處理方式
IV依賴WOE,并且IV是一個(gè)很好的衡量自變量對目標(biāo)變量影響程度的指標(biāo)。但是,使用過程中應(yīng)該注意一個(gè)問題:變量的任何分組中,不應(yīng)該出現(xiàn)響應(yīng)數(shù)=0或非響應(yīng)數(shù)=0的情況。
原因很簡單,當(dāng)變量一個(gè)分組中,響應(yīng)數(shù)=0時(shí),
此時(shí)對應(yīng)的IVi為+∞。
而當(dāng)變量一個(gè)分組中,沒有響應(yīng)的數(shù)量 = 0時(shí),
此時(shí)的IVi為+∞。
IVi無論等于負(fù)無窮還是正無窮,都是沒有意義的。
由上述問題我們可以看到,使用IV其實(shí)有一個(gè)缺點(diǎn),就是不能自動(dòng)處理變量的分組中出現(xiàn)響應(yīng)比例為0或100%的情況。那么,遇到響應(yīng)比例為0或者100%的情況,我們應(yīng)該怎么做呢?建議如下:
(1)如果可能,直接把這個(gè)分組做成一個(gè)規(guī)則,作為模型的前置條件或補(bǔ)充條件;
(2)重新對變量進(jìn)行離散化或分組,使每個(gè)分組的響應(yīng)比例都不為0且不為100%,尤其是當(dāng)一個(gè)分組個(gè)體數(shù)很小時(shí)(比如小于100個(gè)),強(qiáng)烈建議這樣做,因?yàn)楸旧戆岩粋€(gè)分組個(gè)體數(shù)弄得很小就不是太合理。
(3)如果上面兩種方法都無法使用,建議人工把該分組的響應(yīng)數(shù)和非響應(yīng)的數(shù)量進(jìn)行一定的調(diào)整。如果響應(yīng)數(shù)原本為0,可以人工調(diào)整響應(yīng)數(shù)為1,如果非響應(yīng)數(shù)原本為0,可以人工調(diào)整非響應(yīng)數(shù)為1.
|