光有預測還不夠
一個訓練來做預測的模型可以表現極佳,卻在決策上毫無用處。冰淇淋銷量能高精度地預測溺水人數,但禁止冰淇淋救不了任何人——是夏季高溫同時推升了兩者。這就是偽相關(spurious correlation):一個穩定的統計訊號,一旦你真正去行動,它就消失、甚至反轉。大多數的機器學習回答的是「當我觀察到 X,Y 可能的值是多少?」;而因果推論問的是一個本質不同的問題:*「若我把 X 設定成某個新值,Y 會是多少?」*
Pearl 的因果階梯
Judea Pearl 把這個領域刻畫成一座三階的因果階梯。每一階回答的問題嚴格地更難,而低階上再多的資料,單憑自身都無法回答更高階的問題。
- 關聯——看見。P(Y | X):觀察到 X 如何改變我對 Y 的信念?這是古典統計與監督式學習所處的階層。
- 介入——去做。P(Y | do(X)):若我強制 X 取某值、覆寫它平常的成因,Y 會怎樣?這需要 do 運算子(do-operator)。
- 反事實——想像。對這個特定個體而言,在已知實際發生情況下,若 X 當初不同,Y 本來會是多少?這屬於反事實推論(counterfactual inference)的範疇。
珀爾因果階梯的三層形式化查詢:觀察 P(Y|X)、介入 P(Y|do(X)) 與想像反事實。
從第一階躍升到第二階是這個領域的核心。觀察資料只直接給你最底階;要往上爬,需要假設——以圖或以實驗設計的形式編碼——這是資料本身無法提供的。
第一種語言:結構因果模型
結構因果模型(structural causal model, SCM)把世界描述成一組結構方程式:每個變數寫成其直接成因加上一個獨立雜訊項的函數。這些方程式導出一個有向無環圖(DAG),其中箭頭 X → Y 代表「X 是 Y 的直接成因」。關鍵之處在於,SCM 不只告訴你觀察分布,還告訴你在手術式介入下會發生什麼:以 do(X = x) 介入,會刪去 X 的方程式並把它固定為 x,讓下游一切重新計算。
結構因果模型即一組結構賦值;do 算子以手術方式用常數取代某變數的方程式。
# An SCM as code: structural equations + noise U_z, U_x, U_y = sample_noise() Z = f_z(U_z) # a common cause (confounder) X = f_x(Z, U_x) # treatment depends on Z Y = f_y(X, Z, U_y) # outcome depends on X and Z # Intervention do(X = 1): replace X's equation, keep the rest X = 1 Y = f_y(X, Z, U_y) # Z is NOT recomputed from X
第二種語言:潛在結果
潛在結果框架(potential outcomes framework,即 Rubin 因果模型)直接談反事實。對每個個體 i、在二元處置下,定義兩個潛在結果:Y_i(1)(若接受處置的結果)與 Y_i(0)(若未接受處置的結果)。個體因果效應為 Y_i(1) − Y_i(0)。因果推論的根本問題在於:我們永遠只能觀察到其中一個,另一個則永遠缺失。因果推論本質上是一個缺失資料問題。
因為我們永遠看不到兩者,我們便從個體退回到母體層級的摘要:平均處置效應(average treatment effect, ATE),即 E[Y(1) − Y(0)]。這兩種語言是等價的——Pearl 的手術介入與 Rubin 的潛在結果描述的是相同的數學——但它們在不同情境各擅勝場。SCM 讓混淆的定性結構一目了然;潛在結果則為估計與標準誤提供一個乾淨的記帳框架。
平均處理效應:單元兩個潛在結果之間的期望差。
這條學習路線會建立什麼
握有這兩種語言後,這條路線其餘部分沿著一場應用因果分析的自然流程展開。指南 2 問一個因果問題究竟何時能從資料回答——也就是識別(identification)問題。指南 3 用現代機器學習把已識別的量轉成估計值。指南 4 巡覽各種準實驗設計,在沒有乾淨實驗時製造出識別條件。指南 5 抵達研究前沿,在此機器學習與因果融合:從資料中發現圖結構,並學習在介入下仍然成立的表徵。