読者です 読者をやめる 読者になる 読者になる

Unboundedly

日々大学院で学んだこと、考えたことを更新

"矢印"をつかって因果関係を視覚的に整理する:因果ダイアグラム(DAG)入門①〜なぜDAGが必要なのか〜

因果推論 DAG

f:id:KRSK_phs:20170120055557j:plain

今回はDirected Acyclic Graph(DAG)と呼ばれるものについて書いてみようと思います。「ダグ」と読みます。日本語では「非巡回有向グラフ」とかいうなんだか難しそうな名前で呼ばれているようです。DAGが何かを一言で説明するとすれば「いろいろな要因を矢印で結んで、それらの間の因果関係について整理するためのツール」といったところでしょうか。本シリーズは以下の三つのテーマに分けて書いていきます。

1.そもそもなぜDAGが必要なのか(本記事)

2.DAGの基本的なルール・書き方と読み方

3.DAGによる様々なバイアスの視覚的な整理

それでは今回はDAGが必要とされる理由について整理してみます。

なぜDAGが必要なのか?どう有用?

1.まず前提の確認

DAGを活用するうえでまず知っておかないといけないのが、Aassociation(”関連”があること)*1とCausal relationship(因果関係)は違うということです。色々なところで言われていることですし、そんなの分かっているよという方も多いでしょうが一応それぞれの定義を簡単に共有してきましょうか。本当はどちらも厳密な数学的定義がありますし、「因果関係とは」みたいな話をしだすと果てしなく奥が深くなるのですが、ここではかなり直感的な説明だけにとどめます。 

「XとYの間にAssociation(関連)がある」

→Xの値によってYの値が異なる状態
(例:睡眠時間(X)が長い人の方が年収(Y)が高い)

「XとYの間にCausal relationship(因果関係)がある」

→Xの値を操作することでYの値が変化する状態

