JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

識別:資料何時能回答因果問題?

在估計任何東西之前,你必須先知道它究竟能不能從資料中復原。認識後門準則、前門準則、工具變數,以及決定可識別性的 do 演算。

識別問題

識別估計是兩個不同的問題,把它們混為一談是初學者最常犯的錯。估計問的是:給定有限樣本,我如何算出一個誤差小的數字?識別問的則更先驗、更根本:即便擁有來自觀察分布的無窮資料,因果量 P(Y | do(X)) 是否被唯一決定?若答案是否,那麼無論估計式多聰明、資料多龐大,都無法復原它。識別是你的假設與圖的性質,與樣本大小無關。

混淆、對撞與關聯的流動

關聯沿著 DAG 中的路徑流動,你的工作是讓因果的流動通過,同時阻斷非因果的流動。三種接點類型主宰著這件事。鏈(chain)X → M → Y 會傳遞關聯,除非你對 M 做條件化。叉(fork)X ← Z → Y 是混淆:Z 在 X 與 Y 之間製造出非因果的關聯,對 Z 做條件化可阻斷它。對撞(collider)X → C ← Y 預設是被阻斷的,但棘手的是,若你對 C 做條件化,它反而打開——對一個共同結果做條件化會憑空製造出偽相依。

X \perp\!\!\!\perp Y \mid M \quad (\text{chain } X\!\to\!M\!\to\!Y,\ \text{fork } X\!\leftarrow\!M\!\to\!Y), \qquad X \perp\!\!\!\perp Y \ \text{but}\ X \not\perp\!\!\!\perp Y \mid C \quad (\text{collider } X\!\to\!C\!\leftarrow\!Y)

d-分离的体现:链结构和叉结构传递的关联可以通过对中间变量取条件来阻断,而对撞结构恰好相反——对 C 取条件反而会打开路径。

後門準則

後門準則(backdoor criterion)是識別的主力工具。若一組共變數 Z 阻斷了每一條「後門路徑」——每一條從 X 通往 Y、且起點是一個指向 X 的箭頭(混淆的標誌)的路徑——且 Z 不包含 X 的任何後代,則 Z 相對於 (X → Y) 滿足後門準則。若這樣的 Z 存在,因果效應就可由調整公式識別:把條件結果在 Z 的分布上做平均。

# Backdoor adjustment for the ATE
# E[Y | do(X=1)] - E[Y | do(X=0)]
ATE = 0
for z in support(Z):
    p_z = P(Z = z)
    ATE += p_z * (E[Y | X=1, Z=z] - E[Y | X=0, Z=z])
# Valid ONLY if Z blocks all backdoor paths and adds no collider
後門調整公式:識別把因果效應化約為你能估計的一般條件期望值。
P(Y=y \mid do(X=x)) = \sum_{z} P(Y=y \mid X=x,\, Z=z)\, P(Z=z)

后门调整公式:一旦 Z 阻断了所有后门路径,因果效应就化简为对普通条件概率按协变量加权的平均。

當混淆無法觀測:前門與工具變數

後門準則要求你量得到混淆變數,但你往往做不到。有兩個經典的脫身之道仍能復原識別。前門準則(frontdoor criterion)適用於:一個完全可觀測的中介變數(mediator)M 落在 X → M → Y 的路徑上、M 本身不與 X 混淆、且 X 通往 Y 的唯一途徑就是經由 M。此時你把兩段已識別的部分——X 對 M 的效應、以及 M 對 Y 的效應——串接起來,便能得到 X 對 Y 的效應,繞過一個無法觀測的、同時混淆 X 與 Y 的因素。

P(Y=y \mid do(X=x)) = \sum_{m} P(M=m \mid X=x) \sum_{x'} P(Y=y \mid X=x',\, M=m)\, P(X=x')

前门公式通过一个完全中介变量 M 来识别因果效应,即使 X 与 Y 之间的混杂从未被测量。

另一個脫身之道是工具變數(instrumental variable, IV):一個會推動 X、透過 X 影響 Y、且與 Y 不共享任何混淆因素的變數。一個有效的工具就像一場自然的抽籤——從系統外部注入到處置中的隨機性。它能識別「處置確實會回應該工具」的那群子母體的效應。在指南 4,當自然實驗免費把工具送到我們手上時,我們會再次用到它。

do 演算作為完備的判定程序

後門、前門與 IV 都是特例。一般化的引擎是 do 演算(do-calculus):三條代數規則,用來改寫含有 do 運算子的表達式。反覆套用它們以操作 P(Y | do(X)),直到所有 do 都消失、只剩下觀察量——你便識別了該效應,還附帶一個明確的公式。值得注意的是,do 演算是完備的:若反覆套用這三條規則仍無法消去 do 運算子,那麼在該圖下,該效應就可被證明為不可識別。並不存在某個更聰明、有待發掘的招數。

P(y \mid do(x),\, do(z),\, w) = P(y \mid do(x),\, z,\, w) \quad \text{if } (Y \perp\!\!\!\perp Z \mid X, W)_{G_{\overline{X}\underline{Z}}}

do-演算的规则二——干预/观测互换:当所述的 d-分离在删改后的图中成立时,干预 do(z) 可以替换为对 z 的普通条件。