新機能を使ったユーザーは、使わなかったユーザーより3か月後の継続率が2倍高い。そんな集計結果を見て、この機能が継続率を押し上げたと結論づけたくなったことはないでしょうか。
けれど、その機能を自分から使いにいく人は、もともと熱心で、放っておいても続けてくれる人だった可能性があります。この場合、2倍という差の大半は機能の効果ではなく、使う人と使わない人の違いを映しているだけかもしれません。
A/Bテストができれば話は簡単ですが、すでに全員に公開した機能や、ユーザーが自分で選んで使う機能では、ランダムに分ける実験は組めません。そこで登場するのが傾向スコア(Propensity Score)という考え方です。
この記事では、傾向スコアの意味、使い方の4つの型、実務での手順、そして見落とすと結論を誤る限界までを、プロダクトの例と仮定の数字で順に説明します。統計の専門知識がなくても読めるように、式はできるだけ使いません。
傾向スコアとは?
傾向スコアとは、ある人がその施策を受ける確率を、その人の事前の特徴から推定した値のことです。プロダクトの文脈で言えば、ある機能を使うかどうかを、登録時期や利用頻度、プランといった情報から予測した確率だと考えてください。
この考え方は、統計学者のポール・ローゼンバウムとドナルド・ルービンが1983年に学術誌Biometrikaで発表した論文で定式化されました。医療や経済の分野で、ランダム化できない観察データから因果効果を推定する定番の道具として広く使われてきました。
比べる相手を揃えるための1つの数字
傾向スコアの核にあるのは、似た人どうしを比べるというごく素朴な発想です。機能を使った人と使わなかった人のうち、使う確率が同じくらいだった人どうしを並べれば、両者の違いは機能を使ったかどうかに近づきます。
本来なら、登録時期も利用頻度もプランも全部揃った人を探したいところです。しかし条件が増えるほど、完全に一致する相手はまず見つかりません。
傾向スコアは、こうした多数の特徴を使う確率という1つの数字に要約します。ローゼンバウムとルービンは、この1つの数字で揃えれば、観測できている特徴による偏りはすべて取り除けることを示しました。
なぜ単純な比較ではだめなのか
単純な比較が誤るのは、結果にも施策の選択にも影響する第三の要因、いわゆる交絡(こうらく)があるからです。熱心さは機能を使うかどうかにも、継続するかどうかにも影響します。
全体で見ると効いているように見えるのに、層ごとに分けると逆の結果になる現象は、シンプソンのパラドックスとは?で詳しく取り上げました。傾向スコアは、こうした偏りを体系的に減らすための道具だと位置づけるとわかりやすいでしょう。
仮定の数字で見る傾向スコアの効き方
ここからは、具体的な数字で効き方を確かめます。以下の数値はすべて説明用の仮定であり、実在のサービスのデータではありません。
単純比較では2倍に見える
あるSaaSで、レポート共有機能を使ったユーザーが2,000人、使わなかったユーザーが8,000人いたとします。3か月後の継続率は、使った人が60%、使わなかった人が30%でした。
この数字だけを見ると、機能を使うと継続率が30ポイント上がるように見えます。ところが、使った人の多くは最初の1週間に5回以上ログインしていた、利用頻度の高い層だったとしましょう。
揃えてから比べると差は縮む
そこで、最初の1週間のログイン回数、登録した月、プラン、チームの人数から、機能を使う確率を推定します。そのうえで、確率がほぼ同じ人どうしを1対1で組み合わせると、次のように変わったとします。
| 比較の方法 | 使った人の継続率 | 使わなかった人の継続率 | 差 |
|---|---|---|---|
| 単純比較 | 60% | 30% | 30ポイント |
| 傾向スコアで揃えた後 | 58% | 50% | 8ポイント |
揃えた後でも差は残っていますが、30ポイントから8ポイントへと大きく縮みました。差の大部分は、もともと熱心な人が機能を使っていたことで説明できた、という読み方になります。
8ポイントをどう読むか
残った8ポイントは、機能そのものの効果にかなり近い推定値です。ただし、これはあくまで観測できた特徴で揃えた場合の話であり、ここが傾向スコアの最大の注意点になります。
たとえば、上司から使うように指示されたかどうかがデータに残っていなければ、その違いは揃えられません。この限界は後の章で改めて扱います。
傾向スコアの使い方は4つの型がある
推定した傾向スコアの使い方には、大きく4つの型があります。どれを選ぶかで、得られる答えの意味や、捨てるデータの量が変わります。
| 型 | やること | 向いている場面 | 注意点 |
|---|---|---|---|
| マッチング | スコアが近い人どうしを組にする | 使った人への効果を知りたい | 相手が見つからない人は捨てる |
| 層別化 | スコアで5段階などに分けて比べる | 手軽に偏りを減らしたい | 層の中に偏りが残りやすい |
| 重み付け(IPW) | 確率の逆数で重みを付ける | 全員に広げた場合の効果を知りたい | 極端な重みで結果が揺れる |
| 回帰で調整 | スコアを説明変数に入れる | 既存の分析に足したい | モデルの形に結果が左右される |
マッチングと層別化
マッチングは最も直感的な型で、使った人1人ごとに、スコアが近い使わなかった人を探して組にします。先ほどの仮定の例がこれにあたります。
組にする相手との距離に上限を設けることをキャリパーと呼び、スコアをロジットという尺度に変換した値の標準偏差の0.2倍程度がよく使われる目安です。上限を超える相手しかいない人は分析から外れるため、どれだけの人が残ったかも必ず記録しておきます。
層別化は、スコアの順に5つほどの層に分け、層ごとに差を出してから平均する型です。計算は簡単ですが、層の中にまだ偏りが残ることがあります。
重み付けと回帰による調整
逆確率重み付け(IPW)は、使う確率が低いのに使った人、高いのに使わなかった人ほど大きな重みを付けて、全体を仮想的に揃える型です。データを捨てずに済む反面、確率が0や1に近い人がいると重みが極端になり、結果が少数の人に引っ張られます。
対策としては、重みに上限を設けたり、確率が極端な人を対象から外したりする方法があります。どの対策を取ったかは、結果と一緒に必ず書き残しておきましょう。
回帰による調整は、ふだんの回帰分析にスコアを変数として加える型です。手軽ですが、効き方がモデルの形に左右されるため、単独では使わず他の型と併用されることが多くなっています。
どの効果を知りたいかで選ぶ
型の選択で見落とされやすいのが、何に対する効果を知りたいのかという問いです。すでに使った人にとっての効果(ATT)と、全員に使わせた場合の効果(ATE)は、別の数字になります。
熱心な人には効くけれど、そうでない人には効かない機能はよくあります。全員への導入を検討しているのに、マッチングで出したATTをそのまま使うと、効果を過大に見積もることになります。
実務での進め方
ここからは、プロダクトの分析で傾向スコアを使う流れを順に見ていきます。手順そのものは難しくありませんが、各段階での確認を省くと、それらしい数字だけが出てしまいます。
手順1 施策と結果と時点を決める
最初に、何を施策とし、何を結果とし、どの時点の特徴で揃えるかを決めます。ここで重要なのは、揃えに使う特徴は施策の前に確定していた情報だけにすることです。
機能を使った後に増えたログイン回数を揃えに入れてしまうと、機能の効果そのものを消してしまいます。どのイベントをいつ記録しているかが曖昧だと、この線引きができません。
手順2 スコアを推定して重なりを確かめる
次に、ロジスティック回帰などで機能を使う確率を推定します。推定したら、使った人と使わなかった人のスコア分布を重ねて描き、重なりがあるかを確認します。
使った人のスコアが0.9付近に集中し、使わなかった人が0.1付近に集中しているなら、比べられる相手がほとんどいないことを意味します。この状態で無理に推定しても、信頼できる答えは出ません。
重なりが一部にしかない場合は、重なっている範囲の人だけに対象を絞ります。答えが当てはまる範囲は狭くなりますが、比べられない人どうしを無理に比べるよりは、はるかに誠実な結果になります。
手順3 バランスを確認してから結果を見る
マッチングや重み付けの後は、結果の指標を見る前に、揃えに使った特徴が両群で本当に揃ったかを確かめます。よく使われるのが標準化平均差という尺度で、0.1未満なら十分に揃ったとみなすのが広く使われる目安です。
流れを擬似コードで書くと、次のようになります。
1. 対象期間に登録したユーザーを抽出する
2. 施策前の特徴を集める(初週ログイン回数・登録月・プラン・チーム人数)
3. 機能を使ったかどうかを、特徴から予測するモデルを作る
4. 各ユーザーに「使う確率」= 傾向スコアを付ける
5. 両群のスコア分布を重ねて、重なりのない範囲を除外する
6. スコアが近い人どうしを組にする(キャリパーを設定)
7. 各特徴の標準化平均差を確認する(目安: 0.1未満)
→ 揃っていなければ、手順3のモデルを見直す
8. 揃ってから初めて、継続率の差を計算する
手順7と8の順番が肝心です。結果を見てからモデルを調整すると、望む答えが出るまで条件をいじる余地が生まれてしまいます。
傾向スコアの限界と批判
傾向スコアは強力ですが、魔法ではありません。限界を知らずに使うと、むしろ誤った結論に科学的な装いを与えることになります。
観測できない違いは揃えられない
最大の限界は、データにない特徴は揃えられないことです。この前提を、専門的には未観測の交絡がないという仮定と呼びます。
上司の指示、導入時のトレーニングの有無、社内での期待の高さなどは、プロダクトのログには残りにくい情報です。こうした要因が機能の利用と継続の両方に効いているなら、傾向スコアで揃えても偏りは残ります。
マッチングへの批判も知っておく
2019年には、政治学者のゲイリー・キングとリチャード・ニールセンが学術誌Political Analysisで、傾向スコアをマッチングに使うことへの批判を発表しました。傾向スコアによるマッチングは、条件によってはかえって偏りやモデルへの依存を増やしてしまう、という指摘です。
彼らは傾向スコアそのものを否定したわけではなく、マッチングの方法としては他の手法を勧めています。実務では、1つの型だけで結論を出さず、複数の型で答えが大きく変わらないかを確かめるのが安全です。
結果を読むときの姿勢
傾向スコアで出した数字は、効果の確定値ではなく、偏りを減らした推定値です。驚くほど大きな効果が出たときほど、データの集計ミスや揃え漏れを疑うべきでしょう。
時間の経過を使って比べる別の方法としては、差分の差分法(DiD)とは?で解説した手法があります。施策の前後のデータが揃っているなら、傾向スコアと組み合わせて答えの頑健さを確かめることもできます。
プロダクトチームでの使いどころ
最後に、プロダクトマネージャーやグロース担当が、傾向スコアをどんな場面で使うと効果的かを整理します。ポイントは、A/Bテストの代わりではなく、A/Bテストができない場面の次善策として位置づけることです。
機能の効果を説明するとき
機能の利用率と継続率の関係は、ロードマップの議論で必ずと言っていいほど話題になります。機能が使われているかを測る考え方は機能の定着率(アダプション)で紹介しましたが、使われていることと効いていることの間には、交絡という溝があります。
その溝を埋めるのが傾向スコアです。単純比較の数字と揃えた後の数字を並べて示せば、機能の価値を過大にも過小にも評価しない議論ができます。
解約対策の優先順位を決めるとき
解約の分析でも同じ構図が生まれます。サポートに問い合わせた人ほど解約しやすいという数字は、問い合わせが解約を招いたのではなく、困っている人が問い合わせていることを示しているだけかもしれません。
継続率の基本的な見方はリテンションと解約にまとめていますが、施策の効果を語る段階では、こうした選択の偏りを一度疑ってみる習慣が役に立ちます。
計測の土台が答えの質を決める
傾向スコアの質は、揃えに使える特徴の豊かさで決まります。施策前の行動がイベントとして正しく記録されていなければ、どれだけ丁寧に手順を踏んでも、揃えられるのは登録日やプランといった粗い情報だけです。
たとえばMonaLensのように、匿名のままページ閲覧やボタンのクリックを時系列で記録しておけば、初週の行動のような施策前の特徴をあとから取り出せます。個人を特定しなくても、行動の履歴があれば揃えの材料には十分になることが多いのです。
まとめ
傾向スコアは、施策を受ける確率という1つの数字で、比べる相手の条件を揃える考え方です。A/Bテストができない機能や施策でも、単純比較より偏りの少ない効果の推定が得られます。
一方で、観測できない違いは揃えられず、型の選び方によって答えの意味も変わります。重なりとバランスを結果より先に確かめ、複数の方法で答えを照らし合わせることが、信頼できる結論への近道です。
次に機能の効果を報告するときは、使った人と使わなかった人はそもそも同じような人たちだったか、という問いから始めてみてください。