福岡だけで交通広告を出した翌月、福岡からの新規登録が増えていた。けれど同じ時期に全国でも登録は伸びていて、どこまでが広告の手柄なのか誰にも説明できません。
こんなとき、比べる相手として「施策がなかった福岡」が手元にあれば話は簡単です。現実には存在しないその福岡を、ほかの地域のデータを組み合わせて人工的に作り出す手法が合成コントロール法です。
この記事では、合成コントロール法の考え方、差分の差分法との違い、計算の流れ、結果を信じてよいかの確かめ方、そしてプロダクトやマーケティングの実務で使うときの注意点までを、数式を使わずに順を追って解説します。
合成コントロール法とは?
合成コントロール法は、英語でSynthetic Control Methodと呼ばれます。施策を受けた一つの対象について、施策を受けなかった複数の候補を重みづけして足し合わせ、施策前の推移がそっくりになる合成の対照群を作る手法です。
一つの処置対象と、たくさんの対照候補
A/Bテストでは、何千人ものユーザーをランダムに二つに分けます。一方で地域限定の広告や、一つの国だけでの価格改定のように、施策を受けた対象が一つしかない場面も実務では珍しくありません。
対象が一つだと、ランダムに分けることもできず、似た対照を一つ選ぶのも難しくなります。合成コントロール法は、施策を受けなかった候補をまとめて対照候補の集まりとして扱い、そこから最適な組み合わせを探します。
経済学の比較事例研究から生まれた
この手法の出発点としてよく紹介されるのが、経済学者のアルベルト・アバディらが2003年に発表した、スペインのバスク地方を対象にした研究です。テロ活動が地域経済に与えた影響を、ほかの地域を組み合わせて作った仮想のバスク地方と比べて推定しました。
2010年には、アバディらが米カリフォルニア州で1988年に成立したたばこ規制(Proposition 99)の効果をこの方法で分析しています。規制を導入しなかったほかの州を組み合わせて合成カリフォルニアを作り、実際のたばこ販売量との差を規制の効果とみなしました。
どちらの研究も、対象は一つの地域で、ランダムな割り付けはできません。こうした比較事例研究に、数字で裏づけられた比較相手を与えたことが、この手法が広く使われるようになった理由です。
差分の差分法とどう違うのか
施策の前後と、施策を受けた群と受けなかった群を比べるという点で、合成コントロール法は差分の差分法の親戚にあたります。差分の差分法そのものについては差分の差分法(DiD)とは?|A/Bテストができない施策の効果を、比べる相手を用意して測るで詳しく解説しています。
平行トレンドの仮定が崩れるとき
差分の差分法は、施策がなければ処置群と対照群が同じ幅で動いたはずだという平行トレンドの仮定に頼ります。ところが現実には、福岡だけ伸び盛りで、ほかの都市は横ばいといったように、そもそも推移の形が違う候補しかないことがよくあります。
そこで合成コントロール法は、対照を一つ選ぶのではなく、複数の候補を混ぜ合わせます。混ぜ方を調整することで、施策前の推移の水準と形の両方を処置対象に近づけるわけです。
重みで似た双子を作る
混ぜ方は重みで表します。重みは0以上で、全部足すと1になるように制約されるのが基本形です。
この制約には意味があります。重みが0以上で合計1なら、合成の対照群は実在する候補の加重平均にとどまり、どの都市がどれだけ効いているのかを人が読んで確かめられます。
違いを次の表で整理します。
| 観点 | 差分の差分法 | 合成コントロール法 | A/Bテスト |
|---|---|---|---|
| 対照の作り方 | 似た群を選ぶ | 複数候補を重みで合成 | ランダムに割り付け |
| 主な前提 | 平行トレンド | 施策前の推移が再現できる | 割り付けが正しく行われる |
| 向いている場面 | 処置群と対照群がそれぞれ多数 | 処置対象が一つか少数 | 個人単位で出し分けられる |
| 苦手なこと | 推移の形が違う群 | 施策前が短い、候補が少ない | 地域や価格など割り付け不能な施策 |
計算の流れを例で確かめる
考え方がわかったところで、冒頭の福岡の例で流れを追ってみましょう。ここで使う数値はすべて説明用の仮定です。
施策前の期間で重みを決める
まず、施策前の12週間について、福岡と対照候補の各都市の週次の新規登録数を並べます。次に、候補の加重平均が福岡の推移にいちばん近くなる重みを探します。
施策前12週の週平均(新規登録数・仮定)
福岡(処置) 400
広島 380
仙台 420
札幌 410
名古屋 900 ← 規模が違いすぎて重み 0
探索の結果の重み(仮定): 広島 0.5 / 仙台 0.3 / 札幌 0.2 / 名古屋 0
合成福岡(施策前) = 0.5×380 + 0.3×420 + 0.2×410 = 398
施策後8週の週平均(仮定)
福岡(実績) 520
合成福岡 0.5×430 + 0.3×470 + 0.2×460 = 448
推定効果 = 520 - 448 = +72 件/週
実際には平均の一点だけでなく、12週それぞれの値が重なるように重みを探します。平均が近くても、週ごとの山と谷の形がずれていれば、その合成は信用できません。
施策後の差を効果とみなす
重みが決まったら、施策後の期間もその重みのまま合成福岡を計算します。合成福岡は広告がなかった場合の福岡の推定なので、実績との差が広告の効果になります。
この例では、福岡の実績だけを前後比較すると週120件の増加に見えます。けれど合成福岡も同じ期間に50件伸びているので、広告の上乗せ分は週72件ほどだと読めます。
ここで大事なのは、施策後のデータを見てから重みを決め直さないことです。結果を見ながら混ぜ方をいじれば、望む答えはいくらでも作れてしまいます。
重みの探し方は道具に任せる
候補が数十になると、手作業で重みを探すのは現実的ではありません。実務では、施策前の実績と合成のずれが最小になる重みを、統計ソフトのパッケージに計算させるのが普通です。
指標の推移だけでなく、人口や平均単価のような対象の特徴を一緒に揃える設定もよく使われます。推移の形が偶然似ているだけの候補に大きな重みが乗るのを防ぎ、合成の中身を説明しやすくするためです。
計算が終わったら、どの候補にどれだけの重みが付いたのかを必ず目で確かめてください。土地勘のある人が見て首をかしげる組み合わせなら、データのどこかに問題が隠れている可能性があります。
結果を信じてよいかの確かめ方
合成コントロール法は、グラフにすると説得力が出やすい手法です。だからこそ、出てきた線をそのまま信じる前に、いくつかの点検を通す必要があります。
施策前のフィットを最初に見る
最初に見るのは、施策前の期間で実績と合成がどれだけ重なっているかです。施策前に大きくずれているなら、施策後の差ももともとのずれかもしれず、効果とは呼べません。
施策前の期間が短すぎるのも危険です。数週間しかなければ、偶然の動きに合わせた重みになりやすく、施策後に予測が外れても気づけません。
プラセボテストで偶然の大きさを測る
次に行うのがプラセボテストです。施策を受けていない候補の都市を、一つずつ仮に処置対象とみなして同じ計算を繰り返し、偽の効果がどれくらいの大きさで出るのかを調べます。
本物の福岡の効果が、偽の効果の分布の中で飛び抜けて大きければ、偶然では説明しにくいと判断できます。逆に、ほかの都市でも同じくらいの差が普通に出るなら、福岡の差もノイズの範囲だと考えるべきです。
施策の時期を前にずらして、施策がなかったはずの期間で効果が出ないかを確かめる方法もあります。ここで効果らしきものが出るなら、モデルの作り方を疑うべきサインです。
候補を一つずつ外してみる
もう一つの点検は、重みの大きい候補を一つずつ外して計算し直すことです。たとえば広島を外しても効果の大きさがほぼ変わらなければ、結論は特定の都市に頼っていないと言えます。
反対に、一つの都市を外しただけで効果が消えたり逆転したりするなら、その結論はもろいと考えるべきです。その都市だけに起きていた出来事が、効果のように見えていた可能性があります。
対照候補が汚染されていないか
見落としやすいのが、対照候補そのものが施策の影響を受けていないかという点です。福岡の広告を見た人が出張先の広島で登録したり、全国向けのSNSで話題が広がったりすれば、合成福岡も一緒に押し上げられます。
この波及効果があると、効果は小さく見積もられます。施策と同時期に、候補の都市でだけ別のキャンペーンを打っていないかも、事前に確かめておくべきです。
施策を受けた人とそうでない人を比べる手法として、傾向スコア(Propensity Score)とは?|機能を使った人ほど継続する理由を、比べる相手を揃えて確かめるもあります。こちらは個人単位で条件を揃える方法なので、地域や国のような大きな単位を扱う合成コントロール法とは守備範囲が異なります。
プロダクト・マーケ実務での使いどころ
ここまでの話を、プロダクトマネージャーやマーケターの現場に引き寄せてみましょう。合成コントロール法が力を発揮するのは、割り付けができないが、比べられる候補はたくさんある場面です。
地域限定の広告とジオ実験
もっとも典型的なのが、地域を単位にした広告効果の測定です。テレビCM、交通広告、チラシのように個人単位で出し分けられない施策は、地域ごとに出す・出さないを決めて比べるしかありません。
こうしたジオ実験の分析に、合成コントロール法がよく使われます。Metaがオープンソースで公開しているGeoLiftは、合成コントロールの手法を使って地域単位のリフトを測るRのパッケージで、テスト地域の選定や検出力の計算まで含めて提供されています。
広告の効果を出稿しない群との比較で確かめる考え方は、インクリメンタリティテストとは?|広告の因果効果をホールドアウトで測る考え方でも扱っています。合成コントロール法は、そのホールドアウトを地域単位で行うときの分析手段だと考えるとわかりやすいでしょう。
CausalImpactとの関係
似た目的の道具として、Googleが公開しているCausalImpactがあります。ベイズ構造時系列モデルという統計モデルで、施策がなかった場合の推移を予測し、実績との差から効果を推定するRのパッケージです。
施策の影響を受けない対照の時系列を使って反実仮想を作るという発想は、合成コントロール法と共通しています。リポジトリの説明でも、対照の系列が施策の影響を受けていないこと、そして処置と対照の関係が施策後も安定していることが前提として強調されています。
向いていない場面を知っておく
一方で、合成コントロール法がうまく働かない場面もはっきりしています。処置対象が候補の誰よりも極端に大きい、あるいは小さい場合、0以上で合計1の重みでは施策前の推移を再現できません。
たとえば最大の都市だけで施策を打つと、ほかの都市をどう混ぜても規模が届かず、施策前から合成がずれます。この場合は、指標を人口あたりや比率に直すか、別の手法を検討するのが現実的です。
チャネル全体の予算配分を長期の集計データで考えたいなら、マーケティングミックスモデリング(MMM)とは?|Cookieが使えない時代に、広告の効果を集計データで測る考え方のほうが合っています。合成コントロール法は、一回の施策の効果を一つの対象で測ることに強い道具です。
結果は幅で伝える
推定された効果は、一つの数字ではなく幅を持った推定として伝えるのが誠実です。プラセボテストで見た偽の効果の大きさを添えれば、聞き手は週72件という数字がどれくらい確かなのかを自分で判断できます。
意思決定の場では、効果があったかどうかの二択より、続ける価値があるほどの大きさかという問いのほうが役に立ちます。広告費を効果で割った獲得単価に直し、ほかのチャネルと並べて比べると議論が前に進みやすくなります。
導入前に揃えておきたいデータ
使い始める前に、地域や国のような単位ごとに、同じ定義の指標が施策の前から途切れずに記録されていることを確かめておきましょう。単位ごとに欠けた日があったり、途中で計測方法が変わっていたりすると、重みの推定がその歪みを拾ってしまいます。
ウェブサイトの指標なら、地域別の新規登録数やコンバージョン数を日次や週次でそろえておくのが出発点です。MonaLensのようにCookieを使わないアクセス解析でも、国や流入元ごとの集計は取れるので、まず手元の分析ツールで単位ごとの時系列が出せるかを確認してみてください。
まとめ
合成コントロール法は、施策を受けた対象が一つしかなく、A/Bテストもできない場面で、施策がなかった世界を複数の候補の重みづけで作り出す手法です。差分の差分法の平行トレンドが怪しいときに、施策前の推移の形まで合わせられるのが強みです。
ただし、強みはそのまま弱点にもなります。施策前のフィット、プラセボテスト、対照候補の汚染という三つの点検を通してはじめて、グラフの差を効果と呼べる根拠になります。
次に地域限定の施策を企画するときは、施策を打つ前に、比べる候補と施策前のデータが十分にあるかを確かめるところから始めてみてください。