見出し画像

傾向スコアによる逆確率重み付け(IPW)で平均処置効果を推定できる理由 〜数式を交えた解説〜

マネーフォワードCTO室AI推進部の tamiya と申します。
本稿では、施策の効果検証方法として用いられることのある傾向スコアによる逆確率重み付け(IPW)という手法について解説いたします。

はじめに

「この施策を行なったことが原因で得られた効果って、どれくらいですか?」

これを知るために、Webマーケティングにとどまらず様々な現場で日夜 A/Bテスト(ランダムコントロール実験)が行われる。

しかし、A/Bテストが容易に行えない状況というのも一方で存在する。

そのような場合でも施策の効果を推定する方法として、統計的因果推論が用いられる。

本記事では、統計的因果推論のうち、傾向スコアによる逆確率重み付け(IPW) という手法について、数式を交えながら解説を行う。

記号の定義

本記事では、以下のような記号を用いる。

  • $${T}$$ ... 処置変数(0 or 1)

    • キャンペーンの配信有無などを表す。$${T=0}$$: 配信なし、$${T=1}$$: 配信あり。

  • $${Y}$$ ... (観測される)結果変数

    • キャンペーンでいうと、施策後に計測したクリック数・CV数などの指標を表す。

  • $${Y^{(0)}, Y^{(1)}}$$ ... 潜在結果変数(それぞれ処置$${T=0,1}$$に対応)

    • もしキャンペーンを配信していたら/していなかったらどのような結果が得られたか?を表す。処置$${T}$$を行なった方しか観測されない。後述。

    • 次のような関係がある:$${Y = TY^{(1)} + (1-T)Y^{(0)}}$$

  • $${X}$$ ... 共変量

    • 処置変数$${T}$$ と潜在結果変数$${Y^{(0)}, Y^{(1)}}$$の両方に影響を与える変数。

    • 年齢・性別といったユーザー属性情報やログイン回数などの行動情報が該当しうる。後述。

なお、実際に収集したデータ$${\{(X_i, T_i, Y_i)\}_{i=1}^N}$$は、確率分布$${P(X, T, Y^{(0)}, Y^{(1)})}$$と関係式$${Y = TY^{(1)} + (1-T)Y^{(0)}}$$から生成されるものとして考える。

概要(これだけ抑えときゃいいっしょ)

  • 平均処置効果(Average Treatment Effects, ATE)は、「もし全員に処置を行った場合、全員に処置を行わなかった場合に比べて平均的にどれだけ差があるか?」を表したものである。

    • A/Bテストの場合、観測された結果$${\{Y_i\}_{i=1}^N}$$を処置の有無$${T=0, 1}$$別に平均をとって比較するが、この時の差はATE の推定値になっている。

    • A/Bテストと異なり処置$${T}$$の割り付けがランダムでなければ、処置の有無別に平均をとってもATEを推定できない。

  • 処置の割り付けが完全ランダムでなくても、以下のような特定の条件下では少し工夫をすることで ATE の推定を行える。

    • 条件付き独立性: 共変量$${X}$$が同じ値のサンプル内であれば処置の割り付け$${T=0,1}$$がランダムとみなせる

    • 正値性: 共変量$${X}$$がいかなる値のときでも、$${T=0,1}$$のどちらにも割り付けが行われ得る

  • 上記のような条件下での ATE 推定方法の一つに、傾向スコアによる逆確率重み付け (Inverse Probability Weightning, IPW) がある。

    • 各観測値$${\{Y_i\}_{i=1}^N}$$を傾向スコア$${e(X)=P(T=1|X)}$$の逆数で重みづけ平均をとる、というもの。

    • IPWによるATEの推定値を数式で表すと、以下のようになる:

