因果推論:月次Event Study②
今回は月次Event Studyについて昨日の続きを考えたいと思います。
昨日の内容をベースに今日追加でやること
・相対月 event_month を作成
・Event Study回帰の実行
所要時間は20分ほどとなっています。
それでは、さっそく始めていきましょう!
データの紹介
今回用いるサンプルデータはこちらからダウンロードできます。
1行は、分析単位 (unit_id) における、ある時点(date)の観測値(visitors:来訪者数)を表しています。
列情報の説明
| 列名 | 型 | 数学記号 | 意味 |
|---|---|---|---|
| unit_id | string | なし | 分析単位のID |
| unit_name | string | なし | 分析単位の名称 |
| date | date | t | 観測日 |
| visitors | int | Yit | 来訪者数 |
| avg_dwell_minutes | float | Dit | 平均滞在時間(分) |
| avg_circulation_m | float | CitCit | 平均回遊距離(m) |
| treated | 0/1 | Ti | 処置群かどうか |
| post | 0/1 | Postt | 施策実施後期間かどうか |
| did | 0/1 | Ti×Postt | DiDの交互作用項 |
| event_time | int | k | 施策時点からの相対時間 |
| rain | 0/1 | Rit | 雨フラグ |
| weekend | 0/1 | Wt | 土日祝フラグ |
| holiday_season | 0/1 | Ht | 大型連休・繁忙期フラグ |
| local_event | 0/1 | Eit | 駅周辺イベントフラグ |
| station_users_idx | int | Si | 駅利用者規模指数 |
| commercial_density_idx | int | Mi | 商業集積指数 |
| land_price_idx | int | Li | 地価指数 |
| tourism_idx | int | Ui | 観光需要指数 |
| intervention_date | date | t0 | 介入開始日 |
| intervention_name | string | なし | 施策名 |
Pythonで実装
【参考】Event Study回帰モデルの施策効果を図る際の基準月と時間固定効果を図る際の基準月の違いについて
施策効果を図る際の基準月(event_month = -1)と時間固定効果を図る際の基準月(C(month_str)の参照カテゴリ)が異なっていても、係数の解釈がぶれることはありません。これらは異なる目的でモデルに含まれており、互いに補完し合っています。
それぞれの基準月の役割を確認しましょう。
-
treated:C(event_month, Treatment(reference=-1))の基準月(-1):- 目的: これは、処置群におけるイベント発生からの相対的な期間ごとの処置効果を推定するために設定されます。
-
解釈: 推定される各
δ_kの係数は、「処置群において、event_month = -1(施策開始直前)の時点と比較して、event_month = kの時点に追加でどれだけの効果があったか」を示します。この基準は、施策の前後での変化を明確に捉えるために、イベントスタディにおいて選択されたものです。
-
C(month_str)の基準月(例:"2024-01"):- 目的: これは、すべてのユニット(処置群・対照群を問わず)に共通して影響する時間的なトレンドや季節性をコントロールするために設定されます。
-
解釈: この係数は、「
"2024-01"の月と比較して、その月が訪問者数に与える共通の効果」を示します。この参照カテゴリは、通常は自動的に最も古い月が選ばれるため、event_monthの基準とは独立しています。
なぜ解釈がぶれないのか?
モデル式は、これらすべての要因を同時に考慮しています。
-
C(month_str)は、例えば「夏休み期間はどこでも訪問者が増える」「年末は消費が増える」といった、イベントとは関係なく、すべての場所に共通して起こる時間的変動を吸収します。 -
C(unit_id)は、例えば「渋谷駅周辺はそもそも人流が多い」「池袋駅周辺は商業施設が多い」といった、場所固有の不変的な特性を吸収します。 - そして、
treated:C(event_month, Treatment(reference=-1))の交互作用項は、これらの共通の時間トレンドや場所固有の特性をコントロールした上で、さらに処置群にのみ発生する、イベントに関連した時間的な効果を抽出しています。
したがって、C(month_str) の基準月は、共通のベースラインとなる時間的変動を適切に調整するためのものであり、処置効果(event_month の係数)の解釈を歪めることはありません。むしろ、より正確に処置効果を識別するための変数として機能しているのです。
これにより、イベントスタディの目的である「施策による純粋な効果」を、共通の外部要因から分離して評価できるため、解釈がより明確になります。



