用因果推斷解決的四類業務分析難題

1 評論 10825 瀏覽 41 收藏 30 分鐘

編輯導語:因果推斷對于解決業務分析難題十分重要,但是不同場景應選擇什么方法還是較為復雜,本篇文章作者分享了不同場景下適用的因果推斷解決方法,并且用通俗易懂的語言解釋其原理與案例,干貨滿滿,感興趣的一起來學習一下吧。

一、背景

目前我們能看到因果推斷相關的資料更多的聚焦在邏輯方法本身,公式非常繁雜導致較難理解與應用。

有的時候雖然看似理解了一些,但是真正應用的時候還是不太清楚什么場景應該選擇什么方法。

基于此種背景,筆者梳理一些目前業界的通用業務問題場景,按照不同分析場景類型分為四大類,分別對應不同的適用因果推斷解決方法,并輔以通俗易懂的語言去解釋其原理與案例。

當遇到某類問題的時候,我們能快速明確的知道用什么方法可解此類問題。

二、四類分析場景與對應解決方法概覽

用因果推斷解決的四類分析難題

三、分析場景與適用方法

1. 場景一:非實驗場景策略效果評估

策略、功能以及活動的效果評估,幾乎是每個產品、運營、分析師日常工作的一大重點。

大到重要功能上線,小到一個文案修改,都可以去衡量這個策略的效果,比之前提升了多少,對整體數據貢獻了多少。

不僅衡量了工作產出,也為之后的優化方向提供沉淀與依據。AB實驗是回答這個問題的最優解,但是當無法做實驗時,研究如何利用歷史數據進行因果分析評估也變的非常重要。

非實驗場景的策略評估方式的核心思想就是:人為創造一個虛擬對照組與策略上線數據做比較估計策略真實效果

效果回歸本質上屬于統計學中的因果推斷問題。在統計科學中,因果推斷要解決的問題本質是剝離我們所不關心的外部變量對結果的影響,從而精準估計到我們所關心的策略因素對結果的單一影響。在不能做AB實驗的場景下,通常有兩種完成這件事情的思路:

  1. 構造相似群體(Matching):這種思路假設在未被實驗策略影響的樣本中存在一些樣本和被實驗策略影響的樣本存在同質性。只要我們想辦法找到這些相似的樣本作為虛擬對照組,就可以控制外生因素。這種思想最經典的方法是PSM(傾向得分匹配法);
  2. 構造虛擬現實(Synthetic Control):這種思路認為策略的影響其實是策略上了之后的指標表現和“假設策略沒上”的平行時空中指標表現的diff。因此,只要通過建模方法構建出假設策略沒上的虛擬時空的指標水平,即可評估實驗策略收益。典型的方法包括合成控制法、Causal Impact等;

1)PSM

PSM的思路是對策略命中的每一個用戶,都在策略未命中用戶中找到和他近似的一個用戶。

通過這種方式,策略命中用戶和近似找到的對照用戶就有了可比性。

PSM 作為一種 matching 方法,最大的目的就是控制實驗組和控制組的觀測變量。

舉個簡單例子,我們想對比吸煙的人和不吸煙的人的健康狀況,我們觀察了兩組人群作為樣本,可能會出現以下兩種情況:

  • 恰好我們選取的吸煙的人群更年輕,身體本身就更健康,而不吸煙的人群整體年齡偏大,或者身體本身比較虛弱,最后觀察一段時間得出吸煙無害的結論。
  • 吸煙的人群也喜歡喝酒,吸煙的人群本身也不注重自己的健康等等一系列其他因素干擾,導致得出吸煙有害健康的結論。

這兩種結論都是不夠科學的,因此用 matching 的思路可以緩解上面的情況,而 PSM是 matching 最常用的方法。具體應用可以分為以下幾個步驟:

(1)計算未被策略影響的每個用戶傾向性得分:這一步本質是建模問題,因變量為是否被干預Treatment,自變量為用戶特征變量。做一個建模預測策略發生概率(邏輯回歸/XGB/RF等);得分

(2)匹配:有了每個用戶的傾向性得分,針對目前的被策略命中的用戶,匹配得到一個近似相同的用戶,組成對照組。

(3)修剪:篩選掉傾向性得分極值。常見的做法是保留得分在某個區間的用戶,例如實驗組和對照組用戶得分區間的交集,只保留區間中部的 90% ,可能原始得分在0.05-0.95的用戶。

