第317話|ABテストからExcelでもできるDID(差の差)推定へ

第317話|ABテストからExcelでもできるDID(差の差)推定へ

ABテストとは、例えばユーザをA群(処置群)B群(統制群)に分け、どちらのほうが好成績を納めるのかをデータで確かめたりするアプローチです。

  • A群(処置群):販促を受けた状態
  • B群(統制群):通常の状態(販促を受けていない状態)

このようにABテストの目的が、例えば販促効果を推定することだったりする場合、厳密なABテストではなくDID(差の差、difference in differences)推定で十分な場合があります。

DID推定の場合、ABテストの大前提となるランダムアサインメントによる均質性の前提が若干ゆるくなります

ランダムアサインメントとは、A群とB群にランダムに割り付けるということです。

DID推定の場合、A群B群の間に「共通トレンド仮定」を起きます。

共通トレンド仮定とは、A群とB群のトレンド(傾き)が同じという仮定です。

今回は、「ABテストからExcelでもできるDID(差の差)推定へ」というお話しをします。

ATEおよびATT、ATUの復習

ある小売チェーンで、ある販促の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)

ATEは、「A群(状況A)とB群(状況B)の差」です。A群とB群が均質な群であるならば、販促効果そのものになります。

ATTは、処置群であるA群の「状況Aと状況Bの差」つまり「A群(状況A)とA群(状況B)の差」です。A群(状況A)が実際に起こる事実で、A群(状況B)は実際に起こらない反実仮想です。

ATUは、統制群であるB群の「状況Aと状況Bの差」つまり「B群(状況A)とB群(状況B)の差」です。B群(状況B)が実際に起こる事実で、B群(状況A)は実際に起こらない反実仮想です。

A群とB群が均質な場合、ATE=ATT=ATUになります。現実は、そうならないことが多いです。

そして、実務で販促効果を見たいとき、販促を実施したA群の効果、つまりATTを知りたいケースが多いです。ここれから紹介するDID推定は、ATTを推定するための手法です。

このATTを推定する上で問題になるのは、反実仮想であるA群(状況B)の数値をどう求めるのか、です。

ATTを推定するDIDはA群とB群が均質でなくてもいい

リアルビジネスや政策、人生を左右する状況などに近いほど、A群とB群を均質化するのが難しくなります

均質化するとは、処置したかどうか(例では販促を実施したかどうか)以外の条件がすべて同じ、ということだからです。

DIDのいいところは、この均質仮定を満たさなくてもATTを推定できるところにあります。

DIDでは先ずBefore&Afterの差を計算する

DIDは、処置前後(Before&After)のデータを用います。

A群だけでなく、B群処置前後(Before&After)のデータを用います。

そのため、先ずは各群で処置前後(今回の例では、販促前後)の売上の差を計算します。

  • A群の販促前後の売上の差
  • B群の販促前後の売上の差

なんとなく、販促を実施したA群の「販促前後の売上の差」だけでもいいのでは、と思われがちですが、販促効果を見積もりたいのなら、それはNGです。

なぜならば、「A群の販促前後の売上の差」がプラスであっても、例えば市場そのものが拡大していたら、そのプラスの値は販促によるものではなく市場拡大によるものとも考えられます。

共通トレンド仮定を置くとATTが求まる

先程、次の2つの差を計算すると言いました。

  • A群の販促前後の売上の差
  • B群の販促前後の売上の差

ここで、共通トレンド仮定という強い仮定を起きます。

共通トレンド仮定とは、A群とB群のトレンド(傾き)が同じという仮定です。

例えば、A群が状況Bのときの「Before&Afterの差」と、状況BであるB群の「Before&Afterの差」同じとすることです。

要は……

A群(状況B)のBefore&Afterの差=B群(状況B)のBefore&Afterの差

……となります。

整理します。

ATTは、「A群(状況A)とA群(状況B)の差」です。そして、反実仮想であるA群(状況B)の値は分かりません

ここで、共通トレンド仮定を置くと、A群(状況B)の値を求めることができます。

Before&Afterの差の差でATTを見積もる

次の2つの「Before&Afterの差」のを計算すると、「A群(状況A)とA群(状況B)の差」であるATTを求めることができます。

  • A群の販促前後の売上の差
  • B群の販促前後の売上の差

以上から……

ATT=A群(状況A)のBefore&Afterの差ーB群(状況B)のBefore&Afterの差

これがDID推定の結果です。

売上などの目的変数に影響を及ぼす説明変数(この分野では共変量と呼ばれる)を考慮することもできます。その場合は、線形回帰(重回帰)モデルを構築します。要は、簡単だということです。

このDID推定の大きな弱点は、共通トレンド仮定です。この仮定を満たすB群を準備する必要があります。

今回のまとめ

今回は、「ABテストからExcelでもできるDID(差の差)推定へ」というお話しをしました。

ABテストとは、例えばユーザをA群(処置群)B群(統制群)に分け、どちらのほうが好成績を納めるのかをデータで確かめたりするアプローチです。

  • A群(処置群):販促を受けた状態
  • B群(統制群):通常の状態(販促を受けていない状態)

このようにABテストの目的が、例えば販促効果を推定することだったりする場合、厳密なABテストではなくDID(差の差、difference in differences)推定で十分な場合があります。

DID推定の場合、ABテストの大前提となるランダムアサインメントによる均質性の前提が若干ゆるくなりますランダムアサインメントとは、A群とB群にランダムに割り付けるということです。

DID推定の場合、A群B群の間に「共通トレンド仮定」を起きます。共通トレンド仮定とは、A群とB群のトレンド(傾き)が同じという仮定です。

この仮定を置くことで、販促効果であるATT(処置群における平均処置効果、Average Treatment effect on the Treated)を計算することができます。

各群で処置前後(今回の例では、販促前後)の売上の差を、つまり次の2つの「Before&Afterの差」を先ずは計算します。

  • A群の販促前後の売上の差
  • B群の販促前後の売上の差

この2つの「Before&Afterの差」のを計算すると、「A群(状況A)とA群(状況B)の差」であるATTを求めることができます

Excelでも簡単にでき、視覚的にも分かりやすい手法だと思いますので、興味のある方は試してみて頂ければと思います。