ランダムに割り振られることがなぜセレクションバイアスを低下できるのか考えてみた(セレクションバイアスとRCTのはなし)


概要

因果推論の話に入る前の、セレクションバイアスとRCTの説明が書かれています。

はじめに

マーケティング施策の結果を振り返る際、効果に求められる最も大事な要素は再現性です。

再現性を得るために大事なのは、因果関係の特定です。

というか「ビジネスに大事なのは因果関係を見つけること」です。

これを見誤ると、施策結果を前提とした次の施策の結果も見誤ってしまいます。

うまくPDCAを回すために、因果関係の特定は大事な要素です。

一方、効果を見誤りやすい要素にバイアスというものが存在します。こいつのせいで、因果関係を見誤ってしまう可能性があります。

画像引用 👇

このバイアスは、いろいろなシーンで見受けられるそうです。バイアスを取り除いて、正しく因果関係を見つけられれば、ビジネスの成功確率は高くなるでしょう。

それを取り除く方法も追々説明するとして、今回は、バイアス(セレクションバイアス)とは何か、こいつが施策結果にどう悪影響を与えるか勉強してみました。

前提

母集団における施策の効果について考えてみます。ユーザーに対して以下の2パターンのグループがあるとします。

Z_{i} = 1 (施策が行われた場合) \\
Z_{i} = 0 (施策が行われなかった場合) 

次に

売り上げについて

介入がある(施策が行われた)場合と、そうでない場合について考えています。

Y_{i} = Y_{i}^{(1)}  (Z_{i} = 1) \\
Y_{i} = Y_{i}^{(0)}  (Z_{i} = 0)

以下のように、数式を変換できます。

Y_{i} = Y_{i}^{(0)}(1-Z_{i}) + Y_{i}^{(1)}Z_{i}

用語の話

  • 介入がある(施策が行われた)場合と、そうでない場合で差(効果)があることを ポテンシャルアウトカムフレームワークという
  • ユーザー i の場合、観測できるのは、以下のどちらか
    • 観測されない側の結果を、ポテンシャルアウトカムという

ポテンシャルアウトカムフレームワークによる介入効果の推定

を、考えていきます。

仮に以下のようなデータがあるとします(本来の施策では、ポテンシャルアウトカムなので見えてない部分があることを想像してください)。

施策の効果は100になるように設定しています。

ユーザi 売上 Y Y(0) 施策実施していない場合 Y(1) 施策実施した場合 Z 施策が実施されたかどうか
1 300 300 400 0
2 600 500 600 1
3 600 500 600 1
4 300 300 400 0
5 300 300 400 0

施策の効果は、実施したものと、そうでないものの差で表せます。

Tau = 介入の効果を表す値。

\tau = Y^{(1)} - Y^{(0)}

ちなみに、左辺のTau は、介入の効果検証といった場面で用いられます。

  • 現実世界ではYとZしか観測できない
    • 差分の効果は直接計算できない
  • なので、Y(1)とY(0)グループで見た場合の平均の差で効果を推定します

平均的な効果

平均的な効果があるとは、Y(1)-Y(0)の差の期待値があることになります。

\tau = E[Y^{(1)}] - E[Y^{(0)}]

E[ ]: 母集団における平均を表す

つまり

介入の効果とは、母集団において

以下二つの差ということになります。

  • 介入を受けた場合の売り上げの平均
  • 介入を受けなかった場合の売り上げの平均

施策を行った場合の期待値を、行っていない場合の期待値とその効果の合計で表現できます。

E[Y^{(1)}] =  E[Y^{(0)}] + \tau

平均的な効果の比較とセレクションバイアス

仮に施策が実施され、売り上げデータが出てきたとします。

このデータから、最も簡単に効果を推定する方法は

介入を受けた場合の売り上げの平均と、介入を受けなかった場合の売り上げの平均の差を出すことです。

  • Z=1(介入を受けた場合)となるデータのYの平均と
  • Z=0(介入を受けなかった場合)のデータの平均の

差を数式で表すと

(N: サンプルサイズ)

表と式から

  • 施策実施してない売り上げ平均: 300
  • 施策実施した売り上げ平均: 600

平均の差は、300ですが、表からはY(1) - Y(0) = 100になることがわかります。

これからわかるのは、平均の差は、効果を過剰に見積もる可能性があることです。

なぜ過剰に見積もってしまうのか

まず

施策を実施してないユーザーの平均は、Z=0のときのY(0)の期待値を推定しています。

E[Y^{(0)} | Z=0]

施策実施したユーザーの平均は、Z=1のときのY(1)の期待値を推定しています。

E[Y^{(1)} | Z=1]

このように、ある変数(Z)がある値をとるとき、別の変数(Y)の期待値のことを条件付き期待値と呼びます。

よって、グループ間の平均の比較は、以下のような条件付き期待値の差を推定していることになります。

\tau = E[Y^{(1)}| Z=1] - E[Y^{(0)}| Z=0]

先ほどの効果の定義と違うのは、期待値に条件がついている点です。これがどう影響するのか見ていきます。

\tau = E[Y^{(1)}| Z=1] - E[Y^{(0)}| Z=0] \\

\tau = E[Y^{(1)}| Z=1] - E[Y^{(0)}| Z=1] + E[Y^{(0)}| Z=1] - E[Y^{(0)}| Z=0] \\

\tau = E[Y^{(1)} - Y^{(0)}| Z=1] + E[Y^{(0)}| Z=1]- E[Y^{(0)}| Z=0]

データから得たグループ間の比較の差は

E[Y^{(1)} - Y^{(0)}| Z=1]

E[Y^{(0)}| Z=1]- E[Y^{(0)}| Z=0] 

の、合計だと言えます。☝️これがセレクションバイアス

Zの値は、効果の大きさに無関係だとすれば

E[Y^{(1)} - Y^{(0)}| Z=1] = E[Y^{(1)} - Y^{(0)}|]

が成り立ちます。であれば、グループ間の差で効果を見込めることが可能になります。

このことから、セレクションバイアスとは、施策を実施する予定のグループと、そうでないグループの、施策実施していない場合の効果の差ということになります。

グループ分けをなんらかの傾向を考慮してしまうと、セレクションバイアスは0になりにくいでしょう

このことから、グループ分けにはランダムわけがセレクションバイアスを0にするという意味で有効であることがわかります。

一方で、RCTの実施は大変コストがかかる場合が多いそうです。

今回は前提となる次回以降では、RCTが実施できない場合でもバイアスの少ない分析結果が得られる手法を勉強し紹介していきます。

参考

アウトプット100本ノック実施中