譯者 | 朱先忠?
審校 | 孫淑娟?
在我之前的??博客??中,我們已經(jīng)了解了如何使用因果樹來(lái)評(píng)估政策的異質(zhì)處理效應(yīng)。如果你還沒有閱讀過,我建議你在閱讀本文前先讀一遍,因?yàn)槲覀?/span>在本文中認(rèn)為你已經(jīng)了解了此文中的部分與本文相關(guān)的內(nèi)容。
為什么是異質(zhì)處理效應(yīng)(HTE:heterogenous treatment effects)呢?首先,對(duì)異質(zhì)處理效應(yīng)的估計(jì)允許我們根據(jù)它們的預(yù)期結(jié)果(疾病、公司收入、客戶滿意度等)選擇提供處理(藥物、廣告、產(chǎn)品等)的用戶(患者、用戶、客戶等)。換句話說(shuō),估計(jì)HTE有助于我們進(jìn)行目標(biāo)定位。事實(shí)上,正如我們將在文章后面所看到的那樣,一種處理方法在給一部分用戶帶來(lái)積極益處的同時(shí),平均來(lái)說(shuō)可能無(wú)效甚至適得其反。相反的情況也可能是這樣的:一種藥物平均來(lái)說(shuō)是有效的,但是如果我們明確它對(duì)其有副作用的使用者信息的話,此藥物的有效性就會(huì)進(jìn)一步提高。?
在本文中,我們將探討因果樹的一個(gè)擴(kuò)展——因果森林。正如隨機(jī)森林通過將多個(gè)自助樹平均在一起來(lái)擴(kuò)展回歸樹一樣,因果森林也擴(kuò)展了因果樹。主要的區(qū)別來(lái)自于推理的角度,它不那么直接。我們還將了解如何比較不同HTE估計(jì)算法的輸出,以及如何將其用于政策目標(biāo)。?
在線折扣案例?
在本文的其余部分,我們繼續(xù)使用我上一篇有關(guān)因果樹文章中使用的玩具示例:我們假設(shè)我們是一家在線商店,我們有興趣了解向新客戶提供折扣是否會(huì)增加他們?cè)谏痰曛械闹С觥?
為了了解折扣是否劃算,我們進(jìn)行了以下隨機(jī)實(shí)驗(yàn)或A/B測(cè)試:每次新客戶瀏覽我們的在線商店時(shí),我們都會(huì)將其隨機(jī)分配給一個(gè)處理條件。我們?yōu)槭?/span>處理的用戶提供折扣;而為控制用戶,我們不提供折扣。我從文件src.dgp導(dǎo)入數(shù)據(jù)生成過程dgp_online_discounts()。我還從src.utils庫(kù)導(dǎo)入一些繪圖函數(shù)和庫(kù)。為了不僅包括代碼,還包括數(shù)據(jù)和表等內(nèi)容,我使用了Deepnote框架,這是一個(gè)類似Jupyter的基于Web的協(xié)作筆記本環(huán)境。?
我們有100000名在線cstore訪問者的數(shù)據(jù),我們觀察他們?cè)L問網(wǎng)站的時(shí)間、使用的設(shè)備、瀏覽器和地理區(qū)域。我們還會(huì)觀察到他們是否得到了折扣,我們的處理方式,他們的花費(fèi)是多少,以及其他一些感興趣的結(jié)果。?
由于實(shí)驗(yàn)是隨機(jī)分配的,我們可以使用簡(jiǎn)單的均值差估計(jì)來(lái)估計(jì)實(shí)驗(yàn)效果。我們期望實(shí)驗(yàn)組和對(duì)照組相似,但折扣除外,因此我們可以將支出的任何差異歸因于折扣。?
折扣看起來(lái)似乎是有效的:實(shí)驗(yàn)組的平均花費(fèi)增加了1.95美元。但是所有的顧客都受到同樣的影響嗎??
為了回答這個(gè)問題,我們想估計(jì)異質(zhì)處理效應(yīng),可能是在個(gè)體層面。?
因果森林?
計(jì)算異質(zhì)處理效應(yīng)有許多不同的選擇。最簡(jiǎn)單的方法是以異質(zhì)性的維度與感興趣的結(jié)果進(jìn)行交互。這種方法的問題在于選擇哪個(gè)變量。有時(shí),我們擁有可能指導(dǎo)我們行動(dòng)事先的信息;例如,我們可能知道移動(dòng)用戶的平均花費(fèi)比桌面用戶多。其他時(shí)候,出于商業(yè)原因,我們可能對(duì)某個(gè)維度感興趣;例如,我們可能希望在某個(gè)地區(qū)投資更多。然而,當(dāng)我們沒有額外的信息時(shí),我們希望這個(gè)過程是數(shù)據(jù)驅(qū)動(dòng)的。?
在上一篇文章中,我們探索了一種數(shù)據(jù)驅(qū)動(dòng)的方法來(lái)估計(jì)異質(zhì)處理效應(yīng)——因果樹。我們現(xiàn)在將把它們擴(kuò)展到因果森林。然而,在我們開始之前,我們必須介紹一下它的非因果表親——隨機(jī)森林。?
隨機(jī)森林,顧名思義,是回歸樹的延伸,在其上增加了兩個(gè)獨(dú)立的隨機(jī)性來(lái)源。特別是,隨機(jī)森林算法能夠對(duì)許多不同的回歸樹進(jìn)行預(yù)測(cè),每個(gè)樹都在數(shù)據(jù)的自助樣本上進(jìn)行訓(xùn)練,并將它們平均在一起。該過程通常稱為引導(dǎo)聚集算法,又稱裝袋算法,可以應(yīng)用于任何預(yù)測(cè)算法,而不是隨機(jī)森林特有的。隨機(jī)性的額外來(lái)源來(lái)自特征選擇,因?yàn)樵诿看畏指顣r(shí),只有所有特征X的隨機(jī)子集被考慮用于最優(yōu)分割。?
這兩個(gè)額外的隨機(jī)性來(lái)源非常重要,有助于提高隨機(jī)森林的性能。首先,裝袋算法允許隨機(jī)森林通過對(duì)多個(gè)離散預(yù)測(cè)進(jìn)行平均來(lái)產(chǎn)生比回歸樹更平滑的預(yù)測(cè)。相反,隨機(jī)特征選擇允許隨機(jī)森林更深入地探索特征空間,允許它們發(fā)現(xiàn)比簡(jiǎn)單回歸樹更多的交互。事實(shí)上,變量之間可能存在相互作用,這些相互作用本身不具有很強(qiáng)的預(yù)測(cè)性(因此不會(huì)產(chǎn)生分裂),但共同作用非常強(qiáng)大。?
因果森林相當(dāng)于隨機(jī)森林,但用于估計(jì)異質(zhì)處理效應(yīng),與因果樹和回歸樹完全相同。正如因果樹一樣,我們有一個(gè)基本問題:我們有興趣預(yù)測(cè)一個(gè)我們沒有觀察到的對(duì)象:個(gè)體處理效果τ?。解決方案是創(chuàng)建一個(gè)輔助結(jié)果變量Y*,其每一次觀察的預(yù)期值正好是處理效果。?
輔助結(jié)果變量?
如果你想更多地了解為什么這個(gè)變量對(duì)個(gè)體處理效果沒有添加偏置的話,請(qǐng)看一下??我之前的文章??,我在這篇文章中進(jìn)行了詳細(xì)的介紹。簡(jiǎn)而言之,您可以認(rèn)為Y?*作為單個(gè)觀測(cè)的均值差估計(jì)量。
一旦我們有了一個(gè)結(jié)果變量,為了使用隨機(jī)森林來(lái)估計(jì)異質(zhì)處理效應(yīng),我們還需要做一些事情。首先,我們需要建造在每片葉子上具有相同數(shù)量的處理單元和控制單元的樹。其次,我們需要使用不同的樣本來(lái)構(gòu)建樹并對(duì)其進(jìn)行評(píng)估,即計(jì)算每片葉子的平均結(jié)果。這個(gè)過程通常被稱為誠(chéng)實(shí)樹(honest trees),因?yàn)槲覀兛梢詫⒚總€(gè)葉子的樣本視為獨(dú)立于樹結(jié)構(gòu),所以它對(duì)推斷非常有用。?
在進(jìn)行評(píng)估之前,讓我們先為分類變量device、browser和region生成虛擬變量。?
現(xiàn)在,我們可以使用隨機(jī)森林算法來(lái)估計(jì)異質(zhì)處理效應(yīng)。幸運(yùn)的是,我們不必手動(dòng)完成所有這些,因?yàn)?/span>在微軟公司的EconML包中已經(jīng)提供了一個(gè)很好的因果樹和森林實(shí)現(xiàn)。我們將使用其中的CausalForestML函數(shù)。?
與因果樹不同,因果森林更難解釋,因?yàn)槲覀儫o(wú)法可視化每一棵樹。我們可以使用SingleTreeateInterpreter函數(shù)來(lái)繪制因果森林算法的等效表示。?
因果森林模型表示?
我們可以像因果樹模型一樣解釋樹形圖。在頂部,我們可以看到數(shù)據(jù)中的平均$Y^*$的值為1.917$。從那里開始,根據(jù)每個(gè)節(jié)點(diǎn)頂部突出顯示的規(guī)則,數(shù)據(jù)被拆分為不同的分支。例如,根據(jù)時(shí)間是否晚于11.295,第一節(jié)點(diǎn)將數(shù)據(jù)分成大小為46878$和53122$的兩組。在底部,我們得到了帶有預(yù)測(cè)值的最終分區(qū)。例如,最左邊的葉子包含40191$的觀察值(時(shí)間早于11.295,在非Safari瀏覽器環(huán)境下),我們預(yù)測(cè)其花費(fèi)為0.264$。較深的節(jié)點(diǎn)顏色表示預(yù)測(cè)值較高。?
這種表示的問題在于,與因果樹的情況不同,它只是對(duì)模型的解釋。由于因果森林是由許多自助樹組成的,因此無(wú)法直接檢查每個(gè)決策樹。了解在確定樹分割時(shí)哪個(gè)特征最重要的一種方法是所謂的特征重要性。?
顯然,時(shí)間是異質(zhì)性的第一個(gè)維度,其次是設(shè)備(特別是移動(dòng)設(shè)備)和瀏覽器(特別是Safari)。其他維度無(wú)關(guān)緊要。?
現(xiàn)在,讓我們檢查一下模型性能如何。?
性能?
通常,我們無(wú)法直接評(píng)估模型性能,因?yàn)榕c標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)設(shè)置不同,我們沒有觀察到實(shí)際情況。因此,我們不能使用測(cè)試集來(lái)計(jì)算模型精度的度量。然而,在我們的案例中,我們控制了數(shù)據(jù)生成過程,因此我們可以獲得基本的真相。讓我們從分析模型如何沿著數(shù)據(jù)、設(shè)備、瀏覽器和區(qū)域的分類維度估計(jì)異質(zhì)處理效應(yīng)開始。?
對(duì)于每個(gè)分類變量,我們繪制了實(shí)際和估計(jì)的平均處理效果。?
作者提供的每個(gè)分類值的真實(shí)和估計(jì)處理效果?
因果森林算法非常善于預(yù)測(cè)與分類變量相關(guān)的處理效果。至于因果樹,這是預(yù)期的,因?yàn)樗惴ň哂蟹浅kx散的性質(zhì)。然而,與因果樹不同的是,預(yù)測(cè)更加微妙。?
我們現(xiàn)在可以做一個(gè)更相關(guān)的測(cè)試:算法在時(shí)間等連續(xù)變量下的表現(xiàn)如何?首先,讓我們?cè)俅胃綦x預(yù)測(cè)的處理效果,并忽略其他協(xié)變量。?
def compute_time_effect(df, hte_model, avg_effect_notime):?
我們現(xiàn)在可以復(fù)制之前的數(shù)字,但時(shí)間維度除外。我們繪制了一天中每個(gè)時(shí)間的平均真實(shí)和估計(jì)處理效果。?
沿時(shí)間維度繪制的真實(shí)和估計(jì)的處理效果?
我們現(xiàn)在可以充分理解因果樹和森林之間的區(qū)別:雖然在因果樹的情況下,估計(jì)基本上是一個(gè)非常粗略的階躍函數(shù),但我們現(xiàn)在可以看到因果樹如何產(chǎn)生更平滑的估計(jì)。?
我們現(xiàn)在已經(jīng)探索了該模型,是時(shí)候使用它了!?
策略定位?
假設(shè)我們正在考慮向訪問我們?cè)诰€商店的新客戶提供4美元的折扣。?
折扣對(duì)哪些客戶有效?我們估計(jì)平均處理效果為1.9492美元。這意味著,平均而言折扣并不真正有利可圖。然而,現(xiàn)在可以針對(duì)單個(gè)客戶,我們只能向一部分新客戶提供折扣。我們現(xiàn)在將探討如何進(jìn)行政策目標(biāo)定位,為了更好地了解目標(biāo)定位的質(zhì)量,我們將使用因果樹模型作為參考點(diǎn)。?
我們使用相同的CauselForestML函數(shù)構(gòu)建因果樹,但將估計(jì)數(shù)和森林大小限制為1。?
接下來(lái),我們將數(shù)據(jù)集分成一個(gè)訓(xùn)練集和一個(gè)測(cè)試集。這一想法與交叉驗(yàn)證非常相似:我們使用訓(xùn)練集來(lái)訓(xùn)練模型——在我們的案例中是異質(zhì)處理效應(yīng)的估計(jì)器——并使用測(cè)試集來(lái)評(píng)估其質(zhì)量。主要區(qū)別在于,我們沒有觀察到測(cè)試數(shù)據(jù)集中的真實(shí)結(jié)果。但是我們?nèi)匀豢梢允褂糜?xùn)練測(cè)試分割來(lái)比較樣本內(nèi)預(yù)測(cè)和樣本外預(yù)測(cè)。?
我們將所有觀察結(jié)果的80%放在訓(xùn)練集中,20%放在測(cè)試集中。?
首先,讓我們僅在訓(xùn)練樣本上重新訓(xùn)練模型。?
現(xiàn)在,我們可以確定目標(biāo)策略,即決定我們向哪些客戶提供折扣。答案似乎很簡(jiǎn)單:我們向所有預(yù)期處理效果大于成本(4美元)的客戶提供折扣。?
借助于一個(gè)可視化工具,它可以讓我們了解處理對(duì)誰(shuí)有效以及如何有效,這就是所謂的處理操作特征(TOC)曲線。這個(gè)名字可以看作是基于另一個(gè)更著名的接收器操作特性(ROC)曲線的修正,該曲線描繪了二元分類器的不同閾值的真陽(yáng)性率與假陽(yáng)性率。這兩種曲線的想法類似:我們繪制不同比例受處理人群的平均處理效果。在一個(gè)極端情況下,當(dāng)所有客戶都被處理時(shí),曲線的值等于平均處理效果;而在另一個(gè)極端情況下,當(dāng)只有一個(gè)客戶被處理時(shí)曲線的值則等于最大處理效果。?
現(xiàn)在讓我們計(jì)算曲線。?
現(xiàn)在,我們可以繪制兩個(gè)CATE估算器的處理操作特征(TOC)曲線。?
處理操作特性曲線?
正如預(yù)期的那樣,兩種估算器的TOC曲線都在下降,因?yàn)槠骄?yīng)隨著我們處理客戶份額的增加而降低。換言之,我們?cè)诎l(fā)布折扣時(shí)越有選擇,每個(gè)客戶的優(yōu)惠券效果就越高。我還畫了一條帶有折扣成本的水平線,以便我們可以將TOC曲線下方和成本線上方的陰影區(qū)域解釋為預(yù)期利潤(rùn)。?
這兩種算法預(yù)測(cè)的處理份額相似,約為20%,因果森林算法針對(duì)的客戶略多一些。然而,他們預(yù)測(cè)的利潤(rùn)結(jié)果卻大相徑庭。因果樹算法預(yù)測(cè)的邊際較小且恒定,而因果林算法預(yù)測(cè)的是更大且更陡的邊際。那么,哪一種算法更準(zhǔn)確呢??
為了比較它們,我們可以在測(cè)試集中對(duì)它們進(jìn)行評(píng)估。我們采用訓(xùn)練集上訓(xùn)練的模型,預(yù)測(cè)處理效果,并將其與測(cè)試集上訓(xùn)練模型的預(yù)測(cè)進(jìn)行比較。注意,與機(jī)器學(xué)習(xí)標(biāo)準(zhǔn)測(cè)試程序不同,有一個(gè)實(shí)質(zhì)性的區(qū)別:在我們的案例中,我們無(wú)法根據(jù)實(shí)際情況評(píng)估我們的預(yù)測(cè),因?yàn)闆]有觀察到處理效果。我們只能將兩個(gè)預(yù)測(cè)相互比較。?
因果樹模型似乎比因果森林模型表現(xiàn)得更好一些,總凈效應(yīng)為8386美元——相對(duì)于4948美元。從圖中,我們也可以了解差異的來(lái)源。因果森林算法往往限制性更強(qiáng),處理的客戶更少,沒有誤報(bào)的陽(yáng)性,但也有很多誤報(bào)的陰性。另一方面,因果樹算法看起來(lái)更加“慷慨”,并將折扣分配給更多的新客戶。這既轉(zhuǎn)化為更多的真陽(yáng)性,也轉(zhuǎn)化為假陽(yáng)性。總之,凈效應(yīng)似乎有利于因果樹算法。?
通常,我們討論到這里就可以停止了,因?yàn)槲覀兛梢宰龅氖虑椴欢嗔?。然而,在我們?/span>案例情形中,我們還可以訪問真正的數(shù)據(jù)生成過程。因此,接下來(lái)我們不妨檢查一下這兩種算法的真實(shí)精度。?
首先,讓我們根據(jù)處理效果的預(yù)測(cè)誤差來(lái)比較它們。對(duì)于每個(gè)算法,我們計(jì)算處理效果的均方誤差。?
結(jié)果是,隨機(jī)森林模型更好地預(yù)測(cè)了平均處理效果,均方誤差為0.5555美元,而不是0.9035美元。?
那么,這是否意味著更好的目標(biāo)定位呢?我們現(xiàn)在可以復(fù)制上面所做的相同的柱狀圖,以了解這兩種算法在策略目標(biāo)方面的表現(xiàn)。?
這兩幅圖非常相似,但結(jié)果卻大相徑庭。事實(shí)上,因果森林算法現(xiàn)在優(yōu)于因果樹算法,總效果為10395美元,而非8828美元。為什么會(huì)出現(xiàn)這種突然的差異呢??
為了更好地理解差異的來(lái)源,讓我們根據(jù)實(shí)際情況繪制TOC。?
處理操作特性曲線。?
正如我們所看到的,TOC是傾斜度非常大的,存在一些平均處理效果非常高的客戶。隨機(jī)森林算法能夠更好地識(shí)別它們,因此總體上更有效,盡管目標(biāo)客戶較少些。?
結(jié)論?
在這篇文章中,我們學(xué)習(xí)了一個(gè)功能非常強(qiáng)大的估計(jì)異質(zhì)處理效應(yīng)的算法——因果森林。因果森林建立在與因果樹相同的原則上,但受益于對(duì)參數(shù)空間和裝袋算法的更深入探索。?
此外,我們還了解了如何使用異質(zhì)處理效應(yīng)的估計(jì)來(lái)執(zhí)行政策定位。通過識(shí)別具有最高處理效果的用戶,我們能夠確保一項(xiàng)政策有利可圖。我們還看到了政策目標(biāo)與異質(zhì)處理效應(yīng)評(píng)估目標(biāo)的不同,因?yàn)榉植嫉奈膊靠赡鼙绕骄?/span>具有更強(qiáng)的相關(guān)性。?
參考文獻(xiàn)?
- S. Athey, G. Imbens, Recursive partitioning for heterogeneous causal effects (2016), PNAS.?
- S. Wager, S. Athey, Estimation and Inference of Heterogeneous Treatment Effects using Random Forests (2018), Journal of the American Statistical Association.?
- S. Athey, J. Tibshirani, S. Wager, Generalized Random Forests (2019). The Annals of Statistics.?
- M. Oprescu, V. Syrgkanis, Z. Wu, Orthogonal Random Forest for Causal Inference (2019). Proceedings of the 36th International Conference on Machine Learning.?
譯者介紹
朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。?
原文標(biāo)題:??From Causal Trees to Forests??,作者:Matteo Courthoud