データ駆動型回帰分析を実装してみた

はじめに

こんにちは。InsightEdgeのデータサイエンティストの小柳です。
本記事では昨年発売された『データ駆動型回帰分析 計量経済学と機械学習の融合』の3、4章を実装しました。
普段ノンパラメトリック、セミパラメトリックなモデルを組むことがほとんどないため、練習のようなものですが読者の方の参考になるところがあるかもしれません。
どの手法が実装時に重たそうかはぱっと見だとわからないので、実装することにも意義ががあるかなと思いました。 実装内容は以下です。

3章

  • カーネルを使った回帰、Nadaraya-Watson回帰、Local-Polynomial回帰、 バンド幅の最適化
  • シリーズ法回帰、シリーズ長の最適化
  • 回帰不連続デザインによる平均処置効果(ATE)推定

4章

  • 部分線形モデルとそのRobinson推定量
  • シングルインデックスモデルとそのIchimura推定量
  • 回帰調整法、IWP法、Hahnの推定法、Hiranoの推定法によるセミパラメトリックATE推定

実装関連

公開しているノートブックは以下のリンクからColabで実行できます。
Open In Colab (Section 3)
Open In Colab (Section 4)

同じものを画面に埋め込んだものが以下です。実行はできませんが結果だけなら御覧になれます。

まとめと感想

コード化したことで、教科書で省略されているところを含め理解が深まりました。
全体的に用意したデータが結構単純だったため、さほど手法により回帰性能に差が出にくかったのは予想外でした。
また、ノンパラの部分で最適バンド幅を出したはずなのに適当なバンド幅と比べてもそこまで真の関数に近づかなかったのも意外でした。 セミパラの方でもATE推定の際に、どの手法でも大して値が変わらないかと思いきやHiranoの手法での推定値が他の値と大きく異なり、因果効果の推定の難しさを感じました。

参考文献

末石直也 データ駆動型回帰分析 日本評論社 2024
実装コードリポジトリ: https://github.com/submergedcube/non-semipara