(4)匹配:實驗組對對照組根據得分進行匹配的時候,比較常見的有幾種方法。knn: 進行 1 對 K 有放回或無放回匹配。radius: 對每個策略影響用戶,匹配上所有得分差異小于指定 radius 的用戶

(5)設置得分差異上限:匹配用戶的時候,要求每一對用戶的得分差異不超過指定的上限min(delta(score))<caliper。

用因果推斷解決的四類分析難題

(6)平衡性檢驗:看傾向性得分在匹配前后的分布、以及特征在匹配前后的 QQ-Plot。匹配后的實驗組和對照組的傾向性得分分布更加接近,變量分布也更接近。

(7)因果效應估計(策略效果):我們的目標是推斷策略組用戶的平均處理效應 ATT (Average Treatment Effect on the Treated)?,F在我們已經構造出了一對接近同質的實驗組和對照組了,我們可以直接比較匹配后的實驗組和對照組。

舉個例子,業務在上線‘主播連麥PK功能’后,發現使用連麥PK功能的用戶比未使用此功能的用戶開播率高4.3%,于是認為該功能提高了主播開播率。這個場景該如何做效果評估?

2)特征選取

自變量:用戶基礎畫像、行為特征;

因變量:是否使用該功能;

按照1:1的匹配比例,最終匹配上26w對用戶數據。其中策略組用戶開播率13.1%,對照組為11.2%,兩組diff為1.9%,假設檢驗通過。因此從數據角度證明該功能確實能提高開播率,但提升效果為1.9%而不是4.3%。

用因果推斷解決的四類分析難題

3)SCM(合成控制法)

當treatment施加到一個群體或者地區上時,很難找到單一的對照組,這時可以采用合成控制方法構造虛擬對照組進行比較。

原理是構造虛擬對照組,通過treatment前的數據上學習的權重,擬合實驗組在實驗開始前的數據,模擬實驗組用戶在沒有接受實驗情況下的結果,構造合成控制組,實驗開始后,評估實驗組和合成控制組之間的差異。

假設我們想要衡量疫情對于上北京某類商品的GMV的影響。若按照傳統的matching方法,我們需要選擇一個和北京疫情前的dau、gmv等最相似的非疫情城市作對比。

但用合成控制法的話,我們需要從全國所有的非疫情城市中進行篩選,用同樣的疫情前一段時間的各類維度數據與北京進行擬合匹配,使得合成后的「虛擬北京」在各個維度上盡可能真的接近「真北京」。

最終選取擬合效果好的:北京=0.1城市A+0.2城市B+0.3城市C+P ;

概括的說,我們要找到策略干預單元在不被策略干預情況下的反事實時間序列曲線:

用因果推斷解決的四類分析難題

在合成控制中,我們沒有很多樣本但是我們有很多時間點信息。

所以我們可以做回歸擬合,將每個數據點翻轉輸入矩陣,然后樣本會成為變量,我們將結果表示為樣本的加權平均值,就像下面的矩陣乘法:北京=0.1上海+0.2天津+0.3廣州。

我們嘗試評估疫情對北京的某品類GMV影響,我們為其找了其他30個非疫情城市。

現在,我們可以將因變量定義為北京GMV,將自變量定義為其他城市GMV進行回歸。

注意幾個點,首先策略干預后,合成控制的虛擬北京GMV超過了真實北京GMV,這表明疫情降低了北京的銷售數據。

其次,疫情前的時期是完美擬合的,這表明我們的合成控制可能發生過擬合。因為我們的對照組用了30個城市,所以我們的線性回歸模型有30個參數可以使用,這給模型提供了過多靈活性,產生過擬合風險。此時可以使用Ridge或者Lasso回歸來解決此問題,這里不過多贅述。

有了合成控制的虛擬北京后,我們就可以將策略效果估計為策略結果與合成控制結果之間的差距,即 真北京-虛擬北京:

用因果推斷解決的四類分析難題

由于合成控制法的樣本量通常較小,因此在確定我們的結果是否具有統計學意義時,可以使用cross validation交叉檢驗方法。

每次我們置換我們的策略組和對照組,由于我們只要一個策略城市,這意味著對于每個城市,我們要假裝它是被疫情影響過的,其他則是對照。

通過對所有城市應用合成控制,我們可以估計所有城市的合成狀態和真實狀態之間的差距。對于北京來說,這就是策略效果。

對于其他非疫情城市,這就像安慰劑效應。如果將所有安慰劑效應與北京的疫情干預效果一起繪制,根據所有城市策略干預效果的分布,我們可以計算北京效應量的p值。