$$
\begin{aligned}
\hat{\tau}_{\rm ATE} =&
\left( \sum_{i=1}^N\frac{T_i}{e(X_i)}\right)^{-1}\sum_{i=1}^N\frac{T_i}{e(X_i)}Y_i \\
&\qquad - \left( \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} Y_i.
\end{aligned}
$$

  • IPWなどを用いて A/BテストをせずにATEを推定しようとした場合、いかに前述の条件を満たすような共変量$${X}$$を見つけるか?がキーになる。

本論

平均処置効果(ATE)とは?

様々な分野で、「ある処置を行なったことが原因で得られた効果」を知りたいケースに遭遇する。

そのような際に着目する指標の一つに、平均処置効果(Average Treatment Effects、以下ATE)がある。

ATEは、「もし全員に処置を行なっていた場合に得られる結果の期待値」から、「もし全員に処置を行わなかった場合に得られる結果の期待値」を引いたものである。
これにより「処置を行なったことで、処置を行わなかった場合と比べて平均的にどれだけ結果が変化したか」を見ることができる。

数式を用いて表すと以下のようになる:

$$
\begin{aligned}
\tau_{\rm ATE} = E[Y^{(1)}] - E[Y^{(0)}]. \tag{1}
\end{aligned}
$$

$${Y^{(1)}, Y^{(0)}}$$ は潜在結果変数といって、各サンプルについて処置を行った場合($${T=1}$$)・行わなかった場合($${T=0}$$)にどのような結果が得られるか?を表したものである。
無論、結果変数は処置を割り付けた方しか観測できないため、現実には$${Y^{(1)}, Y^{(0)}}$$の両方を観測することはできない。

一方、上記の式(1)に従って直接ATEを求めようとすると、$${Y^{(1)}, Y^{(0)}}$$の両方を知っていないといけない。
従って、ATEを求めることは現実的には不可能に思える。

しかし、Webマーケティングなどではお馴染みのある方法を用いれば、比較的簡易にATEを求めることができる。

それが、A/Bテスト(ランダムコントロール実験、RCT)である。

なぜ A/B テストでは ATE が求まるのか?

A/Bテストでは、ランダムにパターンを分けて処置を行い、パターンごとに平均効果を集計して比較する。

ここでは簡単のため、$${T=1}$$をメール配信やメッセージ表示などの施策を行う処置群、$${T=0}$$ を何も配信・表示しないコントロール群とし、結果変数$${Y}$$をクリック数・CV数などのような指標であると考えていただきたい。

するとこの場合、最終的に比較する群別の結果変数平均値(平均クリック数・平均CV数)は、以下のように表される:

$$
\begin{aligned}
\frac{1}{N^{(1)}} \sum_{i\in\{i|T_i=1\}}Y_i &= \frac{1}{\sum_{i=1}^N T_i} \sum_{i=1}^N T_i Y_i \\
\frac{1}{N^{(0)}} \sum_{i\in\{i|T_i=0\}}Y_i &= \frac{1}{\sum_{i=1}^N (1-T_i)} \sum_{i=1}^N (1-T_i) Y_i.
\end{aligned}
$$

ただし、$${N^{(1)}, N^{(0)}}$$はそれぞれ処置群($${T=1}$$)・コントロール群($${T=0}$$)のサンプルサイズ(配信数や表示数)である。

このとき、両者の差はATE(の推定値)になっている:

$$
\begin{aligned}
\frac{1}{N^{(1)}} \sum_{i\in\{i|T_i=1\}}Y_i - \frac{1}{N^{(0)}} \sum_{i\in\{i|T_i=0\}}Y_i \\ \xrightarrow{p} &E[Y^{(1)}] - E[Y^{(0)}] = \tau_{\rm ATE}.
\end{aligned}
$$

つまり、(ランダムに割り付けを行った)A/Bテストの場合、二群間の平均値の差がATEと見做せるのである。

なぜそうなるかというと、以下の関係が成り立つからである:

