『因果推論入門〜ミックステープ』を読んだ

英語圏では結構有名らしい因果推論の本の日本語訳が出たので読んでみました。比較的新しい本で、理論だけでなくR(と原著のみStata)のコードが載っているのがこの界隈では珍しいようです。

実は少し前に原著を買って持っているのですが、ずっと積読状態でした。英語の本はどうしても腰が重くなります。今回訳書が出たということで最後まで読むことができ、やはり母国語で専門書が読めるというのは良いことだと思いました。

内容

内容としては、Rubin流の潜在アウトカムのフレームワークを基盤としつつ、因果関係の整理にDAGを使うという点でPearl流の因果推論も取り入れているのが特徴で、実際の研究者が道具として使えるようになることを意識して書かれているようです。扱っている手法自体は、マッチング・IPWRDD・DIDなど、和書では有名な『効果検証入門』とだいたい同じでした。

ただし、本書の方がページ数が多い分細かい理論的な点や、実務上注意すべき事柄・具体例が豊富に載っています。

例えば共変量マッチングの節では、共変量が完全には等しくないペアをマッチングする際のバイアスを議論し、その補正方法を紹介しています。DIDの章では、単に二群の差の差を取るだけでなく、プラセボ群を用いた三重差分にも詳しくページを割いています。また推定量の標準誤差について随所で言及されているのも実践的でした。

さらに、比較的新しい手法である合成コントロールにも(ページ数は少ないですが)触れられています。その意味で、『効果検証入門』を読んだ人でも得るものは多いと思います。

多くの章で、実際の研究から例を持ってきて結果の(完全ではないが)再現を試みているのも良いです。Rのコードも載っており、またリポジトリには有志の python コードも入っています。 github.com

イマイチだった点

あまり欠点を細かく書き連ねても仕方ないので、気になった点を箇条書きします

  • Rubin流の潜在アウトカムと、Pearl流のDAGを組み合わせて説明しているが、DAGの詳しい説明はないし、本文中でもグラフが解析において果たしている役割が大きくない
  • 説明が全体的に大雑把。未定義語が出てきたり、論理が冗長で入り組んでいたりする。出所のわからない数式がいきなり出てきたりする
  • 誤植が多い

所感

因果推論の各手法がコードつきで、実用上の注意点も込みで学べるので、読む価値はあると思います。

ただ本書で出てくるような例を見ていくと、因果推論をビジネスの現場で使う機会は限定的になるだろうなという印象を受けました。因果推論は手法ごとに多くの確かめづらい仮定が置かれます。推定に選んだモデルによっても結果が変わってきます。論文では sensitivity analysis としていくつかのパターンで推定して結論が変わらないことをチェックしたりしていますが、それでも何年も後になって別の研究者から疑義が挟まれたりすることもあるようです。もちろんこれは、計量経済学の研究コミュニティとしては健全なプロセスだと思いますが、因果推論がそのような難しさを孕む以上、ビジネスのちょっとした効果検証に使うのは慎重にならざるを得ないかと思います(何年も後になって、あの時の施策の効果検証には実は当時気づいていなかったバイアスが乗っていると気づいたとしてもどうしようもありません。そもそもそのような追試も滅多にされないでしょうが……)。

個人的にはA/Bテストが可能なら多少コストを払ってでもすべきで、それが原理的に困難な場合に、単純集計ではどう考えてもダメなので参考値として因果推論をする、くらいの感覚になりました。