ひとことで言うと#
「AとBに相関がある」だけでは「AがBの原因」とは言えない。交絡因子・逆因果・偶然の一致を排除し、「本当にAがBを引き起こしているか」を検証する思考フレームワーク。
押さえておきたい用語#
- 因果関係(Causation)
- AがBを引き起こすという方向性のある関係のこと。相関とは異なり、「AをなくせばBも変わる」が成り立つ。
- 交絡因子(Confounding Variable)
- AとBの両方に影響する第三の変数。これを見落とすと相関を因果と誤認する。
- 反事実(Counterfactual)
- 「もし施策を打たなかったらどうなっていたか」という仮想シナリオを指す。因果推論の核心的な考え方。
- RCT(Randomized Controlled Trial)
- 対象をランダムに処置群と対照群に分け、効果を比較するゴールドスタンダードの実験手法。
- 差分の差分法(DID: Difference-in-Differences)
- 処置群と対照群の変化量の差を取ることで因果効果を推定する準実験的手法。
因果推論フレームワークの全体像#
こんな悩みに効く#
- A/Bテストができない状況で施策の効果を知りたい
- 「相関がある=効いている」と報告して上司に突っ込まれた
- KPIが改善したが本当に施策のおかげか自信が持てない
- データ分析の結果をもとに意思決定したいが因果が不明
- 複数の施策を同時に打ってしまい、どれが効いたかわからない
基本の使い方#
施策(処置)・結果(アウトカム)・交絡因子を矢印で結ぶ。
例: 「広告を増やしたら売上が上がった」
- 処置: 広告出稿量
- アウトカム: 売上
- 交絡因子の候補: 季節要因、競合の撤退、新商品の発売
矢印の方向で因果の仮説を明示し、交絡因子を洗い出す。描いた図を関係者と共有し、見落としがないか確認する。
「もし施策を打たなかったら、アウトカムはどうなっていたか」を考える。
反事実の設計例:
| 状況 | 反事実の設計方法 |
|---|---|
| A/Bテストが可能 | ランダムに処置群と対照群を分ける(RCT) |
| 過去データがある | 施策前後の変化を、対照群の変化と比較する(DID) |
| 閾値がある | 閾値の上下で結果を比較する(回帰不連続デザイン) |
| どれも困難 | 類似ケースを傾向スコアで擬似的にマッチングする |
反事実を定義できないなら、因果の主張は保留するのが誠実。
因果効果 = 処置群のアウトカム − 反事実のアウトカム
推定時のチェックポイント:
- サンプルサイズは十分か(小さいと偶然のブレが大きい)
- 効果の信頼区間はどの程度か(点推定だけでなく幅も見る)
- 外的妥当性はあるか(他の集団や時期にも当てはまるか)
- 結果を複数の手法で確認したか(ロバストネスチェック)
具体例#
月商4,200万円のアパレルEC。「全品10%OFFクーポン」を配布した月の売上が前月比 +18% になった。マーケチームは「クーポンの効果で18%増」と報告したが、CFOが疑問を呈した。
因果推論で検証:
- 交絡因子の候補: 季節要因(9月→10月の秋物需要)、テレビ露出(10月に雑誌掲載あり)
- 反事実の設計: 前年同月比を対照群とし、DID的に分析
| 指標 | 前月比 | 前年同月比 |
|---|---|---|
| 今年の10月売上 | +18% | +12% |
| 昨年の9月→10月変化 | — | +8% |
| 季節要因を差し引いた効果 | — | +4% |
クーポンの真の因果効果は +18% ではなく +4% 程度と推定された。残りの14%は季節要因と雑誌掲載の寄与。クーポン原価率10%で売上増4%では赤字という結論になり、次月のクーポン施策は見送られた。
従業員80名のSaaS企業。オンボーディングフローを改善し、30日継続率を上げたいと考えた。新フロー導入前に因果推論の枠組みでA/Bテストを設計。
設計:
- 処置群: 新オンボーディングフロー(チュートリアル動画+チェックリスト)
- 対照群: 従来のフロー(メールのみ)
- ランダム割り当て: 新規登録ユーザーを50:50で振り分け
- 期間: 4週間、各群500ユーザー以上(検出力80%、最小効果5%ポイント)
結果:
| 指標 | 対照群 | 処置群 | 差分 | p値 |
|---|---|---|---|---|
| 30日継続率 | 42.3% | 51.8% | +9.5pp | 0.003 |
| 有料転換率 | 12.1% | 15.7% | +3.6pp | 0.041 |
因果効果として30日継続率 +9.5ポイント が統計的に有意と判定され、新フローを全ユーザーに展開した。「改善した気がする」ではなく数字で因果を確認したことで、経営会議での承認も即決。
人口12万人の市が、2024年4月から「第2子以降の保育料無償化」を導入。1年後に出生数が前年比 +6.2% になったが、「本当に政策効果か」が議会で問題になった。
因果推論フレームワークで分析:
- 処置群: 当該市
- 対照群: 隣接する3市(政策導入なし、人口規模・年齢構成が類似)
- 手法: 差分の差分法(DID)
| 指標 | 当該市(処置群) | 隣接3市平均(対照群) |
|---|---|---|
| 2023年→2024年の出生数変化 | +6.2% | +1.8% |
| 差分の差分(政策効果) | +4.4% |
全国的な出生数トレンド(+1.8%)を差し引いた政策の因果効果は +4.4% と推定された。ただし信頼区間は +1.1〜+7.7% と幅があり、サンプルサイズ(1年分の出生数)が小さいことが限界点として報告された。2年目のデータが出るまで暫定的な評価として扱う方針になった。
やりがちな失敗パターン#
- 「相関=因果」で施策を決める — アイスの売上と溺死事故は相関するが、アイスを規制しても溺死は減らない。交絡因子(気温)を必ず疑う。
- A/Bテストなしに「効果があった」と主張する — 前後比較だけでは時系列トレンドや季節性を排除できない。
- サンプルサイズを確認しない — 小さいサンプルで大きな効果が出ても、それは統計的ノイズの可能性が高い。
- 交絡因子を1つ見つけて安心する — 交絡因子は複数存在しうる。因果ダイアグラムを使って網羅的に洗い出す。
- 因果がわからないからと意思決定を先延ばしにする — 完璧な因果推論は不可能な場合もある。「因果の確信度60%」でも意思決定できる場面は多い。
まとめ#
因果推論フレームワークは「AがBの原因か」を厳密に問うための思考の枠組み。相関を見つけたら交絡・逆因果・偶然の3つの罠を疑い、反事実を設計して検証する。A/Bテストが理想だが、不可能な場合でもDIDや回帰不連続デザインで近似できる。データドリブンな意思決定の質は、因果推論の有無で決定的に変わる。