$$
\begin{aligned}
\frac{1}{\sum_{i=1}^N T_i} \sum_{i=1}^N T_i Y_i \xrightarrow{p} E[Y^{(1)}] \\
\frac{1}{\sum_{i=1}^N (1-T_i)} \sum_{i=1}^N (1-T_i) Y_i \xrightarrow{p} E[Y^{(0)}]. \tag{2}
\end{aligned}
$$

このことは、以下から示される:

  • 群別の結果変数の平均値は、$${E[Y|T=0], E[Y|T=1]}$$の推定値になっている:

$$
\begin{aligned}
\frac{1}{\sum_{i=1}^N T_i} \sum_{i=1}^N T_i Y_i \xrightarrow{p} E[Y|T=1]\\ \frac{1}{\sum_{i=1}^N (1-T_i)} \sum_{i=1}^N (1-T_i) Y_i \xrightarrow{p} E[Y|T=0]
\end{aligned}
$$

  • 処置$${T}$$をランダムに割り付けている場合に限り、以下が成り立つ:

$$
\begin{aligned}
E[Y^{(1)}] = E[Y|T=1], \quad E[Y^{(0)}] = E[Y|T=0]
\end{aligned}
$$

後者については、ランダムな割り付けは潜在結果変数と割り付けが独立$${\{Y^{(0)}, Y^{(1)}\}\perp T}$$であることを意味するので、

$$
\begin{aligned}
E[Y^{(1)}] &= E[Y^{(1)}|T=1] \quad (\because {Y^{(0)}, Y^{(1)}}\perp T)\\
&= E[Y|T=1] \quad (\because Y = TY^{(1)} + (1-T) Y^{(0)})
\end{aligned}
$$

となることによる($${E[Y^{(0)}]}$$についても同様)。

以上から、A/Bテストの場合は、群別平均の差がATEの推定値になっていることがわかる。

処置の割り付けがランダムでない場合は、群別平均の差からATEが求められない

A/Bテストで群別平均の差を取ればATEが求まったのは、処置$${T}$$ の割り付けがランダムであった、つまり$${\{Y^{(0)}, Y^{(1)}\}\perp T}$$ が成り立っていたからである。

逆にいうと、処置の割り付けがランダムでない場合は、群別平均の差を取ってもATEは求まらず、バイアスのかかった値が得られてしまう。

メール配信の例を用いて説明する。

処置$${T}$$をキャンペーンメール配信の有無とし、結果$${Y}$$を課金プランへの申し込み有無とする。

ここで、事前にメール配信許諾をとっている全ユーザーにはキャンペーンを配信して、それ以外のユーザーには何も配信しなかったとする。
この時、キャンペーンメール配信対象ユーザーを処置群$${T=1}$$、それ以外を非処置群$${T=0}$$とみなして先ほどと同様に結果を比較できるだろうか?

答えは NO である。

なぜなら、メール配信許諾が得られているユーザーと得られていないユーザーではユーザーの性質が異なるため、
処置の割り付け$${T=1}$$がランダムといえず$${{Y^{(0)}, Y^{(1)}}\perp T}$$が成り立つとは限らないからである。

例えば、配信を許諾しているユーザーは元からサービスに対して好感を持っていて、課金の案内にも反応しやすい人が多い可能性がある。
そのような場合、キャンペーンメールを配信したユーザー群の方が配信しなかった方より課金申し込み率が高かったとしても、
実際には何も配信しなくても同じくらいの課金申し込みが得られていた可能性が否定できない。

きちんと「キャンペーンメールを打ったことが原因で課金が増えた」ことを確かめるには、(メール許諾ありの中でも)配信あり・なしをランダムに分けて比較しなくてはいけない。

処置の割り付けがランダムでなくても、ATEを推定できるケース

このように、処置の割り付けがランダム$${\{Y^{(0)}, Y^{(1)}\}\perp T}$$でないと、群別平均の比較ができず、ATEが求められないことがわかった。

一方で、特定の条件が揃っていれば、処置の割り付けが完全にランダムとまでいかなくても、少し工夫をすればATEを求められるケースも存在する。

