paint-brush
傾向スコアマッチングの実装方法: ステップバイステップガイド@ngl21
438 測定値
438 測定値

傾向スコアマッチングの実装方法: ステップバイステップガイド

Angela Nedopekina9m2024/11/04
Read on Terminal Reader

長すぎる; 読むには

傾向スコアマッチングは、サンプルのランダム化が機能しない場合に使用される追加の A/B テスト手法です。治療グループの傾向スコア (テストグループに割り当てられる確率) がすべてのユーザーに対してカウントされ、その後、製品の使用履歴データに基づいて、コントロールグループを形成する別のユーザーとユーザーがマッチングされます。その後、2 つのグループの結果が統計テストを使用して比較され、実験効果が測定されます。以下は PSM のフレームワークです。 1) 傾向スコアが推定され、マッチングされたユーザーが見つかるデータを収集します。 2) ロジスティック回帰などの方法を使用して傾向スコアを推定し、データセットでトレーニングして、ユーザーがテストグループに割り当てられるかどうかを予測します。すべてのユーザーについて、トレーニングされたモデルはテストグループに属する確率を生成します。 3) 傾向スコアに基づいてマッチングし、最近傍などのさまざまなマッチング方法が試されます。 4) バランス統計を計算してプロットを生成することで、治療グループとコントロールグループ間の共変量のバランスを確認します。バランスが悪い場合は、傾向スコアを推定するモデルを再指定する必要があることを示しています。 5) テストの効果は、一致したデータを使用して推定され、統計テストが実行されます。 PSM の実装には一定の制限があります。
featured image - 傾向スコアマッチングの実装方法: ステップバイステップガイド
Angela Nedopekina HackerNoon profile picture
0-item


最近、私は傾向スコアマッチングに基づく実験に取り組んでいましたが、情報を調べているうちに、このトピックに関する資料が不足していることに気づきました。私が見つけた記事のほとんどは、この方法の有効性に関するもので、理論に関してはあまり詳しく書かれていませんでした。そこで、傾向スコアマッチングフレームワークとその手順に関する包括的なガイドラインを皆さんと共有することにしました。

傾向スコア マッチングとは何ですか? また、なぜそれを適用するのですか?

「傾向スコアマッチングでは、傾向スコアの値が類似している治療を受けた被験者と治療を受けていない被験者のマッチングセットを形成します。マッチングサンプルが形成されると、結果を直接比較することで治療効果を推定できます。」


この定義は、1983 年に Rosenbaum PR、Rubin DB が論文「バイナリ結果を伴う観察研究における観測されないバイナリ共変量に対する感度の評価」で初めて示しました。


簡単に言えば、これはサンプルのランダム化が機能しない場合に使用される追加の A/B テスト手法です。処理グループの傾向スコア (テスト グループに割り当てられる確率) がすべてのユーザーに対してカウントされ、その後、製品の使用履歴データに基づいて、コントロール グループを形成する別のユーザーとユーザーがマッチングされます。その後、2 つのグループの結果が統計テストを使用して比較され、実験効果が測定されます。


図1. 傾向スコアマッチングの図解


しかし、A/B プラットフォームでコントロール グループを見つけられるのに、なぜ複雑な手法でコントロール グループを見つけるのでしょうか。分割機能が組み込まれた A/B プラットフォームを使用できない場合もあります。次のようなケースが考えられます。


  1. さまざまな部門横断的な作業とコミュニケーションのため、企業が A/B テストを実装するにはコストと時間がかかります (実際にそうなる可能性もあります)。
  2. 従来のテスト/コントロール実験を実施する場合、企業は収益化やマーケティング関連の機能/戦略をテストしながら利益を得られなくなる可能性があります。
  3. A/B テストに必要な、オフライン実験でのランダム サンプリングは、多くの場合不可能です。
  4. また、テスト対象オブジェクトがランダムに分散されていない場合、オンライン実験で A/B テストを適用することは不可能です。


4 番目のケースは、私が経験したことのある E コマース製品での出来事です。製品チームは、最初の注文を行ったユーザーにボーナスを与える機能をテストする準備をしていました。問題は、その機能が最初の注文を行ったすべてのユーザーに対して機能するわけではないということでした。注文金額などの特定の条件を満たす必要がありました。この場合、トラフィックをテスト グループとコントロール グループに分割することは、A/B テスト プラットフォームの限界を超えています。傾向スコア マッチングが選択肢となった理由は次のとおりです。

傾向スコアマッチングのフレームワーク

完全なフレームワークは、論文「 R による傾向スコア マッチング: 従来の方法と新機能」に基づいており、5 つのステップで構成されています (図 2)。