在我們估算的所有其他30種安慰劑效應中,沒有一個高于北京的效應量,所以p值為非常接近于0,具有統計顯著意義。

用因果推斷解決的四類分析難題

2. 場景二:實驗場景下的正向用戶下探

在做策略時,我們需要探究策略對于不同用戶的異質性影響(HTE),哪些用戶對策略更敏感更容易被影響以及影響有多少,更好的歸因和理解不同的用戶群。

通常情況下,我們結合實驗來做分析。比如在實驗中,我們需要挑選出來那些實驗效果顯著的用戶,去分析他們的特征,以及找到敏感用戶,幫助我們了解策略的影響,作出下一步迭代。

針對這類問題,之前常用的方法是去針對用戶做維度下鉆,但是效率極低且并不自動化很難遍歷所有特征組合去分析。

1)Causal Tree基本原理

這時我們可以結合機器學習的方法去解決此類問題,這里選擇因果決策樹(Causal Tree)方法。

Causal Tree是一種直接對目標進行建模的方式,它改進了傳統決策樹的優化目標和指標分桶方式,以達到最大化分桶的異質性因果效應,同時調整誤差的效果。

首先,它會把數據分成訓練集和估計集,一部分訓練集去構造樹,另一部分估計集去估計因果效應和方差。

其次,在樹的分區方式上,使用各個節點的方差對目標函數加以修正。給定訓練集Str= {(Xi,Di,Yi)},其中Di=1代表實驗組,Di=0代表對照組,目標是預測E( (Yi(1) – Yi(0)) | Xi)。其中

用因果推斷解決的四類分析難題

本種方法須滿足條件獨立假設(CIA)即給定特征,用戶是否在處理組和我們關心的結果是互相獨立的。

本模型的結果易于理解,可以得到某一個葉子(用戶群)的因果效應結果,但是如果需要處理高維變量的話能力相對較差,最終分桶效果可能相對較,且無法檢驗,所需要模型使用者真正了解問題和數據的產生過程。

在實際應用時,ab實驗分析通常是滿足CIA的,且一般不需要處理過于高維變量,所以本方法在實驗異質性因果效應探究問題應用較為廣泛。

2)Causal Tree

某業務做了產品優化實驗,但實驗各項消費數據表現較差,以APP平均使用時長為例,我們能否用Casual Tree找出一些群體的消費者,使得我們在這些消費者身上有正向實驗收益?

特征選?。?/strong>

  • 自變量:性別、年齡、新老用戶、是否安裝競品、是否是創作者;
  • 因變量:實驗后兩周每日APP平均時長(取log)。

通過建模,我們發現Causal Tree的第一個分裂點是用戶是否是創作者,說明創作者受到了更大的實驗負向影響。

最終樹將用戶分為了10個節點(10個桶),負向因果效應最大的組為第10組(非創作者+未安裝競品+0-23歲),APP平均時長降低了16%。

負向因果效應最小的組為第4組(創作者+未安裝競品+0-12歲),APP平均時長上漲了7%;

我們將每個組的分群因果效應均畫出,沒有找到正向收益置信的用戶組。但是有些用戶群體,實驗沒有對他們造成很大的負向影響。

用因果推斷解決的四類分析難題

3. 場景三:策略敏感人群探究

目前業界流量競爭已經進入白熱化,個性化策略已經滲透到了生活中的方方面面,不論是識別營銷敏感人群去推送刺激其消費的優惠券,還是為某類視頻愛好者針對性推送其所愛的垂類內容。

而如何找到真正的策略敏感人群,將更多的預算/資源投入到可以帶來‘增量’的用戶上,以提升整體roi,成為了后時代精細化運營的關鍵,Uplift Model可以嘗試解決這一類問題。

1)Uplift Model基本原理

用簡單的例子來介紹此模型,假設我們是個電商平臺,一件標價300元的商品,用戶的購買率為6%?,F有一批預算可以給用戶發放10元的優惠券以提升用戶購買率,那么這批優惠券應該發送給平臺的哪些用戶呢?

此時我們腦海中有四類用戶:

  1. Persuadables:不發送優惠券則不買,發送優惠券則購買;
  2. Sure things:不論是否發送優惠券均會購買;
  3. Lost causes:不論是否發送優惠券均不會購買;
  4. Sleeping Dogs:不發送優惠券會購買,發送優惠券反而不買。

用因果推斷解決的四類分析難題

左上的Persuadables(說服型)類用戶被發券干預后購買率得以提升,是我們真正想要進行干預的營銷敏感用戶。

