【2024年版】因果推論・因果探索本の読書ガイド ー 代表14冊に掲載の分析手法星取表つき！ー

去年[【決定版】因果推論本の読書ガイド31冊〜『インベンス・ルービン 統計的因果推論』和訳記念！](https://qiita.com/aokikenichi/items/8a9974e54154a7867d71)を書きましたがその後良書が多数出ましたのでUpdateします。

# 因果推論の３流派
因果推論を初心者が読んでいくと、本によって全然違うことが書いてあって混乱します。実施難しい概念を扱っていることもあるのですが大きく３つの流派があり、この本は〇〇派だよ、と明記してないことが多くそれぞれ概念や用語が異なるのが原因かなと思います。以下時に記載ないものは流派をあまり意識しない入門か概論、それぞれの流儀にはR,　P(Cは私が読んでないのでここではなしです）と略記します。
- (１)統計学における因果推論（ルービンの因果モデル）
    - >「因果推論とは根本的に“欠損データ”の問題である」
- (2)心理学における因果推論（キャンベル）
    - >キャンベルは「内的妥当性を脅かすもの（Threats to internal validity）」をリストアップして、研究を始める段階で一つ一つ予防策を講じておくことで正しい因果関係を導くことができると考えました。
    - >ルービンがデータが目の前に既にあるものとして、どのように「統計解析」すれば正しい因果推論を行うことができるのかを考えたのに対して、キャンベルはデータを集める前の段階で、どのような「研究デザイン」を計画すれば正しく因果関係を導くことができるかを強調しました。つまり、ルービンとキャンベルの因果推論に関する考え方は対立するものではなく、補完的な意味合いを持っている
- (3)疫学の「因果関係ダイアグラム（Causal diagram）（パール）
    - >因果関係ダイアグラム
 
出所：
- [統計学における因果推論（ルービンの因果モデル）](https://healthpolicyhealthecon.com/2014/11/30/rubin_causal_model/)
- [心理学における因果推論（キャンベル）](https://healthpolicyhealthecon.com/2014/12/10/campbell-causal-inference/)
- [疫学の「因果関係ダイアグラム（Causal diagram）](https://healthpolicyhealthecon.com/2014/12/12/causal-diagram/)

参考
- [因果推論記事読み方のススメ　〜因果推論の２つのフレームワーク〜](https://qiita.com/kmjtr/items/0e71409115b503bbc71d)
- [データから因果関係を導く！〜ルービン？パール？全部のせ〜](https://recruit.gmo.jp/engineer/jisedai/blog/causalinference_taxonomy/)


# 因果推論本の読書ガイド
:::note info
- まず、一歩目、概要を知るのみならこれで十分
    - **[「原因と結果」の経済学―――データから真実を見抜く思考法](データ分析の力因果関係に迫る思考法)**
        - <a href="データ分析の力因果関係に迫る思考法" target="_blank"><img src="https://m.media-amazon.com/images/I/816H6X2y1eL._SY522_.jpg" width=100 /></a>
- データサイエンティストの人や因果推論・因果探索をもう一歩突っ込んでい知りたいならば
    - [因果推論: 基礎から機械学習・時系列解析・因果探索を用いた意思決定のアプローチ](https://amzn.to/3YC0CAm)
        - <a href="https://amzn.to/3YC0CAm" target="_blank"><img src="https://m.media-amazon.com/images/I/61a3di5TNZL._SY522_.jpg" width=100 /></a>
- 機械学習による因果推論・因果探索の最新手法を知りたいなら
    - [Pythonライブラリによる因果推論・因果探索［概念と実践］](https://amzn.to/3YFNyKc)
        - <a href="https://amzn.to/3YFNyKc" target="_blank"><img src="https://m.media-amazon.com/images/I/71hlNySLxfL._SY522_.jpg" width=100 /></a>
:::



## 入門

相関関係と因果関係の違いなどから因果推論の入門まで。数式なく事例に基づいてわかりやすく解説してある。
因果探索を学ぶにしてもまず因果推論の考え方を知ることが大事なのでまずはこれらの本から。

入門書としては2冊ある。それぞれ取り扱っている手法がやや異なるが、特にこだわりがなければ代表的な手法を扱っている **『「原因と結果」の経済学』** がまずはよいと思われる。
「集積分析」「パネルデータ分析」は他に比べるとややマイナーな手法のため。

- 本節での紹介書籍
    
    - [データ分析の力 因果関係に迫る思考法](https://amzn.to/4eZky5U)

|因果推論手法|「原因と結果」の経済学|データ分析の力因果関係に迫る思考法|
|:-:|:-:|:-:|
|RCT|O|O|
|自然実験|O|O|
|回帰不連続デザイン|O|O|
|集積分析|X|O|
|パネルデータ分析|X|O|
|差分の差|O|O|
|操作変数法|O|X|
|マッチング|O|X|
|回帰分析|O|X|

## 統計的因果推論

- 専門に扱うのでなければ **『「原因と結果」の経済学』** で十分
- データサイエンティストとして基礎的に知っておくのでれば **『因果推論』金本** で十分
- 新しい手法も知るのであれば『**Pythonライブラリによる因果推論・因果探索［概念と実践］**』
- コード例による実装・検証については「ツール・ライブラリ」の章で扱った通り。

- 本節での紹介書籍
    - 入門
        - [はじめての統計的因果推論](https://amzn.to/3AddKCO)
    - 基礎をしっかりと
        - [因果推論入門〜ミックステープ：基礎から現代的アプローチまで](https://amzn.to/4hAratx)
    - 潜在反応モデル
        - [調査観察データの統計科学: 因果推論・選択バイアス・データ融合](https://amzn.to/3Yq1sPo)
        - [インベンス・ルービン 統計的因果推論 (上)](https://amzn.to/3YmGHEf)
        - [インベンス・ルービン 統計的因果推論 (下)](https://amzn.to/4eYF5ru)
    - 構造的因果モデル
        - [構造的因果モデルの基礎](https://amzn.to/4fnSBEV)
        - [入門 統計的因果推論](https://amzn.to/3YpKDE6)
        - [統計的因果推論 -モデル・推論・推測-](https://amzn.to/3Up6ZVi)
    - 両方の理論をしっかりと
        - [反事実と因果推論](https://amzn.to/3YloO8W)
    - 観察研究に焦点
        - [ローゼンバウム 統計的因果推論入門: 観察研究とランダム化実験](https://amzn.to/3UqYrNw)
    - 反実仮想機械学習＋オフ方策学習
        - [反実仮想機械学習〜機械学習と因果推論の融合技術の理論と実践](https://amzn.to/3NFsEVh)
        - [強化学習から信頼できる意思決定へ](https://amzn.to/3NIQaRi)

```mermaid
flowchart LR
    subgraph 凡例
        ex0[推奨]:::push
        ex1[普通]
        ex2([類似書]):::like
        ex3["理論書(難しめ)"]:::theorem
    end
    classDef push fill:#ffa0a0
    classDef like stroke-dasharray:10 10
    classDef theorem fill:lightgray
```

```mermaid
flowchart TD
    A1["「原因と結果」の経済学"]:::push --> A2["はじめての統計的因果推論"]
    A1 <-.-> A11([データ分析の力<br/>因果関係に迫る思考法]):::like
    A2 --> A3["因果推論 金本"]:::push
    A3 --> A4["因果推論入門<br/>ミックステープ"]
    A4 ---> B1 & C1
    A3 --> ML1
    subgraph theory[理論をしっかりと]

        subgraph 構造因果モデル
            direction TB
            C1["構造的因果<br/>モデルの基礎"] --> C2["統計的因果推論<br/>モデル・推論・推測"]:::theorem
            C1 <-.-> C11([入門<br/>統計的因果推論]):::like
        end 
        subgraph 潜在反応モデル
            direction TB
            B1["調査観察データ<br/>の統計科学"] --> B2["インベンス・ルービン<br/>統計的因果推論"]:::theorem
        end
    end
    B2 ~~~ th1
    B2 ~~~ th22

    theory -.-|両方の理論をしっかりと|th1[反事実と因果推論]:::theorem
    theory -.-|観察研究に重点|th22["ローゼンバウム<br/>統計的因果推論入門"]:::theorem

    A3 --> CFML1

    subgraph new["新しい因果推論"]
      subgraph ML[機械学習による因果推論]
        ML1["Pythonライブラリによる<br/>因果推論・因果探索<br/>［概念と実践］"]
      end
      subgraph CFML["反実仮想機械学習"]
        CFML1[反実仮想機械学習]:::theorem --> CFML2[強化学習<br/>から信頼できる<br/>意思決定へ]:::theorem
      end
    end
    


    classDef push fill:#ffa0a0
    classDef like stroke-dasharray:10 10
    classDef theorem fill:lightgray
```

- その他の本
  - 読み物
    - 『[因果推論の科学 「なぜ?」の問いにどう答えるか](https://amzn.to/3NFsP2T)』
      - パールによる本で歴史から学べる
    - 『[RCT大全](https://amzn.to/3Ag1Isb)』
      - RCTの適用例と限界などの事例
  - 実験デザインの考え方
    - 『[政策評価のための因果関係の見つけ方 ランダム化比較試験入門](https://amzn.to/3YEOtuA)』
  - 分野特化
    - 傾向スコア
      - 『[傾向スコア (計量分析One Point)](https://amzn.to/3YEOPBq)』
    - 構造方程式モデリング
      - 『[原因をさぐる統計学―共分散構造分析入門](https://amzn.to/3NHm0hm)』
      - 『[入門 共分散構造分析の実際](https://amzn.to/3NIAkq6)』
    - 部分識別
      - 『[マンスキー データ分析と意思決定理論 不確実な世界で政策の未来を予測する](https://amzn.to/3O1S3ZP)』
        - 読み物として考え方を理解
      - 『[部分識別入門 計量経済学の革新的アプローチ](https://amzn.to/3UqTzYW)』
        - 和書で唯一？本格的なテキスト
  - 実装
    - Pythonによる
      - 『[つくりながら学ぶ! Pythonによる因果分析: 因果推論・因果探索の実践入門](https://amzn.to/3Uqw0zz)』
        - 当時はよい本だったが、『因果推論』金本、『Pythonライブラリによる因果推論・因果探索［概念と実践］』が出てきたので優先度低か
    - Rによる
      - 『[統計的因果推論の理論と実装](https://amzn.to/3A4I7LJ)』
        - 網羅的に解説・コード例がありRで実施するならば必須

:::note warn
以下は従来は良く用いられたテキストのようですが、昨今新しいテキストが出てきて不要かなと思い、私が読んでおらずです
- 宮川正巳『シリーズ〈予測と発見の科学〉1 統計的因果推論』
- 岩崎学『統計的因果推論 (統計解析スタンダード)』 
:::


## 統計的因果探索

因果推論よりも因果探索は難しく、「構造的因果モデル」を深く知る必要がある。

:::note info
- 専門でなく概要を知るのであれば因果探索の章といくつか読み物を。
    - [因果推論: 基礎から機械学習・時系列解析・因果探索を用いた意思決定のアプローチ](https://amzn.to/3YC0CAm)
- 専門に扱うのであれば 
    - [ベイジアンネットワーク](https://amzn.to/40lbfc5) 植野 が入り口となるか。
        - <a href="https://amzn.to/40lbfc5" target="_blank" /><img src="https://m.media-amazon.com/images/I/51fS83uEm4L.jpg" width=100 /></a>
- 機械学習による最新手法は因果推論と同様に
    - [Pythonライブラリによる因果推論・因果探索［概念と実践］](https://amzn.to/3YFNyKc)

:::

- 本節での紹介書籍
    - 読み物
        - [ベイジアンネットワーク技術ユーザ・顧客のモデル化と不確実性推論](https://amzn.to/3AgdHGa)
        - [BayoLinkSで実践するベイジアンネットワーク](https://amzn.to/4hoCbha)
    - グラフィカルモデル
        - [グラフィカルモデル (機械学習プロフェッショナルシリーズ)](https://amzn.to/48ovh7C)
        - [確率的グラフィカルモデル](https://amzn.to/4heHv6K)
    - LiNGAM
        - [統計的因果探索 (機械学習プロフェッショナルシリーズ)](https://amzn.to/3C0SeSi)

```mermaid
graph
    intro0[「原因と結果」の経済学] --> cd0
    subgraph cd[因果探索]
      direction TB
      
      cd0[因果推論 金本]
      cd0 --> scm1

      subgraph scm[構造的因果モデル]
        scm1[構造的因果モデルの基礎] --> scm2[統計的因果推論<br/>モデル・推論・推測]:::theorem
      end

      scm <---> gm

      cd0 --> gm1
      cd0 -.-|読み物で雰囲気を|gm11[ベイジアンネットワーク技術<br/>ユーザ・顧客のモデル化<br/>と不確実性推論]
      cd0 -.-|読み物で雰囲気を|gm12[BayoLinkS<br/>で実践するベイジアン<br/>ネットワーク]
      cd0 --> gmn
      gm1 --> gmn

      LiNGAM -.- gmn

      subgraph gm["グラフィカルモデル・<br/>ベイジアンネットワーク"]
        direction TB

        gm1[ベイジアンネットワーク<br/>植野]:::theorem
        
        
        subgraph gmn[Pythonによる実装]
          gmn0["LiNGAM, NOTEARS, SAM"]
          gmn1[Pythonによる因果分析]
          gmn2[Pythonライブラリによる<br/>因果推論・因果探索<br/>［概念と実践］]
        end

        gm1 -->|理論|gm2[グラフィカルモデル]:::theorem
        gm2 --> gm3[確率的グラフィカルモデル]:::theorem
        gm1 --> LI1
        subgraph LiNGAM
          LI1[統計的因果探索]:::theorem
        end


      end
    end

    classDef theorem fill:lightgray
    style gmn0 fill:#ffd,stroke:#ffd
```

- その他の本
  - ベイジアンネットワーク
    - Rによる実装
        - 『[Rと事例で学ぶベイジアンネットワーク〔原著第2版〕](https://amzn.to/4e4EjrN)』
          - 事例が豊富




## 統計的因果推論（統計的因果探索）のテキスト一覧

因果探索に特化した本はそれほど多くなく前述のフロー図で説明した通り。
因果推論の本については類似の本が多数あるため、一覧化した。
- Pearl流・Rubin流、両方を解説した本
- 因果推論のみと因果探索含めて解説した本
- 取り扱っている手法の違いなど
- まだ紹介していない本節での紹介本
    - [「ほとんど無害」な計量経済学―応用経済学のための実証分析ガイド](https://amzn.to/3YjK4Mh)
    - [Pythonで学ぶ効果検証入門](https://amzn.to/3YlKH83)

![因果推論本.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116049/603d6488-3d8a-836e-4242-ff89ac758679.png)



## 適用分野ごとの本

因果推論については広い分野に適用されており専門の本がかなり出ている。

```plantuml
@startmindmap
scale 700 width
+ 適用分野
++ IT
+++ 開発生産性
++++_ LeanとDevOpsの科学
++++_ DMMを支えるデータ駆動戦略
+++ Web最適化
++++_ ウェブ最適化ではじめる機械学習
++++_ A/Bテスト実践ガイド
++ ビジネス
+++ マーケティング
++++ 効果検証
+++++_ Pythonで学ぶ効果検証入門
+++++_ 効果検証入門〜\n正しい比較のための因果推論\n/計量経済学の基礎
+++++_ 施策デザインのための機械学習入門\n〜データ分析技術のビジネス活用における\n正しい考え方
++++ MMM
+++++_ エビデンス・ベースド・マーケティング
+++ 人事
++++_ 日本の人事を科学する
+++ 経営分析
++++ 「定性的な因果分析」の項
++++_ Pythonによる経済・経営分析\nのためのデータサイエンス
++++_ 「イノベーターのジレンマ」の経済学的解明
++ 実証分析
+++_ 実証分析入門
+++_ 実証分析のための計量経済学
+++_ 「ほとんど無害」な計量経済学
+++_ 計量経済学（有斐閣）
++ 社会政策
+++_ EBPM エビデンスに基づく政策形成の導入と実践
+++_ EBPMの経済学: エビデンスを重視した政策立案
+++_ 意思決定のためのEBPM
+++ 家族・教育
++++_ 「家族の幸せ」の経済学
++++_ 子育て支援の経済学
++++_ 「学力」の経済学
++ 政治
+++_ 民主主義の政治学
+++_ 政治学と因果推論
++ 医療
+++_ 医学研究のための因果推論レクチャー
+++_ 医学のための因果推論I・II
+++ 医療政策
++++_ 世界一わかりやすい「医療政策」の教科書
@endmindmap
```


## 定性的な因果分析

社会科学の分野で「質的研究」と呼ばれるうち因果推論・因果探索にあたるところを本調査では取り上げた。
一般に理論的なバックグラウンドが必要であったり、研究者の解釈に重きを置くところが多い。ただ、下記はデータサイエンティストによる因果分析にも参考になると思われる。

:::note info
- 田村正紀氏の一連の著作とくに『リサーチ・デザイン：経営知識創造の基本技術』はバランスよくまとめられて定性的な因果分析の入門によい。
    - [リサーチ・デザイン：経営知識創造の基本技術](https://amzn.to/3YH4JeJ)
        - <a href="https://amzn.to/3YH4JeJ" target="_blank"><img src="https://m.media-amazon.com/images/I/51njLHi9w0L._SY522_.jpg" width=100 /></a>
- 質的比較分析(QCA)は数件から数十件のデータがあれば論理的に導くことができる。そのためデータサイエンティストとしても導入しやすいと思われる。
    - [質的比較分析（QCA) : リサーチ・デザインと実践](https://amzn.to/4hkokZo)
        - <a href="https://amzn.to/4hkokZo" target="_blank"><img src="https://m.media-amazon.com/images/I/51d8864ZclL._SY522_.jpg" width=100 /></a>
- 因果ループは『DMMを支えるデータ駆動戦略』でも取り上げていられる通りIT企業内で取り上げる価値もあると思われる。
    - [DMMを支えるデータ駆動戦略](https://amzn.to/3YDqDPI)
        - <a href="https://amzn.to/3YDqDPI" target="_blank"><img src="https://m.media-amazon.com/images/I/61k2SdL3g2L._SY522_.jpg" width=100 />
:::

- 本節での紹介本
    - QCA
        - [経営事例の質的比較分析: スモールデータで因果を探る](https://amzn.to/4hoz6O2)
    - ナラティブ・アプローチ
        - [経営事例の物語分析:企業盛衰のダイナミクスをつかむ](https://amzn.to/4hnurvP)
    - 因果過程追跡
        - [因果過程追跡の基礎: 経営革新事例の即応研究法](https://amzn.to/4f0GtK2)
    - 因果ループ
        - [学習する組織](https://amzn.to/40kJUXp)
        - [社会システムモデリング](https://amzn.to/40qnVyF)

```mermaid
---
title: 定性的な因果推論（データが数十件以下しかない場合）
---
flowchart 
  start{DAGか<br/>因果ループか} -->|DAG|id1["リサーチ・デザイン<br/>:経営知識創造<br/>の基本技術"]
  id1 --> qca1 & na1 & cpt1 & dummy
  subgraph QCA[QCA]
    qca1[経営事例の質的比較分析<br/>:スモールデータで<br/>因果を探る] --> qca2["質的比較分析（QCA) : <br/>リサーチ・デザイン<br/>と実践"]
  end
  subgraph narrative[ナラティブ・アプローチ]
    na1["経営事例の物語分析<br/>:企業盛衰の<br/>ダイナミクス<br/>をつかむ"]
  end
  subgraph GTA[グラウンデッド・セオリー]
    dummy([『リサーチ・デザイン<br/>:経営知識創造<br/>の基本技術』<br/>に概ね記載あり])
  end
  subgraph CPT[因果過程追跡]
    cpt1[因果過程追跡の基礎]
  end

  start ---->|因果ループ|loop
  subgraph loop[因果ループ]
    direction TB
    loop0 -->|社会科学的分析|loop3[社会システム<br/>モデリング]
    loop0{目的により} -->|IT企業の<br/>開発生産性など|loop1[DMMを支える<br/>データ駆動戦略]
    loop1 -.->|引用|loop2
    loop0 -->|組織論として|loop2[学習する組織]
  end
```

----
- 計量経済学系の因果推論

https://qiita.com/aokikenichi/items/e9ff5e8e792d82985c0a

- その他因果推論・因果探索以外のデータ分析系の本の紹介

https://qiita.com/aokikenichi/items/0e064ecd3824fab9424d