(例:睡眠時間(X)を増やすことで年収(Y)が高くなる

非常にざっくりとした説明ですが、このようなイメージでとりあえず大丈夫だと思います。両者は似ているようですが、それぞれから得られる結論は全く異なるので注意が必要です。

2.多くのデータ分析では因果関係を見つけることに興味がある

データを集めて分析することの主な目的の一つに、注目している要因同士(XとY)の間に因果関係があるかどうかを見極める、というものがあります。「関連」ではなく「因果関係」であることが重要なポイントですね。

なぜ因果関係の方が重要なのかというと、考えてみれば当たり前のことなのですが、どんな分野においても「ある要因Xを変えることで、ターゲットである要因Yを変えることができるか、どれくらい変わるのか」ということに関心があるからです。例えば医学であれば、「ある薬Xを患者に飲ませると、目的の病気Yを治療することができるか」、教育であれば「ある教育法Xを実施すると、子供たちの成績(Y)を伸ばすことができるか」、ビジネスであれば「ある経営戦略Xを採用すると、会社の年間総利益(Y)を増やせるか」といった具合です。当然両者の間に因果関係があることが分かれば(そしてXを変化させるのに必要な労力が得られるYの変化に見合うものであれば)、薬Xや教育法X、戦略Xの使用を推進していく、という意思決定を行うことができます。

Associationがあるというだけでは、ここまでの結論にたどり着くことができません。例えば上記の教育の例でいうと「ある教育法Xを受けている子供は(受けていない子供と比べて)(平均的に)成績Yがよい」というのはAssociationであって、因果関係ではありません。この情報だけでは、実際に教育法Xを実施することで成績が上がるのかどうかは分からないのです。

3.目の前の「関連」は「因果関係」か?

ここで問題となるのは、ほとんどの場合で因果関係を直接推定することが非常に難しいということです。因果推論の基礎に関しては後日別の記事でまとめてみようと思いますが、基本的に個人レベルでの因果関係の推論は不可能です*2。集団レベルで平均的に因果関係があるかどうかは、唯一、無作為化比較試験(Randomized Control Trials: RCTs)と呼ばれる手法を使って調べることができるとされています。

しかし、RCTであっても選択バイアスと呼ばれるものの影響で、因果関係を正しく推定できない場合がありますので完璧な方法ではありません。また、限られた資源ではRCTを行うことが難しい場合も多いです。RCTは非常にお金と人的資源を要するので。そもそもRCTで取り扱えるテーマも倫理的な理由などから非常に限られています。*3

因果関係は直接見れない。ではどうするか?簡単です。

Associationから因果関係を推定します。

「はあ?さっきその二つは違うって言ったばっかやん」と思った方、その通りです。因果とAssociationは違います。実際にはXとYの間に因果関係が存在しないにも関わらず、関連は見られるという場合が多くあります。というか、そんなのばっかりです。たとえ因果関係があったとしても、XがYに与える影響の大きさを誤って推定してしまっていることもよくあります。

 このような現象が起きる理由については、以下の記事で非常に丁寧にまとめられていました。

因果関係がないのに相関関係があらわれる4つのケースをまとめてみたよ(質問テンプレート付き) - Take a Risk:林岳彦の研究メモ

要するに、以下の四パターンではAssociationが因果関係でなくなるのです。

  1. 偶然(Chance)
  2. 逆因果(Reverse Causation)
  3. 交絡(Confounding)
  4. 選択バイアス(Selection Bias)

4.ここでついにDAGの登場!

では、いったいどうやってAssociationから因果関係を取り出すのか。その第一歩は、観察しているAssociationにどのようなバイアスが生じている可能性があるかを明らかにすることです。すなわち、上記のAssociationが因果でなくなる四パターンのどれが起きていて、なにがそのバイアスの原因になっているのかを特定するのです。

逆をいうと、Associationを真の因果関係から遠ざけている原因がなにかわかれば、それら一つ一つ丁寧に対応してバイアスを取り除いていくことでAssociationを因果関係に近づけることができるのです

ところがXとYのAssociationにはX,Y以外にも他の無数の要因が複雑に絡んでいます。頭のなかで、「あの要因とこの要因がこういう風に関係しているから交絡が生じていて、、、」と考え出すときりがありません。このような場合に、バイアスの原因を特定するうえで有効なのがDAGです。

DAGを使うことで上記の例だとXとY、そしてそれらに関わるその他の要因がそれぞれどのように関係しあっているのかを視覚的に整理することが可能です。具体的な書き方は次回に譲りますが、DAGではまず注目しているAssociationに関連する要因を列挙して、それらを矢印で結ぶことで要因同士の関係を絵にするのです。

例えば、仮に「髪の毛が薄い人はそうでない人より年収が高い」という"Association”が観察されたとします。これは因果関係と早とちりしてしまうと、「年収を増やすためにはげましょう!」というキテレツな結論に至ることになります。当然ですが、(私の知る限り)両者の間に因果関係は存在しません。

このような毛髪量と年収の関係をDAGにして整理したのが以下の非常にシンプルな図です。

f:id:KRSK_phs:20170121144809p:plain

X, Y, Zと三つの要因が矢印で結ばれていますね。図にある矢印は因果関係を意味します。XとYの間には矢印がありません。XとYの間には因果関係がないことを意味します。Zは年齢です。(悲しい話ですが)年齢が高いほど毛髪量は少なくなるし、年齢が高いほど年収は高くなると考えられます。これらは因果関係といっていいでしょう。

ここまでは三つの要因の関係性を図にしただけです。DAGの本領発揮はここから。

DAGを”書いた”あとは、DAGを”読む”フェーズに入ります。詳しいDAGの読み方のルールは次のブログでまとめて説明しますが、上記のDAGの場合だと「XとYの間にbackdoor pathがあるため、両者の間にAssociationが生じている」と読むことができます。backdoor pathについて今回理解する必要はありませんが、重要なのはDAGを書いて読むことで、因果関係ではないAssociationの原因(今回だとZ)をつきとめることができるということです。あとは適切な手法をつかって年齢の影響を補正してあげれば、XとYの因果関係を推定できることになります。

5.DAGでないと見つけにくいバイアスが多い

今回の例はあまりにもシンプルであるためにDAGの威力がわかりにくいかもしれませんが、DAGのすごいところは複数の要因が複雑に絡み合いながらAssociationを生んでいるような場合でもルールに従ってDAGを読むことで、非常に簡単にバイアスの原因を特定できるという点です。現実にはDAGが上記のようなシンプルなもので完結する場合は少なく、非常に多くの変数が因果的に関わり合いながら、Associationを形成していることがほとんどです。視覚的に様々な要因同士の関係性を整理することができるので、そのような場合でもバイアスを見落とすことなく見つけ出すことができます。

また、DAGを書かないでバイアスを見つけ出そうとした場合、本当は”調整”すべきでない要因までバイアスとして考えてしまうことがあります。本シリーズ第三段で詳しく書きますが、特に上記の「交絡」バイアスはやっかいで、見かけ上は交絡を引き起こしているようでも調整することでかえってバイアスを引き起こしてしまうケースもしばしばあります。

厳密には100%因果関係とAssociationを一致させることは不可能ですが、RCTが使えない場合などはDAGをつかって何がバイアスを引き起こしているのかを整理し、それぞれに対処していくことで因果関係に近いAssociationを見つけることが可能になるのです。*4

 

次回のブログでは実際にどうDAGを書いて、読んだらよいのか、その方法をまとめる予定です。

参考文献

 疫学で使われるDAGについては、やはり以下の本が最も有名でしょう。しかし、かなり難解なので注意。

Modern Epidemiology

Modern Epidemiology

  • 作者: Kenneth J. Rothman,Timothy L. Lash Associate Professor,Sander Greenland
  • 出版社/メーカー: LWW
  • 発売日: 2012/12/17
  • メディア: ハードカバー
  • この商品を含むブログを見る
 

 それ以外なら以下の本は非常にわかりやすく(かつある程度深く)因果推論におけるDAGの活用法についてまとめています。まもなく出版される、ハーバード大学の因果推論の研究者らがまとめている本ですが、今ならなんと筆者のHP上で無料公開されています。

https://www.hsph.harvard.edu/miguel-hernan/causal-inference-book/

ちなみに筆頭著者のHernan氏はまもなく某有名MOOCにてDAG講座を開講予定なので要チェックです。

*1:相関と訳すひとも多いですが、correlationという別の概念と区別するためにも今回は関連としました

*2:これは「因果」の定義によります。反事実モデルに基づく因果関係は個人レベルで推定できません

*3:この辺りの、因果推論入門、RCTの美しさと限界についてはそのうち別でまとめます

*4:書いているDAGが正しいということが当然前提になります