Uplift模型要解決的問題就是通過建模預測的方法精準的去對這四類用戶進行分群。

對于單個用戶來說,無法同時觀測到在有干預和沒有干預兩種情況下的表現,這也是因果推斷中的反事實的問題。

這時可以從用戶的角度來對平均因果效應做估計,假如我們有兩組同質用戶,對其中一組用戶發券另外一組不發券。

之后統計這兩群人在購買轉化率上的差值就可以被近似認為是平均因果效應。

Uplift建模需要服從CIA條件獨立假設,因為樣本在特征上分布需要較為一致,因此AB實驗是Uplift Model建模過程中非常重要的前置條件。

  • 首先,我們選取部分用戶(小流量實驗,樣本量足夠建模)隨機分為實驗組和對照組,對照組不發優惠券,實驗組發放優惠券,用戶最終是否購買為一個0-1變量;
  • 然后,對整體實驗數據用戶購買行為進行建模;
  • 最后,再用小流量實驗訓練得到模型對我們需要預測的全量用戶進行條件平均處理效應估計,預測其發放優惠券所帶來的增益值;

假設有N個用戶,用戶i在沒有優惠券的購買結果為Yi(0),在有優惠券時購買結果為Yi(1),此時發送優惠券對該用戶的增益就是uplift score (i)=Yi(1)-Yi(0)。

當uplift score為正值時,說明干預項對用戶有正向增益作用,也就是上文所提到的Persuadables(說服型)用戶。

此外,Uplift模型通常有幾種建模方式:S-Learner、T-Learner、Class Transformation等等。

模型評估方法有Uplift柱狀圖、QINI曲線等方式。針對幾種建模及評估方式可詳細參考該把優惠券發送給哪些用戶?一文讀懂Uplift模型。

最后,我們總結一下Uplift模型可能的應用場景:

  • 精準定位策略敏感人群:我們希望找出來一些對干預項(例如發券、投放、內容推薦等)比較敏感的用戶,繼而對其進行精準策略/營銷;
  • 測算收益空間:Uplift模型可以幫助我們測算如果對策略做一些人群向優化,業務收益將會提升多少;

2)Uplift Model

例如我們做了短劇類視頻屏蔽Holdout實驗,整體大盤DAU下降-0.5%,但大盤用戶結構卻未看清哪些用戶是短劇核心用戶,哪些用戶的短劇類視頻推薦分發的提升空間比較大,我們需要對大盤用戶進行分層。

特征選?。?/strong>

  • 自變量:用戶基礎畫像、行為特征、整體視頻消費行為、短劇消費行為、短劇內容偏好等;
  • 因變量:用戶是否是短劇核心用戶會反映在短劇屏蔽前后的活躍度變化上,因此需要用活躍度這個指標來定義用戶正負樣本。正樣本:策略上線后一個時間周期 相比策略上線前一個時間周期,活躍天數差值>0,負樣本反之;

訓練好模型后我們對大盤所有用戶進行短劇增益預測,得出了每個用戶的基于短劇分發的策略增益分數Uplift Score,然后對其進行分桶觀測:

用因果推斷解決的四類分析難題

4. 場景四:因果影響指標分析

很多時候因果推斷會遇到混淆變量的問題,比如我們想要去分析直播推薦多樣性(指標D)對用戶活躍度(指標Y)的影響,但此時存在很多變量X既與D相關又與Y相關。

解決這類問題傳統的方法是用X對Y做線性回歸,X的參數就是影響效應,或者是上XGboost看Shap值等。

但傳統的方法會依賴很多強假設例如不能多重共線性等,強假設下得到的估計不一定合理。

所以這種場景下傳統的指標影響分析方法將不滿足業務需求,雙重機器學習(Double Machine Learning)為這個問題提供了解決的思路。

1)Double Machine Learning基本原理

在介紹DML之前我們先用最簡單的例子來講講它所解決的問題:我們要估計冰淇淋價格與其銷量間的因果效應。

我們的數據集中特征X包括溫度、成本和一周中的周幾三個變量,Treatment T為價格,outcome Y為銷售量。

其中,T影響Y,X影響T和Y,即存在混淆。通過可視化,我們可以很明顯看到,在周末(weekday=1和7)的時候,價格比平常要高很多,即星期幾這個特征就是價格與銷量之間的混淆變量。

用因果推斷解決的四類分析難題

一種簡單的去偏方法就是線性回歸,我們擬合一個線性回歸模型,然后固定其他變量不變,去估計平均因果效應(ATE):

