反事実モデル
「ある薬を飲む」ことと「ある病気が治る」ことに因果関係があるかどうかを考える。
このとき、以下の両方を観測する必要がある。
- ある薬を飲んだとき、ある病気が治ったか
- ある薬を飲まなかったとき、ある病気が治ったか
「ある薬を飲んだ」とする(事実)と、「ある薬を飲まなかった」というのは事実に反する(反事実)。
このように、因果関係を知るためには事実と反事実の両方を観測する必要がある。
こういった枠組みを**反事実モデル(counterfactual model)**とよぶ。
個体レベルの因果
特定のサンプルに対する因果関係、すなわち**個体レベルの因果(unit-level causation)**を知りたい。
- Aさんがある薬を飲んだとき、ある病気が治ったか
- Aさんがある薬を飲まなかったとき、ある病気が治ったか
この場合、Aさんは1人しかいないので両方を観測できない。
すなわち、個体レベルの因果を知ることは不可能である。
集団レベルの因果
ある集団に対する因果関係、すなわち**集団レベルの因果(population-level causation)**を知りたい。
- 集団の全員がある薬を飲んだとき、ある病気が治った割合はいくらか
- 集団の全員がある薬を飲まなかったとき、ある病気が治った割合はいくらか
この場合も、同様の問題個体レベルの因果と同様の問題にぶつかる。
しかし、集団レベルの因果は調べることができる場合がある(らしい)。
構造方程式モデル
データ生成過程を記述するものの一つとして**構造方程式モデル(structual equation models)**がある。
ここでも例として、「ある薬を飲む」ことと「ある病気が治る」ことの因果関係について考える。
構造方程式
データ生成過程を以下の 2 つの方程式で表すことにする。
これらの方程式を**構造方程式(structual equation)**とよぶ。
$$
x = e_x \tag{1}
$$
$$
y = f_{y}(x, e_y) \tag{2}
$$
- $x$ : ある薬を飲むか
- $x = 1$ : ある薬を飲む
- $x = 0$ : ある薬を飲まない
- $e_x$ : $x$ を決めるための誤差変数
- $y$ : 病気にかかっているか
- $y = 1$ : ある病気にかかっている(治っていない)
- $y = 0$ : ある病気にかかっていない(治った)
- $e_y$ : $y$ を決めるための誤差変数
- 「ある薬を飲む」かどうか以外で「ある病気が治る」かどうかを決める変数
内生変数と外生変数
変数 $x, y$ は構造方程式により値が決められる(左辺に現れるため)。
このような変数を内生変数(endogenous variable)とよぶ。
※構造方程式モデルの内部で生成されるから
一方、誤差変数 $e_x, e_y$ は構造方程式では値が決まらない(右辺にしか現れないため)。
このような変数を外生変数(exogenous variable)とよぶ。
※構造方程式モデルの外部で生成されるから
外生変数は、ある確率分布 $p(e_x, e_y)$ からサンプリングされて決まる。
構造方程式モデルの構成要素
構造方程式モデルは以下の4つ組として定義される。
- 内生変数 : $x, y$
- 外生変数 : $e_x, e_y$
- 内生変数と外生変数を繋ぐ関数 : 式 $(1)$ の恒等関数と式 $(2)$ の $f_{y}$
- 外生変数の確率分布 : $p(e_x, e_y)$
構造方程式モデルの因果グラフ
以下のように書ける。
- 直線矢印は依存する可能性がある場合に描く
- $x$ の計算には $e_x$ が必要かもしれない
- $y$ の計算には $e_y$ が必要かもしれない
- $y$ の計算には $x$ が必要かもしれない
- 円弧矢印は未観測共通原因が存在する(誤差変数が独立でない)可能性がある場合に描く
- $x$ と $y$ の未観測共通原因が考えられるので、 $e_x$ と $e_y$ は独立でないかもしれない