統計的因果推論、統計的因果探索の勉強で読んだ本まとめ(2023/1版)
あけましておめでとうございます。年末年始の休みを利用して今年もまとめて本を読んでいたのですが、統計的因果推論に関する本を読んだらすごく面白くて今年はそれ関係の本をまとめて読みました。
今回の記事では私が読んだ本の軽い解説とどういう人向けかのまとめです。今後同じように統計的因果推論関係の勉強をしたいという人の参考になれば幸いです。
目次
因果推論の科学 「なぜ?」の問いにどう答えるか
まずは私が統計的因果推論おもしろい!と感じさせてくれた「因果推論の科学 「なぜ?」の問いにどう答えるか」です。本の内容としては、因果に関する研究が如何に難しいかやどれほど役立つのかはもちろん、因果に関する研究の歴史にも言及し、他の分野、とりわけ統計学とどういう関わりがあってどのように発展してきたか?について書かれています。個人的にはPearsonやFisherなど手法名で名前をしっている人たちがどういうことをしていた人なのかも少ししれて面白かったです。
こちらの本は一般人向けに因果推論がどういうものかを書いた本になっています。書いた人が研究者ということもあってか、一部数式も出てきますが、基本、誰でもわかるような表現で書かれていて、「因果推論ってなに?」ということを背景的なことを重点的に知りたいという方はとっつきやすい1冊ではないかと思います。一方、数式がでてきますが、詳しい説明はそれほどないので、式変形に関してや、統計的因果推論の実際の応用例をたくさん知りたいという方には向かない本です。また、統計的因果推論についてすでにご存じの方向けの説明になってしまいますが、この本は構造的因果モデルとdo演算子を利用した因果推論についての本で、潜在的結果変数の枠組みを使うRubin流の因果推論の話はほとんどでてこないので、後者のほうを知りたいという人にも向かないので注意してください。
入門 統計的因果推論
次は「入門 統計的因果推論」です。こちらは「因果推論の科学 「なぜ?」の問いにどう答えるか」の方が著者の一人に入っている統計的因果推論に関する教科書です。こちらは「因果推論の科学 「なぜ?」の問いにどう答えるか」とは違い、一般人向けではなく、技術者、研究者向けの本になっています。内容としては統計的因果推論の話をするのに必要な確率と統計、回帰、グラフィカルモデルの基本的な話から始まり、統計的因果推論で重要な介入効果や反実仮想とその応用について解説しています。「因果推論の科学 「なぜ?」の問いにどう答えるか」でも登場した因果グラフの具体例はもちろん、他にもいろいろ出てくるので、因果グラフのイメージはつきやすい印象です。一方、数式の式変形に関する記述が少なくて、この式どうしてでてきたの?という疑問が結構読んでてありました。また、因果グラフの構築の仕方に関する具体的な説明があまりなく、具体的な数値まで使った例というのはすくないので、実務に向けて勉強したい方はこの本だけだと、自分の持っているデータにどう適用すればいいのか?というのがわからないと思っています。
こちらの本、「因果推論の科学 「なぜ?」の問いにどう答えるか」の内容をちゃんと勉強したいという向け方はおすすめの本です。一方、構造的因果モデルとdo演算子を利用する法の因果推論の紹介が主で潜在的結果変数の枠組みを使うRubin流の因果推論の話を期待していると思っているのと違った、ということが起きると思っていますので注意してください。また、先ほども述べたように、この本だけでは統計的因果推論を使いこなすのは難しいと思っていて、実務で統計的因果推論を使いたいという方は後ほど紹介する具体的なコード付きの本を参考を読むとよいかと思っています。
統計的因果探索 (機械学習プロフェッショナルシリーズ)
次は「統計的因果探索」です。前の2冊は統計的因果”推論”に関する本でしたがこちらは統計的因果”探索”に関する本です。前の本では構造的因果グラフは与えられているものと仮定して説明されている部分が多く、どうやって作るか?についての言及がほとんどありません。この本は構造的因果グラフをどうやって作るか?ということに関して、LiNGAMという手法の説明をした本になります。
内容としては簡単な統計的因果推論の話はあるものの、基本は統計的因果探索がメインです。また、統計的因果探索に関してもLiNGAMに関する記述が多く、それ以外に関しては簡単な解説が少しある程度です。ただ、LiNGAMに関しては説明が幅広く、未観測共通原因がある場合のLiNGAMや、LiNGAMで仮定を緩めることに関する記述もあります。なので、LiNGAMを深堀したい人にはちょうどよい1冊かと思います。
一方、他の機械学習プロフェッショナルシリーズの本の例に漏れることなく、コードを使った説明がなかったり、細かい数式変形までは書いてないので、詳細に理解するのは結構大変な印象です。
こちらの本は他の本でLiNGAMに触れて面白そうだからもっと勉強したい!という人向けかなと思っています。
つくりながら学ぶ! Pythonによる因果分析 ~因果推論・因果探索の実践入門 (Compass Data Science)
次は「つくりながら学ぶ! Pythonによる因果分析 ~因果推論・因果探索の実践入門」です。
これまで紹介した本の内容をPythonで実際に実装するか?を勉強したい人には現状ベストな本です。内容としては構造的因果グラフとdo演算子を使った統計的因果推論の基本的な説明に加えて、LiNGAMとベイジアンネットワーク、最新の深層学習を使った因果探索の話に関する説明+Pythonを使ったコードになっています。特にPythonコードはJupyter Notebookで書かれていて、Google Colabを使えばすぐに実行できるように工夫されています。このため、これまで紹介した本のどれよりも具体的でかつ分かりやすい印象です。コードも一通り読みつつ実行もしてみましたが、きれいなコードで分かりやすかった印象です。
このため、今すぐ統計的因果推論や統計的因果探索を実務で使いたい人に対して一番最初に読むといい本はどれですか?と聞かれたらこれが良いと答えると思います。
統計的因果推論の理論と実装 (Wonderful R)
最後に「統計的因果推論の理論と実装 (Wonderful R)」です。
今までの本と同じく「統計的因果推論」と書かれていますが、こっちは潜在的結果変数の枠組みを使うRubin流の因果推論の本です。このため、因果グラフは一部出てきますが、do演算子についてはでてきません。ただ、かなり幅広い内容の本となっているので、Rubin流の因果推論について詳しく知りたいという人です。説明にはRによる具体的なコードが付いていて、言葉だけではわかりづらいところもコードで補えるような形になっています。
PythonはわからないけどRを使える人や、Rubin流の因果推論についても詳しく知りたいという人にはお勧めな本かと思います。
終わりに
年末年始のお休みで読んだ本のうち、統計的因果推論、統計的因果探索に関する本をまとめて紹介しました。最初に紹介した「因果推論の科学 「なぜ?」の問いにどう答えるか」が思いのほか面白くてその勢いのまま読んだという感じがしてますが、因果推論はいつかまとめてちゃんと勉強したいと思っていたのでちょうどよかったです。
今後、今日紹介した一部の本に関しては本に書かれていた説明だけだと意味がわからないところがあったので、そういうところに関してはまたメモとして記事にしておこうと思います。