前回のデータ分析講座(その301)ABテストからExcelでも出来る差の差推定へで、ABテストにおいて時系列性(Before&After)を加味したDID(差の差)推定についてお話ししました。ABテストとは、例えばユーザをA群(処置群)とB群(統制群)に分け、どちらのほうが好成績を納めるのかをデータで確かめたりするアプローチです。
- A群(処置群):販促を受けた状態
- B群(統制群):通常の状態(販促を受けていない状態)
このようにABテストの目的が、例えば販促効果を推定することだったりする場合、厳密なABテストではなくDID(差の差、difference in differences)推定で十分な場合があります。DID(差の差)推定で悩ましいのが、共通トレンド仮定を満たす統制群(control group)の設定にあります。それを乗り越えようとするの手法が、SC法(synthetic control method、合成コントロール法)です。今回は「時系列性(Before&After)を加味した因果推論でよく利用されるSC法(synthetic control method、合成コントロール法)」というお話しをします。
【この連載の前回:ABテストからExcelでも出来る差の差推定へ データ分析講座(その301) へのリンク】
1. DID推定の復習
ある小売チェーンで、ある販促のABテストを実施することになりました。そこで、次の2つの状況を作りました。
- 状況A:販促を実施する
- 状況B:販促を実施しない
A群に割り当てられた店舗は状況Aを、B群に割り当てられた店舗は状況Bになります。ここで、以下の3つの処置効果(今回の例では販促効果)を得ることができます。
- ATE:平均処置効果(Average Treatment Effect)
- ATT:処置群における平均処置効果(Average Treatment effect on the Treated)
- ATU:統制群における平均処置効果(Average Treatment effect on the Untreated)
ATTは、処置群であるA群の「状況Aと状況Bの差」つまり「A群(状況A)とA群(状況B)の差」です。A群(状況A)が実際に起こる事実で、A群(状況B)は実際に起こらない反実仮想です。
実務で販促効果を見たいとき、販促を実施したA群の効果、つまりATTを知りたいケースが多いです。DID推定は、ATTを推定するための手法で、問題になるのは反実仮想であるA群(状況B)の数値をどう求めるのか、です。DIDは、処置前後(Before&After)のデータを用います。A群だけでなく、B群の処置前後(Before&After)のデータを用います。そのため、先ずは各群で処置前後(今回の例では、販促前後)の売上の差を計算します。
- A群の販促前後の売上の差
- B群の販促前後の売上の差
ここで、共通トレンド仮定を置くと、A群(状況B)の値を求めることができます。
- A群(状況B)のBefore&Afterの差=B群(状況B)のBefore&Afterの差
以上から……
- ATT=A群(状況A)のBefore&Afterの差ーB群(状況B)のBefore&Afterの差
これがDID推定の結果です。売上などの目的変数に影響を及ぼす説明変数(この分野では共変量と呼ばれる)を考慮することもできます。その場合は、線形回帰(重回帰)モデルを構築します。要は、簡単だということです。このDID推定の大きな弱点は、共通トレンド仮定です。この仮定を満たすB群を準備する必要があります。
2. SC法とは?
簡単に言うと、統制群(control group)候補から、都合のいい統制群(control group)を擬似的に作ってしまおう! ということで、その意味ではマッチング理論の範疇になります。統制群(control group)候補と言っているのは、販促を受けていないB群(統制群)に分類されるデータ群のことです。
どのようにして擬似的に都合のいい統制群(control group)を作るかというと、販促を受けていないB群(統制群)に分類されるデータ群を、通常のABテストテストやDIDなどのように単純に平均化し色々計算するのではなく、データに重みを付けて計算します。
重みの付け方が重要で、都合のいい統制群(c...