『マッチング法(因果推論)』ゼロからわかる効果検証!
こんにちは。データサイエンス課のブログ担当です。
今回は、施策効果を「正しく比較・評価」し、「正しいアクション」につなげるための分析方法のひとつである『マッチング法』についてご紹介します。
★この記事のモチベーション★
・施策の効果が「本当」にあったのかを検証したい
・施策の効果が「どれくらい」あったのかを定量的に把握したい
⇩
そのために適切な比較対象を用意したい
当記事のモチベーションは上記2点であり、その手段として、因果推論の1手法である「マッチング法」の概要と方法を解説します。
*因果推論=統計的手法を用いて「原因」と「結果」の関係性を紐解くための技術
「マッチング法」とは?
あなた{よし! 『差分の差分法』を使って、広告の売上への影響を正しく評価するぞ)
⇩ しかし…
あなた{あれ?…適切な比較対象(対照群)が見つからない…)
といったように、トレンドの変化(コロナの影響 など)が起こることで、「差分の差分法」では適切な比較ができないことがあります。
参考:ゼロからわかる「差分の差分法」!正しい比較で施策効果を検証
そうした状況のなか、代案として使用できうるのが「マッチング法」です。
マッチング法とは、「施策を行っていない群(対照群)」の中から、「施策を行った群(介入群)」と似ている比較対象を探す手法です。
街の店舗を例とすると、「店舗A(広告有)」と似た特徴(同条件に近い)を持つ店舗を「店舗グループ(広告無)」の中から見つけることで、「広告を行わなかった場合の店舗A」としてマッチング & 比較しよう、という試みです。
マッチング法で「似ている条件」として設定した内容(共変量)の「影響・バイアス」を軽減させ、より純粋な施策効果の抽出の可能性が向上します。広告の効果検証の例でいえば、店舗周辺の人口が同じくらいの店舗同士を比較することで、売上への店舗周辺の人口の影響度(バイアス)を除去することが可能となります。
マッチング手法の実践
マッチング法による広告の効果検証の流れについて、下表のような複数店舗の売上データを参考に説明していきます。
店舗名 | 広告 | … | 売上(月) |
A | 有 | … | 200万 |
B | 無 | … | 180万 |
C | 無 | … | 160万 |
マッチング法においても「似た店舗(同条件に近い)」を探すうえで、幾つかの手法があります。その中でも今回は比較的シンプルなものを2つ紹介します。
①. 共変量マッチング
共変量マッチングの手法は、他と比較しても最もシンプルな方法です。
内容としては、「施策有」「施策無」の各郡の中から、同一の共変量(特徴)によってマッチング対象を見つける手法となります。
店舗名 | 広告 | 店舗周辺人口(5Km) | 売上(月) |
A | 有 | 5,000人 | 200万 |
B | 無 | 1万人 | 180万 |
C | 無 | 7,500人 | 170万 |
D | 無 | 5,000人 | 160万 |
上表データの広告有無の店舗から、「店舗周辺人口」を共変量として、広告有店舗と広告無店舗をマッチング(選定)すると、以下の組み合わせが妥当です。
・店舗A(広告有) ➡ 介入群
・店舗D(広告無) ➡ 対照群
上記により、適切な比較対象がマッチングできました。それらの差を計算することで、広告の効果を抽出できます。
広告有無の差 = ( 店舗A売上 – 店舗D売上 )
40万 = ( 200万 – 160万 )
つまり、広告を出したことで「+40万円」の効果があったと結論付けることが可能です。
(補足)
今回は理解重視で、以下の方法をとりました。
・1つの共変量(属性)「店舗周辺人口」のみを使用
・比較対象の介入群と対照群の店舗は1件のみ
しかし、複数の「共変量と対象(店舗)」をもとにマッチングさせることも可能です。
例:
- 共変量を増やす場合、「知名度」等の指標を追加
- 対象(店舗)を増やす場合、介入群と対照群の各郡内で平均を出し、次に群間で差分を出す
共変量/対象(店舗)を増やすメリット:
施策効果を精密に抽出できる可能性が向上
共変量/対象(店舗)を増やすデリット:
マッチングの難易度が向上
②. 類似度マッチング
類似度マッチングとは、その名の通り比較対象同士の「類似度」をもとにマッチングさせる手法です。この手法は、先ほどの共変量マッチングにおいて、共変量が完全一致している対象を探すのが難しい場合に使用することが可能です。
類似度とは?
ここでいう類似度とは、データ同士の距離を指しています。データ同士の距離計算に使われる距離は、「ユークリッド距離」、「マハラノビス距離」、「チェビシェフ距離」が存在しますが、今回は最も基本的な「ユークリッド距離」を使用します。
それでは下表の各店舗の2つの共変量(経営年数、 スタッフ人数)をもとに、類似度(ユークリッド距離)を計算します。
店舗名 | 広告 | 経営年数 | スタッフ人数 | 売上 |
A | 有 | 10 | 20 | 250万 |
B | 無 | 15 | 30 | 230万 |
C | 無 | 8 | 25 | 190万 |
D | 無 | 9 | 20 | 200万 |
例として、店舗AとBのユークリッド距離の計算式が以下となります。
n: 共変量の個数(2)
x1 : 経営年数
x2 : スタッフ人数
上記のA・B店舗のユークリッド距離計算を同様に、全店舗同士で行った距離行列が以下表です。
店舗名 | A | B | C | D |
A | 0 | 11.18 | 5.38 | 1.0 |
B | 11.18 | 0 | 8.60 | 11.66 |
C | 5.38 | 8.60 | 0 | 5.09 |
D | 1.0 | 11.66 | 5.09 | 0 |
結果、広告有の店舗A(介入群)に対して、 最も類似度が高いのは、店舗Dであることが判明しました。
よって類似度をもとに広告有・無の双方でマッチングできたので、
広告有無の差 = ( 店舗A売上 – 店舗D売上 )
50万 = ( 250万 – 200万 )
その売上の差分を出すことで、広告の効果を抽出することができました。
その他. マッチング手法
今回は最も距離が近い店舗を対照群としてマッチングさせましたが、これを「最近傍マッチング」といいます。他のマッチング方法としては、以下の内容があります。
半径マッチング:
一定距離に入っている対象グループの平均値で差分を算出
カーネルマッチング:
カーネル関数を使ってウェイト(重み)を付与することで、加重平均を算出
マッチング法に必要な2つの仮定
マッチング法を行う上で満たすべき仮定は以下の2つになります。
条件付き独立の仮定
共変量(属性)の情報を条件として与えることで、「施策有無」(施策変数)と「売上」(潜在的成果変数)が独立(無関係)である必要があります。
この条件付き独立の仮定を数式で表すと以下となります。
共有サポートの仮定
施策を行なわなかった対象(対照群)の中に、施策を行った対象(介入群)と同じ共変量を持つ対象が存在しなければ、マッチング法は成立しないという仮定です。
まとめ
今回は因果推論の1手法である「マッチング法」について紹介しました。
マッチング法によって、「施策を受けていない対象」を「施策を受けた対象」と似ている候補の中から、探してきて比べることで、施策効果をより適切に検証することができます。
しかし、マッチング法も万能ではありません。実際にマッチング法を行う際に、「介入群」と複数の共変量(属性)が同じ対象を探す必要があり、比較となる適切な「対照群」を準備できないことも多々あるためです。
そういった同じ・類似の共変量を持つ対象が見つからないケースに対しては、「傾向スコアマッチング法」といった手法を用いることができます。当手法についてはいずれご紹介できればと思います。
それではまた!