目標

傾向スコアマッチングについて理解する

傾向スコアマッチング

傾向スコアマッチングは、処置群と対照群を似た属性に揃えて比較することで、観察データから因果効果を推定する方法です。「観察研究でできるだけRCTに近づける工夫」といえます。

例えば、観察データ(顧客が自分で広告をクリックする/しないなど)では、処置群と対照群の属性が偏ってしまうことがよくあります。このようなデータを、そのまま比較すると「施策の効果」だけでなく「属性の違い」まで混じって結果に影響を与えてしまいます。

そのような、観察データのバイアスを軽減させる手法で、施策そのものの因果効果を推定しやすくなります。ただし、傾向スコアは「観測できる要因」に基づいて推定するため、「観測できない要因(例:やる気、健康状態など)」によるバイアスまでは完全に取り除けない点に注意が必要です。

傾向スコアマッチングの実施例

サンプルデータ(架空例)

データはID、処置(介入)の有無、年齢、年収、購買回数、今回の購入の有無です。

  • A: ID → 顧客番号(単なる識別子)
  • B: 処置T (1/0) → 施策(介入)を受けたかどうか
    • 1 = 処置群(例:広告をクリックした人)
    • 0 = 対照群(例:広告をクリックしなかった人)
  • C: 年齢 → 顧客の年齢(実数値)
  • D: 年収(百万円) → 年収(単位は百万円なので 4.8=480万円など)
  • E: 購買回数(過去6か月) → 直近6か月の購買頻度(整数)
  • F: 購入Y (0/1) → 今回の購入結果(目的変数)
    • 1 = 購入した
    • 0 = 購入しなかった

傾向スコアを推定(ロジスティック回帰をソルバーで)

PSMでは「処置を受ける確率」=傾向スコア pi=P(T=1∣X) を推定します。Excel標準ではロジスティック回帰がないのでソルバーで最尤推定を行います。

係数セルを用意

  • 切片 a(初期値 0)
  • 係数 b1​(年齢)
  • 係数 b2​(年収)
  • 係数 b3​(購買回数)
  • セルH3=1/(1+EXP(-( $L$2 + $L$3D3 + $L$4E3 + $L$5*F3 )))
  • セルI3=C3LN(H3) + (1-C3)LN(1-H3)
  • セルL7=SUM(I3:I14)

ソルバー設定(尤度最大化)

出力結果:傾向スコア

近傍マッチング(Nearest Neighbor)

処置群(T=1)の各行に対し、対照群(T=0)の中から「傾向スコアが最も近い1件」を探して対応づけます。

MatchedIDの列を作成して次の数式を入力(Excel365)

J3==IF(C3=1,
LET(
pt, H3,
ctrlIDs, FILTER($B$3:$B$14, $C$3:$C$14=0),
ctrlPs, FILTER($H$3:$H$14, $C$3:$C$14=0),
INDEX( SORTBY(ctrlIDs, ABS(ctrlPs-pt), 1), 1 )
),
""
)

対応付けの結果ID「9」のものが傾向スコアで最も近いと確認できます。

セルK3=IF(C3=1, XLOOKUP(J3, $B$3:$B$14, $G$3:$G$14), “”)

※XLOOKUPでは、検索値を「J3」として、検索範囲を$B$3:$B$14としています。この時の戻り値を$G$3:$G$14とし、MatchedYの値としています。

単純比較(処置群 vs 対照群 の購入率差)

処置Y:F(1):ID:1→ 1 、ID:2→ 1、ID:3→ 0、ID:4→ 1、ID:5→ 0

処置Y:F(1):(1 + 1 + 0 + 1 + 0) / 5 = 0.60

処置Y:F(0):ID:6→ 1 、ID:7→ 1、ID:8→ 0、ID:9→ 1、ID:10→ 0、
ID:11→ 0、ID:12→ 0

処置Y:F(0):(0 + 0 + 0 + 1 + 0 + 1 + 0) / 7 = 0.286

未調整の平均差:0.60 – 0.286 = 0.314
👉 単純比較では「処置群の方が購入率が約31ポイント高い」。

効果 ATT(Average Treatment effect on the Treated)の推定

ATTは「実際に処置を受けた人にとって、その処置がどれだけ効果を持ったかの平均」を示す指標(処置群に対する平均処置効果)で、次のように数式で表現できます。

  • Y(1):処置を受けた場合の結果(実際に観測できる)
  • Y(0):処置を受けなかった場合の結果(反実仮想なので直接は観測できない → 対照群で代用)

処置行について「処置行のY「1」 − マッチ相手の対照Y(MatchedY)」を取り、平均します(ATT)。

ID:1→ 1 – 1 = 0、ID:2→ 1 – 0 = 1、ID:3→ 0 – 0 = 0、
ID:4→ 1 – 1 = 0、ID:5→ 0 – 1 = -1

処置Y:F(1):(0 + 1 + 0 + 0 + (-1)) / 5 = 0

解釈:このマッチング条件では「処置群に対する平均効果は見られない」という推定です。ただし サンプルが小さい同じ対照(ID9)が複数回使われている、などで結果は不安定になりがちといえます。

今回は以上となります。

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...