思考の本棚

機械学習のことや読んだ本の感想を整理するところ

効果検証入門が良かったのでまとめてみた③

はじめに

 効果検証入門のまとめの続きです。前回はセレクションバイアスを軽減する基本的な方法である回帰分析についてまとめました。本記事ではセレクションバイアスを軽減する手段の1つである傾向スコアを用いた分析について説明していきます。 kutohonn.hatenablog.com

参考文献

効果検証入門


傾向スコア分析の仕組み

 傾向スコアとは各サンプルにおいて介入が行われる確率のことです。傾向スコアを用いた分析は、介入が行われた仕組みに着目しています。介入グループと非介入グループのデータの性質を近くする操作を行うことで、セレクションバイアスを軽減します。この操作は以下の仮定に基づいて行われます。 以下は回帰分析の仮定(CIA)と傾向スコア分析の仮定の比較をしたものです。

f:id:kutohonn:20200424183848j:plain

 セレクションバイアスを取り除くためには、目的関数Yに対して介入Zが独立している必要があることを前回説明しました。この独立性を満たすために回帰分析で考えられている仮定はCIAというものでした。これは共変量の値が同一のユーザの中で、目的関数Yに対して介入変数Zが独立しているという仮定です。一方、傾向スコアでは、傾向スコアP(X_i)が同一となるサンプルの中で、目的関数Yに対して介入変数Zが独立しているという仮定です。つまり回帰分析との違いは、介入が目的関数に対して独立であることを、共変量で条件づけるのではなく、傾向スコアで条件付ける点にあります。そのためには各データの傾向スコアP(X)を求めてあげる必要があります。


傾向スコアの推定方法

 傾向スコアを用いた分析では、上記で説明したように傾向スコアP(X)を求める必要があります。しかしながら傾向スコアP(X)を直接観測できる状況はほとんどないため、何かしらのモデルを用いて手持ちのデータから傾向スコアP(X)を推定する必要があります。この時多くの場合でロジスティック回帰が用いられます。(共変量数が多い場合は、勾配ブースティングも有効のようです。)ロジスティック回帰は介入変数Zの値を目的変数とし、以下のような回帰式となっています。

Z_i =\sigma(\beta X_i + u_i)
\sigma(x) = 1 / (1 + e^{-x})
\hat{P}(X_i) = \hat{Z}_i = \sigma(\hat{\beta}\ X_i)
u_i:誤差項, \beta:推定されるパラメータ, \sigma(X):シグモイド関数

 ここでのロジスティック回帰は、仮に変数Xと、0か1の値をとるYを与えると、Y=1となる確率を推定するモデルを得る方法と言えます。 ロジスティック回帰によって得られたモデルを利用することで傾向スコアの推定値\hat{P}(X_i)を得ることができます。ここで重要なのは傾向スコアの推定値\hat{P}(X_i)のみでモデルのパラメータ自体は特に分析する必要はありません。機械学習をやっている方だとモデルの妥当性や精度を考慮する必要があるように感じるかもしれません。しかしながら効果の分析において、傾向スコアの推定に用いたモデルの解釈は質の保証にはなりえません。そのため傾向スコアの推定を行ったモデルやそのパラメータに関しては特に解釈を行う必要はありません。


傾向スコアを用いた分析方法

ここでは傾向スコアを用いた2つの分析手法について説明します。

傾向スコアマッチング

 こちらはとてもシンプルなアイデアです。傾向スコアマッチングでは、介入ありグループから取り出したサンプルと傾向スコアの値が近いものを介入なしグループから取り出してペアにします。そしてペアの中で目的変数の差を算出し、これを全てのデータで行いその平均を効果の推定値とします。先ほど説明したように傾向スコアが同じ値を持つサンプルの中では介入変数ZY^{(0)}と独立して決定されていると考えられます。そのためこの中でグループ間の比較を行ってもセレクションバイアスの影響を受けることなく効果を推定することができます。

f:id:kutohonn:20200424184312j:plain

  マッチングにおいては傾向スコアごとにグループ間を比較し、それらの結果をグループに属しているサンプルの数を重みとした重み付きの平均を算出することで、効果を推定しています。マッチングによって推定される効果は以下のようになります。

\hat{\tau}_{match} = E\{E[Y|P(X), Z=1] - E[Y|P(X),Z=0]|Z=1\}

