因果推論
因果推論の2つの流派
Claude Code.icon
因果推論には大きく2つの流派がある
二大流派の全体像
table:_
Rubin 流 Pearl 流
正式名 潜在的結果変数モデル(Rubin Causal Model / Neyman–Rubin) 構造的因果モデル(Structural Causal Model, SCM)
中心人物 Donald Rubin(統計学) Judea Pearl(計算機科学・AI)
主役の道具 $Y^{(1)}, Y^{(0)}$(潜在的結果)、ATE/ATT DAG(因果グラフ)、do 演算子、バックドア基準
思考の出発点 「もし介入したら / しなかったら」の結果を比べる 「変数間の因果の構造を図に描く」
効果の表し方 $ E[Y^{(1)} - Y^{(0)}] $ E[Y \mid do(X=1)] - E[Y \mid do(X=0)]
出身分野の空気感 実験計画・疫学・計量経済 AI・知識表現・哲学(反事実の論理)
『効果検証入門』は完全に Rubin 流です。
Rubin 流:潜在的結果変数
発想の核:因果を「反実仮想の比較」として定義する。
効果とは「同じ対象が介入された世界とされなかった世界の結果の差」
でも片方は観測できない
だから「観測できない方をどう埋めるか」が全テーマになる
強み
「効果」が $Y^{(1)} - Y^{(0)}$ という数値としてカチッと定義される。ATE・ATT など「誰にとっての効果か」も明示的
RCT・傾向スコア・層別といった実務の推定手続きと直結している
「何を仮定すれば効果が推定できるか」(例:強い意味での無視可能性 = 条件付き独立)を仮定の言葉で議論する
弱み・批判
「どの変数で条件づければ選択バイアスが消えるか」を直感や経験で選ぶことになりがち
なぜその変数かを構造的に語る言語を持たない
変数が増えて関係が複雑になると、何を調整すべきか見通しが悪い
Pearl 流:構造的因果モデル(SCM)と DAG
発想の核:まず変数同士の因果関係を矢印付きの図(DAG)に描く。因果は「変数を生成する仕組み(構造方程式)」として捉える。
do 演算子:観察と介入を記号で区別するのが革命的なところ。
$ P(Y \mid X=1) …
「$ X=1 だった人を観察した」ときの $ Y(バイアス込みかもしれない)
$ P(Y \mid do(X=1))
「外から強制的に $X=1$ にした」ときの $Y$(=本当に知りたい因果効果)
「クーポンをもらった人の売上を見る」と「全員に強制的にクーポンを配る」は別物
この区別を数式で書けるようにしたのが do 演算子です。
バックドア基準:DAG を描くと、「どの変数で条件づければバイアスが消えるか」を図の上で機械的に判定できる。
Rubin 流で「経験で選んでいた調整変数」を、Pearl 流は構造から導出する。
交絡(confounder)・合流点(collider)の整理:
交絡因子:調整すべき変数(例:もともとの購買力)
合流点:調整してはいけない変数(調整すると逆にバイアスが生まれる)
この「調整すると害になる変数がある」という洞察は DAG だと一目瞭然で、Rubin 流の素朴な「共変量はとにかく入れろ」に対する強い批判になっています。
弱み・批判
出発点の DAG(因果の構造)を正しく描けている保証がない。図を間違えれば結論も間違う
実データでの推定手続きとの接続は、Rubin 流ほど手厚く整備されていない場面もある
両者の関係:対立か、補完か
歴史的には Rubin と Pearl はかなり激しく論争してきました(Pearl が「潜在的結果だけでは交絡を語れない」と批判し、Rubin 側は「グラフは仮定を隠す」と反論、など)。
ただ現在の主流理解は「数学的には等価で、強調点が違う」というもの:
code:_
同じ「因果効果」という対象を……
Rubin 流 … 「結果」側から定義する(反事実の差)
Pearl 流 … 「原因の構造」側から定義する(介入 do と DAG)
実務的な住み分けのイメージ:
何をどう調整すべきか/なぜそれでバイアスが消えるかを設計する段階 → Pearl 流の DAG が強い
設計が決まった後、データから効果を推定する段階 → Rubin 流の手続き(傾向スコア等)が強い
なので「DAG で調整集合を決め、Rubin 流の推定量で測る」というハイブリッドが今は普通です。