これができる条件は以下の通りである:

$${X}$$を、処置変数$${T}$$と潜在結果変数$${\{Y^{(0)}, Y^{(1)}\}}$$の両方に影響を与える変数(=共変量)とする。

  1. 条件付き独立性
    共変量$${X}$$が同じ値のサンプル内であれば処置の割り付け$${T=0,1}$$がランダムとみなせる

$$
\begin{aligned}
{\{Y^{(0)}, Y^{(1)}\}\perp T |X}
\end{aligned}
$$

  1. 正値性
    共変量$${X}$$について、いかなるときも$${T=0,1}$$のどちらにも割り付けが行われ得る

$$
\begin{aligned}
0<P(T\vert X)<1
\end{aligned}
$$

このような条件が成立している場合には、いくつかの方法によりATEの推定を行えることが知られている。

先ほどのメールキャンペーンの例でいうと、ログイン回数が多い人ほど課金しやすいのと同時にメール配信許諾率も高かったとする。
ここで、ログイン回数が同じユーザーの中であればメール配信許諾有無がランダムに分布していると考えられ、かつどんなにログイン回数が多くても許諾率が100%になることはない(逆にログイン回数が少なくても許諾率が0%にならない)場合であれば、ログイン回数を上記の変数$${X}$$として扱うことができる。

上記のような条件を満たしている際に利用できる ATE 推定方法の一つに、傾向スコアによる逆確率重み付け(IPW)というものがある。

以降では、IPWについて解説を行う。

傾向スコアによる逆確率重み付け(IPW)とは?

条件付き独立性と正値性の条件を満たしている場合、傾向スコア$${e(X)}$$を用いてATEを以下のように推定することができる:

$$
\begin{aligned}
\hat{\tau}_{\rm ATE} =&
\left( \sum_{i=1}^N\frac{T_i}{e(X_i)}\right)^{-1}\sum_{i=1}^N\frac{T_i}{e(X_i)}Y_i \\
&\qquad - \left( \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} Y_i \\
&\xrightarrow{p} E[Y^{(1)}] - E[Y^{(0)}] = \tau_{\rm ATE}
\end{aligned}
$$

なお、傾向スコアとは、処置$${T=1}$$に割り付けられる条件付き確率のことであり、

$$
\begin{aligned}
e(X)=P(T=1 \vert X)
\end{aligned}
$$

のように定義される。

上記のATE推定式は、割り付けがランダムだったときに成り立った式(2)の

$$
\begin{aligned}
\frac{1}{\sum_{i=1}^N T_i} \sum_{i=1}^N T_i Y_i \xrightarrow{p} E[Y^{(1)}]\\
\frac{1}{\sum_{i=1}^N (1-T_i)} \sum_{i=1}^N (1-T_i) Y_i \xrightarrow{p} E[Y^{(0)}]
\end{aligned}
$$

という関係を、それぞれ

