因果推論記事読み方のススメ　〜因果推論の２つのフレームワーク〜

# はじめに

因果推論について学び始めて数ヶ月、私が最もハマった部分である、**「因果推論の２つのフレームワーク」**についての解説記事です。因果推論の手法や理論についての素晴らしい解説記事は多数存在するのであまり詳細には説明していません。

この記事では**どのような視点で因果推論についての記事を読むと良いか**についての知見を提供できればと思っています。

※著者の私見や勘違いが含まれている可能性もあるので、ご了承ください。

# そもそも因果推論とは？

[Wikipedia](https://ja.wikipedia.org/wiki/%E7%B5%B1%E8%A8%88%E7%9A%84%E5%9B%A0%E6%9E%9C%E6%8E%A8%E8%AB%96)では、（統計的）因果推論は以下のように書かれています。

> 統計的因果推論（Causal inference in statistics）とは、実験データや観察データから得られた不完全な情報をもとに、事象の因果効果を統計的に推定していくことである

ここでの「不完全な情報」とは、おそらく「治療を行った患者にもし治療を行わなかった時の効果」や「治療を行わなかった患者にもし治療を行った時の効果」などの、現実では観測されない（反実仮想的な）データのことを示しています。因果推論では、このような不完全なデータから、事象間の因果関係や、因果効果の大きさなどの推測を行います。

因果推論は、機械学習技術の発展により盛り上がりを見せており、日本語での検索でも、参考になるような論文やブログ記事を多数見つけることができます。



# 記事、論文によって言っていることが違う...

[因果推論についてのサーベイ論文](https://arxiv.org/abs/2002.02770)を読み終わって、[「理解した」](https://ja.wikipedia.org/wiki/%E3%83%80%E3%83%8B%E3%83%B3%E3%82%B0%EF%BC%9D%E3%82%AF%E3%83%AB%E3%83%BC%E3%82%AC%E3%83%BC%E5%8A%B9%E6%9E%9C)状態であった私が遭遇した問題、それが**「記事、論文によって因果推論のやり方が違う（気がする）」**という問題でした。

因果推論に関する知識をインプットしようと解説記事、論文を読んだのですが、最初に読んだサーベイ論文と書いてあることが若干違うと感じることが多々あり、混乱してしまいました...

ここからの部分では、この混乱の原因と、記事の読み方について解説していきます。

# 因果推論の２つのフレームワーク

前置きが長くなりましたが、因果推論の２つのフレームワークについて解説していきます。

私の場合、この２つのフレームワークの存在を知らずに勉強を進めていたため、記事を読むたびに混乱を招くといった事態に陥っていました。

まず結論として、因果推論は大きく分けて**Rubin流**と**Pearl流**に分類することができます。これら二つの流派は、それぞれが異なる（本質的には違いは無いらしい[^1]）視点で因果推論にアプローチしています。

しかし、（語弊を恐れずに言うと）多くのブログ記事が、これら二つのフレームワークのうち、どちらを用いているかを明示していないことが多く、因果推論初学者は二つのフレームワークを混同してしまい、学習に挫折してしまうこともしばしばあります（体験談）。

ここからの部分では、これら二つのフレームワークについての簡易的な説明と、差異、見分け方などについて書きたいと思います。


# Rubinの因果推論

一つ目のフレームワークは、[Donald Bruce Rubin](https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%8A%E3%83%AB%E3%83%89%E3%83%BB%E3%83%AB%E3%83%BC%E3%83%93%E3%83%B3) (1943-)による因果推論です。このフレームワークは、ルービン因果モデル(Rubin causal model, RCM)、ネイマン-ルービン因果モデル(Neyman–Rubin causal model)、潜在効果モデル(potential outcome model)、反事実モデル(counterfactual model)などと呼ばれることが多いです。最初に提案されたのは1923年のJerzy Neymanの修士論文であるが、現在の一般的な枠組みに拡張したのがRubinであるため、Rubinの名前が出てくることが多いそうです。

このフレームワークは、「評価の対象となる個体は，**それぞれある処理を割り当てられたときの潜在的な反応を有しており**，実際に割り当てられた処理に応じた反応が個体ごとに観測される[^2]」と考えることを出発点として、複数の仮定をおくことでこの「潜在的な反応」の推測を行うことを目的としています。

例を用いて説明します。とある患者に対する薬の効果の検証について考えます。この薬をこの患者に投与することが患者の健康に与える影響（例えば、血圧が下がるかなど）を知りたいのですが、この影響はどのように測定できるでしょうか？

理想的には、同じ患者に薬を投与した場合としなかった場合での効果（この場合は血圧）の差を確認することによって薬の効果を測定したいのですが、**薬を投与した場合としなかった場合のどちらかしか観測できない**という問題点があります（因果推論の根本問題）。

そのため、「患者への薬の投与の有無による効果は潜在的に定まっている」という仮定をおくことで、観測されない方の「欠損値」の潜在効果を推測するというのがRubinの因果推論です。


# Pearlの因果推論

二つ目のフレームワークは、[Judea Pearl](https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%87%E3%82%A3%E3%82%A2%E3%83%BB%E3%83%91%E3%83%BC%E3%83%AB) (1936-)による因果推論です。こちらは、Directed Acyclic Graphs (DAG) Framework、graphical modelingなどとも呼ばれます。

このフレームワークでは、非巡回有向グラフ(DAG)というダイヤグラムを用いて、因果関係を視覚的に明示し、因果効果を評価します。

こちらも同じ例を用いて説明します。Pearlの因果推論では、まずDAGを用いて、それぞれの変数の関係について整理します。詳しいDAGの書き方についてはここでは説明しませんが、Rubinの例で紹介した、薬を投与するか、血圧などの変数の他に、患者の年齢、性別などの変数も加え、それらの間に成り立つ因果関係について、ダイヤグラムで整理します。

ここで重要なのが「因果関係≠相関関係」という、統計的に相関が確認されても、因果関係があるとは限らないという考え方です。この関係のため、DAGの作成は完全に機械に任せることができず、人間の手を加える必要があります。

こうして作成されたDAGを元に、因果効果の評価を行います。具体的には、重回帰モデルや構造方程式モデルを用いて定式化を行います。そして、感度分析などによる結果の頑健性を検討することでDAGの正当性についての評価を行い、必要に応じてDAGを再検討します。

このように、DAGによる因果関係の明示に焦点をあて、因果効果を評価するフレームワークがPearlの因果推論です。

# RubinとPearlの差異

ここまで述べた二つのフレームワークの差異について紹介します。

まず、一番の差異は、 **因果推論のプロセスにおいて、どこにフォーカスしているか**であると思っています。

これはかなり主観的な意見なのですが、Pearlの因果推論では「因果の方向の推定などの因果探索」に焦点を当てているのに対し、Rubinの因果推論では、「因果の方向が既知の場合の因果の大きさの推定」に焦点を当てているのではないかと思っています。

簡潔に説明すると、Pearlの因果推論は「どの変数がどの変数に影響しているか」を説明するためのフレームワークで、Rubinの因果推論は「特定の変数を変えたとき（介入を行ったとき）の効果の大きさ」を説明するためのフレームワークであると思っています。

そのため、自分の専門である機械学習の文脈では、Rubinの因果推論をよく目にする気がします。

もう一つの大きな差異として、二つのフレームワークでよく用いられる仮定の違いがあげられます。

仮定の違いといっても、述べられていることはかなり近いため、個人的には、この差異に一番苦しめられました。二つのフレームワークの仮定についても記事を書こうと思っています。

他の差異としては、手法、よく出てくる分野などがあります。

# 因果推論記事の読み方

これに関しては、ある程度は慣れなのかなとは思っています（投げやり）。

まず一番重要なのが、「因果推論には大きく分けて二つのフレームワークがある」と認識しながら記事を読むことです。この認識を持つことで、記事間で異なる（と感じる）記述が現れても、別々のフレームワークとして捉えることで解決する場合もあります。もっとも、記事の内容自体が間違っていたら元も子もないですが...

最後に、参考までにそれぞれのフレームワークの関連語句を列挙したいと思います。あくまで関連語句なので、この語句が出てきたらこっちのフレームワークといったものではないです。

- Rubinの因果推論
    - ルービン因果モデル(Rubin causal model, RCM)
    - ネイマン-ルービン因果モデル(Neyman–Rubin causal model)
    - 潜在効果モデル(potential outcome model)
    - 反事実モデル(counterfactual model)
    - 仮定
        - SUTVA
        - Ignorability
        - Positivity
    - 反実仮想機械学習（Counterfactual Machine Learning, CFML）
        - Off-Policy Evaluation (OPE) / Off-Policy Learning (OPL)
        - Individual Treatment Effect (ITE) Prediction
        - Unbiased Recommender Learning / Unbiased Learning-to-Rank
- Pearlの因果推論
    - Directed Acyclic Graphs (DAG)Framework
    - graphical modeling
    - バックドア
    - 因果探索
    - 仮定
        - Consistency
        - Exchangeability
        - Positivity
    - do演算子
    - 構造方程式モデル(SEM)



[^1]: http://causality.cs.ucla.edu/blog/index.php/2012/12/03/judea-pearl-on-potential-outcomes/ 

[^2]: Neyman, J. (1990). On the application of probability theory to agricultural experiments. Essay on principles.Section 9. Translated and edited by D. M. Dabrowska and T. P. Speed from Polish original, which appeared in Roczniki Nauk Rolinciczych Tom X (1923) 1-51 (Annals of Agricultural Sciences). Statistical Science 5: 465-480.