Closed4

CausalImpactに関するまとめ

hanatahanata

概要

  • 介入前の y_t, x_t から、y_tを予測するモデルを作成する。
    • 介入前のデータを使っているので y_t(0) を予測するモデルを作っていることになる。
  • 予測モデルを用いて、介入後の期間の y_t(0)を予測し、実測値(y_t(1))との差分を算出する

注意点

  • 共変量 x_t は なくても良い
    • 共変量の有無で、予測精度に影響が出る。≒算出される効果の値に影響が出る。
  • 共変量 x_t介入の影響を受けない 変数を利用する必要がある

DIDや合成コントロール法との違いとして、処置群のデータだけで効果推定ができる というものがある。処置群しか存在しないケースでも利用できるのは強い。

hanatahanata

Pythonでの実装参考

https://qiita.com/nekoumei/items/648726e89d05cba6f432#causalimpact
https://www.lifull.blog/entry/2020/04/20/114200

Pythonでの実装はいくつか存在するっぽい。

Rでの実装

本家
https://github.com/google/CausalImpact

hanatahanata

tfcausalimpactでの実装例

公式リポジトリより。
データフレーム、介入前、介入後のindexを渡せばイイ感じにモデリングしてくれる。
一番左のカラムが目的変数、それ以降のカラムが共変量と自動で認識してくれるっぽい。

import pandas as pd
from causalimpact import CausalImpact


data = pd.read_csv('hoge')[['y', 'X']]

pre_period = [0, 69]
post_period = [70, 99]

ci = CausalImpact(data, pre_period, post_period)
print(ci.summary())
print(ci.summary(output='report'))
ci.plot()
このスクラップは2023/07/02にクローズされました