$$
\begin{aligned}
\left( \sum_{i=1}^N \frac{T_i}{e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{T_i}{e(X_i)}Y_i \xrightarrow{p} E[Y^{(1)}] \\
\left( \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} Y_i \xrightarrow{p} E[Y^{(0)}] \tag{3}
\end{aligned}
$$

のように置き換えたものに相当する。

これは、サンプルごとに$${T_i/e(X_i)}$$ないし$${(1-T_i)/\{1-e(X_i)\}}$$で重みをつけて$${Y_i}$$の平均をとったことに対応する。
このような理由から、上記の推定方法を逆確率重み付けと呼ぶ。

この方法を用いれば、潜在結果変数$${\{Y^{(0)}, Y^{(1)}\}}$$がわからなくても、
傾向スコア$${e(X)}$$さえわかっていれば観測結果$${\{Y_i\}_{i=1}^N}$$からATEを推定できる。
なお、傾向スコアについては、多くの場合はlogistic回帰などの分類モデルにより推定したものを用いる。

以下、なぜこのような方法で ATE の推定を行えるかを解説する。

IPWによるATE推定式の導出

上記で

$$
\begin{aligned}
\left( \sum_{i=1}^N \frac{T_i}{e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{T_i}{e(X_i)}Y_i \xrightarrow{p} E[Y^{(1)}]\\
\left( \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} Y_i \xrightarrow{p} E[Y^{(0)}]
\end{aligned}
$$

ということを持ち出した(式(3))。
このうち前者の処置あり$${E[Y^{(1)}]}$$の式を示すためには、以下の2つの関係に着目する:

$$
\begin{aligned}
E[Y^{(1)}] = E\left[\frac{TY}{e(X)}\right] \tag{4.a} 
\end{aligned}
$$

$$
\begin{aligned}
\left( \sum_{i=1}^N \frac{T_i}{e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{T_i}{e(X_i)}Y_i \xrightarrow{p} E\left[\frac{TY}{e(X)}\right] \tag{4.b} 
\end{aligned}
$$

以降では上記の2つの式を示す。

(なお、$${E[Y^{(0)}]}$$についても同様の手順で示すことができる。)

式(4.a)

星野(2009)を参考にすると、以下のように示せる:

$$
\begin{aligned}
E\left[\frac{TY}{e(X)}\right] &=  E\left[ \frac{T\{TY^{(1)} + (1-T)Y^{(0)}\}}{e(X)}\right] \\
&= E\left[ \frac{TY^{(1)}}{e(X)} \right] \quad \dots (\ast)\\
&= E_X\left[\frac{1}{e(X)} E\left[TY^{(1)} \middle\vert X\right] \right]\\
&= E_X \left[ \frac{1}{e(X)} E\left[ T \middle \vert X \right] E \left[ Y^{(1)} \middle \vert X \right] \right]  \quad (\because Y^{(1)}\perp T \vert X) \\
&= E_X \left[ E \left[ Y^{(1)} \middle \vert X \right] \right] \quad \left(\because E[T\vert X] = \sum_{T=0}^1 T P(T\vert X) = P(T=1\vert X) = e(X)\right)\\
&= E[Y^{(1)}]
\end{aligned}
$$

途中、$${A\perp B \vert C \Rightarrow E[AB\vert C]=E[A\vert C] \,E[B\vert C]}$$ を用いた。

なお上記の(*)の部分にて、期待値を取る際に着目する変数がしれっと$${Y}$$ から $${Y^{(1)}}$$に置き変わっている。
この部分をきちんと説明するために、どの変数について期待値を計算しているのかを明確にしながら詳細に書いてみる:

$$
\begin{aligned}
E_{(Y, X, T)}\left[\frac{TY}{e(X)}\right] &= \sum_{T=0}^1 \int \int \frac{TY}{e(X)} P(Y, X, T)dYdX\\
&=  \int \int \frac{Y}{e(X)} P(Y, X, T=1)dYdX\\
&= \int \int \frac{Y^{(1)}}{e(X)} P(Y^{(1)}, X, T=1)dY^{(1)}dX \\
&=\sum_{T=0}^1 \int \int \frac{TY^{(1)}}{e(X)} P(Y^{(1)}, X, T)dY^{(1)}dX \\
&= E_{(Y^{(1)}, X, T)}\left[\frac{TY^{(1)}}{e(X)}\right]
\end{aligned}
$$

式(4.b)

$$
\begin{aligned}
\left( \sum_{i=1}^N \frac{T_i}{e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{T_i}{e(X_i)}Y_i \xrightarrow{p} E\left[\frac{TY}{e(X)}\right] \tag{4.b}
\end{aligned}
$$

を示すには、以下の二つの関係を用いる:

$$
\begin{aligned}
\frac{1}{N} \sum_{i=1}^N \frac{T_i }{e(X_i)} Y_i \xrightarrow{p} E\left[\frac{TY}{e(X)}\right] \tag{5.a} 
\end{aligned}
$$

$$
\begin{aligned}
\frac{1}{N} \sum_{i=1}^N\frac{T_i}{e(X_i)} \xrightarrow{p}1. \tag{5.b}
\end{aligned}
$$

後者の式(5.b)については、以下のように示される:

$$
\begin{aligned}
\frac{1}{N} \sum_{i=1}^N\frac{T_i}{e(X_i)}\xrightarrow{p}& E\left[\frac{T}{e(X)}\right]\\
&= E_X\left[\frac{1}{e(X)}E_T\left[T \vert X\right]\right]\\
&=E_X\left[\frac{1}{e(X)}e(X)\right] \quad (\because E_T[T\vert X] = e(X))\\
&=1.
\end{aligned}
$$

式(5.a)を式(5.b)で割ることで、式(4.b) が示される。

導出まとめ

上記と同様に$${T=0}$$の場合についても、

$$
\begin{aligned}
E[Y^{(0)}]&=E\left[\frac{(1-T)Y}{1-e(X)}\right]\\
\frac{1}{N} \sum_{i=1}^N \frac{1-T_i }{1-e(X_i)} Y_i &\xrightarrow{p} E\left[\frac{(1-T)Y}{1-e(X)}\right]\\
\frac{1}{N} \sum_{i=1}^N \frac{1-T_i }{1-e(X_i)} &\xrightarrow{p} E\left[\frac{1-T}{1-e(X)}\right]=1\\
\end{aligned}
$$

という関係を用いれば、

$$
\begin{aligned}
\left( \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} Y_i \xrightarrow{p} E[Y^{(0)}]
\end{aligned}
$$

を示すことができる。

以上を合わせて、

$$
\begin{aligned}
&\left( \sum_{i=1}^N\frac{T_i}{e(X_i)}\right)^{-1}\sum_{i=1}^N\frac{T_i}{e(X_i)}Y_i \\
&\qquad - \left( \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} \right)^{-1} \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} Y_i \\
&\xrightarrow{p} E[Y^{(1)}] - E[Y^{(0)}] = \tau_{\rm ATE}
\end{aligned}
$$

が示される。

補足:サンプル平均の分母について

式(3)の代わりに、以下のようにサンプルサイズ$${N}$$で割った式を用いることもある:

$$
\begin{aligned}
\frac{1}{N} \sum_{i=1}^N \frac{T_i}{e(X_i)}Y_i \xrightarrow{p} E[Y^{(1)}]\\
\frac{1}{N} \sum_{i=1}^N \frac{1-T_i}{1-e(X_i)} Y_i \xrightarrow{p} E[Y^{(0)}]
\end{aligned}
$$

どちらのパターンであってもサンプルサイズが大きくなるにつれ同じ値に確率収束することには変わりないが、
式(3)のように$${N}$$ではなく重みの和で割った方が重み付き平均として一般的であるほか、
式(3)の方が推定値の分散が小さいと言われている(星野2009)。

まとめ: A/Bテストを行わずに処置効果を推定するためには?

本記事で述べたように、A/Bテストのように処置の割り付けがランダムでない場合でも、条件次第では傾向スコアによる逆確率重み付け(IPW)などによって平均処置効果(ATE)を推定することができる。

しかし、これを行うためには、条件を上手い具合に満たす共変量$${X}$$を見つけられるかが重要になる。
そのためには、ビジネス知識も最大限駆使しつつ探索的にデータを見ていく必要がある。

可能な限りは初めからA/Bテストを行うことが望ましいが、もしなんらかの事情がありそれができない場合は、IPWをはじめとした統計的因果推論の利用を検討してみるのもよいだろう。

参考文献

  1. 高橋将宣、統計的因果推論の理論と実装、共立出版(2022)

  2. 星野崇宏、調査観察データの統計科学―因果推論・選択バイアス・データ融合、岩波書店(2009)

この記事が気に入ったらサポートをしてみませんか?