べんきのにっき

いろいろと垂れ流します。

よくわからないswig

swigの日本語の記事全然見つからなくて辛い。

本題と関係ない話

ところで、DAG(有向非巡回グラフ)はグラフの一種に過ぎず、因果推論の専売特許ではない。

一方、Causal Structureを表現する手段として有用である側面を持つため、 causal DAGとかで呼んだ方が誤解が減るのではないかと思う。

以上、DAGという言葉で因果推論マウントを取るのは筋違いな気がする話。

(あまり細かく言うと言葉狩りになるから、程度問題だとは思うけど。)

参考と図の出典

Single World Intervention Graphs: A Primer

Single World Intervention Graphs (SWIGs):Unifying the Counterfactual and Graphical Approaches to Causality

図は上記から引用。

本題

例の本を読んでいると出てくるSWIG

single interventionにおけるcounter factualを表現するものらしい

最も簡単な例で言うと、次のようなグラフがあったとする。

いつも通り \displaystyle A =\{ 0,1 \}としておく。

 \displaystyle A \rightarrow Y

swigはDAGのノードを分割したりcounter factualなものに入れ替えて作成される。

 \tag{1} \displaystyle A|a \rightarrow Y^{a}

このとき、もしなんかa=0とするような介入を想定すれば、こういう世界線を表す。

 \displaystyle A|a=0 \rightarrow Y^{a=0}

一方、a=1とする介入も当然あり、同様にこう表す。

 \displaystyle A|a=1 \rightarrow Y^{a=1}

両方まとめて、(1)のように書けばいいね。というもののようだ。

swigにする方法

ステップは多分二つ。

ステップ1: interventionの対象となる全てのノードをrandom nodeとfixed nodeにsplitする

random nodeとfixed nodeは次の通りで、パスを受け取る側のノードとパスを出す側のノードに分割している。

ノード 表記 ノードへパスが ノードからパスが
random node 大文字 向かっている 出ていない
fixed node 小文字 向かっていない 出ている

大文字小文字は厳密なルールではないので、あんまり気にしなくて良いと思う。受け取る側と出る側に役割が分かれていることが大事。

例えばノードAをsplitするとこうなる。

f:id:ben_key:20200621113549p:plain

なお、treatmentが複数地点ある場合、全てsplitする。

ステップ2: fixed nodeのdescendantのノードを全て、counter factualな記法に書き換える

splitしたグラフを対象とし、fixed nodeが親であるノードを、 fixed nodeのcounter factualであることがわかるように書き換える。 これはinterventionのノードであっても適用され、(random nodeを)書き換える。

splitしたノードの書き換え例は以下。splitされたノードBやFも書き換えられていることがわかる。

f:id:ben_key:20200621113519p:plain

ちなみに子ではなく子孫であることに注意する。

つかいどころ

random nodeとYの交絡道が切れているか(d-seperatedであるか)判断するようだ。

part3で思い出したように出てくるので困る。