07-データサイエンス

データサイエンス(Part.13)|準実験:傾向スコアマッチング(PSM)

目標

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

傾向スコアマッチング

傾向スコアマッチングは、処置群と対照群を似た属性に揃えて比較することで、観察データから因果効果を推定する方法です。「観察研究でできるだけ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ソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
07-データサイエンス

データサイエンス(Part.4)|データ分析のプロセス2(データの分類)

2024年1月12日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
07-データサイエンス

データサイエンス(Part.1)|データサイエンスの概要

2023年11月25日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
07-データサイエンス

データサイエンス(Part.14)|準実験:回帰不連続デザイン(RDD)

2025年9月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
07-データサイエンス

データサイエンス(Part.12)|準実験:差分の差分法(Difference-in-Differences, DiD)

2025年9月8日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
07-データサイエンス

データサイエンス(Part.8)|データ分析のプロセス3(相関分析・回帰分析)

2025年9月3日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site