用因果推斷解決的四類分析難題

但特征X與Y的關系可能是非線性的,如溫度temp,當溫度升高時,人們可能都去沙灘玩耍,買冰淇淋吃,銷量Y升高,但當溫度過高時,人們可能只想呆在家,這時銷量Y就下降了。

因此,我們不可以直接做線性回歸,而需要用殘差建模的方式去建立因果模型,殘差的思想就是DML的理論基礎。

DML是一種處理基于觀測數據進行因果建模的方法,它可以去除偏差。根據Frisch-Waugh-Lovell定理,假設我們要估計Y = β·X+ θ·D+ E 中D的系數θ項:

  • 先直接用X對Y做回歸,得到X估計Y得到的殘差,即剔除控制量X對Y的影響;
  • 再用X對D做回歸,得到X估計D得到的殘差,即剔除控制變量X對D的影響;
  • 最后用上面D的殘差對Y的殘差做回歸,就可以得到最終想估計的系數θ項,也就是ATE(D對Y的因果效應參數);

雖然DML可以去混淆,讓我們可以只關注T對Y的影響。但是在T和Y殘差化后,我們仍然使用的是線性模型。

當價格只需在小范圍內變化時,這種方法可能還適用。

然而通常情況是,在價格較低的時候,價格增加1元,需求量可能減少2個,而在價格較高的時候,價格增加1元,需求量可能只減少1個,邊際效應會逐漸遞減。

顯然,這是一種非線性關系。這時,我們可以通過對目標函數進行轉換,實現非線性建模。

在非線性CATE估計時,DML估計的是CATE的局部線性近似(導數)。

舉個例子,假設我們通過模型對一個顧客估計出CATE=2,說明價格減少一個單位,銷量會多出2個單位。

但我們不能據此就做出決策直接在價格上減少10個單位。因為當價格過低時,CATE可能就就會從2變成0.5。因此在處理非線性的CATE的時候,需要注意不同Treatment下的CATE可能是不同的。

雙重機器學習假設所有混淆變量(既影響D又影響Y的變量)都可以被觀測,所以在做特征選擇時要格外注意盡量將這些特征加入模型。

同時,機器學習自帶的正則化可以達到高維變量選擇的效果,我們可以通過拆分訓練集和測試集的方式來解決過擬合帶來的偏差,提高估計準確性。

2)Double Machine Learning

用戶APP消費時長一直是優化視頻推薦的主要目標,但隨著消費需求的多樣化,優化用戶時長對用戶活躍度的邊際效應逐漸遞減。

目標:

  • 我們需要探索還有哪些潛在的用戶行為或者哪些內容對用戶活躍度有正向因果影響;
  • 這些潛在抓手的因果效應都是多少,以判斷其優先級;

由于用戶活躍度和非常多指標都存在相關性(混淆變量較多),因此不能直接回歸,需要用DML來計算潛在抓手指標對用戶活躍度的因果效應,比較因果效應大小來判斷優先級;

特征選?。?/strong>

  • X:統計第一個時間周期的用戶消費行為特征(習慣偏好、消費行為、互動行為、消費內容垂類、作者相關畫像信息等)
  • D:統計第二個時間周期的用戶消費應為特征(D為需要計算因果效應的特征)
  • Y:第三個周期的用戶活躍天數

建模步驟:

隨機選取第二個時間周期的活躍用戶,拆分訓練集和測試集,關聯第一個時間周期的特征指標及第三個時間周期的因變量;

  1. 用訓練集數據,用XGB將X對Y做回歸,在測試集上得到X對Y的殘差,這步可以剔除控制變量X對Y的影響;
  2. 用訓練集數據,用XGB將X對D做回歸,在測試集上得到X對D的殘差,這步可以剔除控制變量X對D的影響;
  3. 用測試集數據,對每個待評估指標D,用線性回歸模型擬合上面的D殘差~Y殘差,得到每個D特征的因果效應系數θ,θ表示D指標每增加1%,用戶的周活躍度將提升θ%;

用因果推斷解決的四類分析難題

剔除不顯著的特征,整體來看按照提升用戶活躍情況的邊際效應大小的邏輯來確認優化手段的優先級,優化內容的分發垂類結構>提升用戶的內容互動量>優化內容生產者結構。

#專欄作家#

趙小洛,公眾號:趙小洛洛洛,人人都是產品經理專欄作家。數據分析師一枚。

本文原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 好厲害(??ω?)?嘿

    來自浙江 回復