最初のステップは、傾向スコアを推定し、一致するユーザーを見つけるためのデータを収集することです。


2 番目のステップは、ロジスティック回帰などの方法を使用して傾向スコアを推定し、データセットでトレーニングして、ユーザーがテスト グループに割り当てられるかどうかを予測することです。トレーニングされたモデルは、ユーザーごとに、テスト グループに属する確率を生成します。


3 番目のステップは、傾向スコアに基づくマッチングを指し、最近傍などのさまざまなマッチング方法が試されます。


4 番目のステップでは、バランス統計を計算してプロットを生成することで、治療群と対照群間の共変量のバランスを確認します。バランスが悪い場合は、傾向スコアを推定するモデルを再指定する必要があることを示しています。


最後の 5 番目のステップでは、一致したデータを使用してテストの効果を推定し、統計テストを実行します。


図2. 傾向スコアマッチングフレームワーク

データ収集

この段階では、必要な変数、共変量、交絡因子を収集します。共変量 (X) は、実験 (Y) の結果に影響を与える可能性があるが、直接的な関心の対象ではない独立変数です。交絡因子は、調査対象以外の要因であり、テスト グループ (W) への割り当てと実験 (Y) の結果の両方に関連付けられています。


以下のグラフは変数の関係を示しています。X は共変量、W は治療割り当ての指標、Y は結果です。左側のグラフは交絡因子の関係を示し、右側のグラフは共変量と実験結果 (Y) およびテスト グループの割り当て (W) との独立した関係を示しています。


図 3. 共変量、テスト割り当て、結果の関係。


ここで強調しておきたいのは、ユーザーをテストグループ (W) に割り当てることに関連する変数のみを選択することは推奨されないということです。これは、バイアスを減らすことなくグループの違いを評価する際の精度を低下させる可能性があるためです ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1513192/ )。


いくつの変数を選択すればよいのかと疑問に思うかもしれません。答えは簡単です。結果の推定値を高め、研究の偏りを最小限に抑えるためには、変数の数が多いほど良いのです。ここで私が言っているのは、20~50、あるいはそれ以上の大きな数です。

傾向スコア推定

次のステップに進むには、データを収集し、治療グループに属するフラグを設定する必要があります。他のすべてのユーザーは、潜在的にコントロール グループを形成します。その後、ロジスティック回帰やランダム フォレストなどのさまざまな方法を使用して傾向スコアが推定されます。


私が読んだ記事のほとんどは、高精度は重要ではないため、ロジスティック回帰に固執し、他のより複雑なモデルを使用しないことを提案しています。しかし、その後のマッチング手法は精度に重点を置いています。


方法を選択すると、選択した共変量を使用してデータで予測モデルがトレーニングされ、ユーザーがテスト グループに属するかどうかを予測します。最後に、モデルは各ユーザーについて予測を行い、傾向スコア (テスト グループに属する確率) を計算します。ソフトウェアに関しては、Python では、基本的な scikit-learn から Prophet まで、あらゆる予測ライブラリを使用できます。

データマッチング

次のアクションは、テスト グループから一致するユーザーを見つけるためのマッチング テクニックを実装することです。そのため、コントロール グループが形成されます。


選択できるマッチング方法は、完全一致やマハラノビス距離マッチングなど、さまざまなものがあります。この記事では、主に最近傍マッチングの一般的な手法とそのバリエーションについて説明します。


最近傍マッチング (NNM) は 2 つのフェーズで構成されます。まず、アルゴリズムは、指定された順序で、処理グループからユーザーを 1 人ずつ選択します。次に、テスト グループの各ユーザーについて、アルゴリズムは最も近い傾向スコアを持つコントロール グループのユーザーを見つけます。これらの手順は、テスト グループまたはコントロール グループにユーザーが残らなくなるまで繰り返されます。Python には、PyTorch、 Psmpycausallibなどの PSM 専用のライブラリがあります。または、マッチング アルゴリズムを備えた従来のライブラリを使用することもできます。


従来の A/B テストに似たコントロール グループを作成する場合、グループ内のユーザーが一意でサンプル サイズが等しいため、置換なしの NNM メソッドを実装する必要があることを強調することが重要です。このメソッドでは、マッチング後に一致したペアが削除されるため、コントロール グループ内のユーザーは 1 回だけ使用されます。


キャリパーの有無にかかわらず NNM モデルを選択するオプションもあります。キャリパーは、一致したペアの傾向スコアの距離の上限を設定します。したがって、すべてのユーザーは、限られた範囲内の傾向スコアのユーザーとのみ一致できます。適格なユーザーが一致しない場合、そのユーザーは破棄されます。