これは介入を受けたサンプルにおける介入効果の期待値で、ATT(Averaged Treatment effect on Treated)と呼ばれます。ATTは介入を受けたサンプルにおける効果なので、ATTの推定を行った値は平均的な効果を推定した値ATE(Average Treatment Effect)と結果が異なる場合があります。  

マッチングは実際の計算時間が長くなってしまう傾向にあります。また傾向スコアのモデルに含まれる変数が多くなると、傾向スコアが完全に一致しないため、傾向スコアの値が似ているサンプルをペアにする必要があります。


逆確率重み付き推定(IPW)

 逆確率重み付き推定(Inverse Probability Weighting;IPW)では、傾向スコアをサンプルの重みとして利用し、データ全体の介入を受けた場合の結果の期待値E[Y^{(1)}] と、介入を受けなかった場合の結果の期待値(E[Y^{(0)}])を推定します。そしてその後にこれらの差分を取ることで効果を推定します。 式を用いて説明します。

\bar{Y}^{(1)} = \sum_{i=1}^{N}{Z_i Y_i} / \sum_{i=1}^{N}{Z_i}

\bar{Y}^{(0)} = \sum_{i=1}^{N}{(1-Z_i) Y_i} / \sum_{i=1}^{N}{(1-Z_i)}

上記は単純にZ=1の時のY(1)、Z=0の時のY(0)の平均の推定値を示しています。これらの差から効果の推定を行うとセレクションバイアスの影響を受けてしまいます。そこで傾向スコアの推定値\hat{P}(X_i)を用いて以下のように変形します。

\bar{Y}^{(1)} = \sum_{i=1}^{N}\frac{Z_i Y_i}{\hat{P}(X_i)}/\sum_{i=1}^{N}\frac{Z_i}{\hat{P}(X_i)}

\bar{Y}^{(0)} = \sum_{i=1}^{N}\frac{(1-Z_i) Y_i}{1-\hat{P}(X_i)}/\sum_{i=1}^{N}\frac{(1-Z_i)}{1-\hat{P}(X_i)}

こちらがIPWで用いる重み付きの平均です。傾向スコアの推定値\hat{P}(X_i)の逆数を重みとして平均を取っています。詳細は省きますがこうすることによりセレクションバイアスの影響を低減することができます。あとはこれらの差分を取ることで効果を推定することができます。

\hat{\tau}_{IPW} = \bar{Y}^{(1)} - \bar{Y}^{(0)}

IPWでは先にE[Y^{(1)}]とE[Y^{(0)}]を推定し,その推定結果の差分を取ることで効果を推定しました。これはつまりデータ全体での平均的な効果を推定したことになります。これはATEの推定を行っていることになり、介入の効果がサンプルによって異なるような場合でもそれを考慮した平均的な効果が推定されることになります。


より良い傾向スコアとは

傾向スコアは回帰分析と同様、どのように推定してもセレクションバイアスを消し去ってくれるような便利な道具ではありません。 ここではより良い傾向スコアを得るためには何をする必要があるかについて説明します。 傾向スコアを用いた分析では、マッチングもしくは重み付けを行ったあとのデータにおいて、共変量のバランスが取れているかが重要です。


傾向スコアと回帰分析の比較

介入の効果の分析において、傾向スコアは共変量の影響を取り除くという点で回帰分析と役割はほぼ同じです。ではどのように使い分ける必要があるのでしょうか。以下に回帰分析と傾向スコアのメリットデメリットを整理してみます。

回帰分析 傾向スコア
メリット 手軽で取り組みやすい
モデリングが正しくできる場合、効果の標準誤差が小さくなる(検証結果の質が上がる)
Yに対するモデリングを行わなくて良い
情報を入手しやすいZの決定方法に関する調査を行うだけで良い
デメリット 目的関数と共変量の関係について入念にモデリングを行わないといけない マッチングは計算に時間を要するため大量のデータには不向き

よってYの値がどのような仕組みで決まるかに関して豊富な情報を持つ場合には、回帰分析を行うメリットが大きく、Yに関する情報があまりない場合には傾向スコアを用いるほうが望ましいです。


おわりに

今回は傾向スコアについてまとめてみました。傾向スコアのアイデアはシンプルながら個人的に非常に面白いなと思いました。