なぜキャリパーを使用する必要があるのでしょうか? マッチングしたペアの傾向スコアの距離が大きい可能性がある場合に適用することをお勧めします。キャリパーのサイズを決定するときは、次の点を考慮してください。マッチングのパフォーマンスが満足のいくものでない場合は、より狭いキャリパーでマッチングを行うことができます。マッチングは成功したが、マッチングしたペアの数が少ない場合は、キャリパーを広げることができます ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8246231/ )。

バランス診断

この段階では、テスト グループとマッチしたコントロール グループの共変量がバランスされているかどうかが確認され、一致が正確であるかどうかが判定されます。

不均衡な共変量は A/B テスト結果の比較を不正確にするため、これは重要なステップです。

バランス診断には 3 つの方法があります。


- 記述統計:標準化平均差(SMD)または分散比(VR)

- 統計的検定

- 視覚化: QQプロット、ヒストグラム、ラブプロット


この記事では、主に最初のオプションと 3 番目のオプションに焦点を当てます。


まず、標準化平均差と分散比について説明しましょう。共変量がバランスが取れていることを示す値はどれでしょうか? SMD 値は 0.1 未満にすることをお勧めします。VR に関しては、1.0 に近い値はバランスが取れていることを示します


第二に、視覚化の方法に関しては、上記の記述統計の 1 つがすべての共変量に対して計算され、グラフで表示されます。私は個人的に、すべての共変量を 1 つのグラフに配置でき、マッチング前後の共変量を簡単に比較できるため、ラブ プロットを好みます。以下にグラフの例を示します。


図4. 調整前後の共変量SMDのラブプロット


マッチング後も共変量が不均衡な場合はどうなるでしょうか? たとえば、共変量である購入頻度と AOV の標準化平均差 (SMD) は約 0.5 で、必要な 0.1 を超えています。これは、共変量が不均衡であり、再マッチングが必要であることを意味します。

不均衡な共変量は PSM モデルが効果的ではないことを示し、再構築が必要です。したがって、数ステップ戻ってマッチングを繰り返す必要があります。

マッチングをやり直す方法は 4 つあります。


1. 新しい共変量を追加する

2. マッチング方法はたくさんあるので、簡単に変更しましょう

3.傾向スコアマッチングと完全一致法を組み合わせる

4. サンプルサイズを増やす

治療効果の推定

いよいよ、実験効果を推定する最終段階に近づいてきました。効果推定には、平均治療効果 (ATE)、治療対象に対する平均治療効果 (ATT)、コントロールに対する平均治療効果 (ATC) の 3 種類があります。基本的に、ATE はテスト グループとコントロール グループ間の主要指標の計算された差です (A/B テストで主要指標を測定するのと同様)。これは、下の図に示すように、治療効果の平均、ATE = 平均 (Y1 - Y1) として計算されます。


図5.治療効果の計算式と計算例


ATT と ATC は、それぞれテスト グループとコントロール グループの平均治療効果です。いずれも簡単でわかりやすい推定方法です。


ATE は最も一般的なタイプで、コントロール グループとテスト グループの主なメトリックを比較し、テストされた効果を測定するときに使用されます。一方、ATT と ATC は、すべてのグループに絶対的なメトリックが必要な場合に好まれます。最終的には、結果の統計的有意性を確認するために適切な統計テストが実行されます。

傾向スコアマッチングの限界

傾向スコア マッチング法の詳細な説明が終わったら、実際にそれを実践してみましょう。ただし、考慮すべき制限がいくつかあります。


1. ブートストラップは分散を増加させるため、傾向スコア マッチングと併用することは推奨されません。( https://economics.mit.edu/sites/default/files/publications/ON THE FAILURE OF THE BOOTSTRAP FOR.pdf )

 2. Stable unit treatment value assumption (SUTVA) principle must be met. 3. Propensity Score Matching implies using two machine learning algorithms (one for propensity score calculations and the second one for matching), which can be a pricy method to use for a company. On that account, it's advisable to negotiate with your team on A/B test conduction. 4. Finally, as discussed above, a big number of covariates are suggested to be used in the models. Thus, it requires a high-powered machine(-s) to calculate the results of the models. Again, it's a costly method to implement.

ただし、傾向スコアマッチングを実装できる場合は、それを実行してください。経験と実践的な知識を高めることをためらわないでください。今後の実験と機械学習の発見がうまくいくことを祈っています。



これらの質問のいくつかに答えてみませんか?テンプレートのリンクはここ. 弊社のライティングプロンプトのコンテンツをすべて読んでみたいと思いませんか?クリックしてくださいここ