2026-04-30·学習法·⏱ 約 5 分
因果推論 入門 ─ 相関と因果はどう違うか
「アイスが売れる日は溺れる人が増える ─ アイスが原因?」 ─ 統計の頂点とも言える因果推論を、AI エンジニア視点で実装まで。
「アイスクリームの売上が高い日に水死事故が多い」 ─ これだけでは『アイスが原因で水死する』とは言えません。第三の要因(暑い日)が両方を引き起こしている可能性が高い。これが 相関と因果の違い で、ML の予測モデルでは扱えない領域です。
相関 ≠ 因果 を前提にする
ML モデルが学ぶのは 相関構造。だが、ビジネス意思決定で本当に欲しいのは 介入効果:
- 『広告を表示すると CV は上がるか?』 ← 介入の効果
- 『価格を 10% 下げると売上はどうなる?』 ← 介入の効果
- 『この治療を受けると生存率は上がる?』 ← 介入の効果
💡 反事実の世界
因果効果 = 『介入した世界』と『しなかった世界』の差。同じ人に両方は起こらないので推論で埋めるしかない。
ゴールドスタンダード ─ RCT
ランダム化比較試験(Randomized Controlled Trial) で介入をランダムに割り当てると、交絡要因が均等化されて効果が分離できる。
- A/B テスト: Web の標準
- 臨床試験: 新薬承認の必須条件
- フィールド実験: 経済学のノーベル賞(Banerjee, Duflo)
ただし RCT が 倫理的 ・ 経済的 ・ 物理的に不可能 な場合も多い(タバコの害、過去のキャンペーン分析など)。
観察データから因果を出す 5 手法
1. 傾向スコア(Propensity Score Matching)
介入を受ける『傾向』をロジスティック回帰で推定 → 似た傾向を持つペアでマッチング → 効果を計算。
傾向スコアマッチング(scikit-learn + 自前)
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import NearestNeighbors
# X: 共変量, T: 処置 0/1, Y: アウトカム
ps = LogisticRegression().fit(X, T).predict_proba(X)[:, 1]
# 処置群の各サンプルに最近傍の対照群を割り当て
treated = X[T == 1]
untreated = X[T == 0]
nn = NearestNeighbors(n_neighbors=1).fit(ps[T == 0].reshape(-1, 1))
_, idx = nn.kneighbors(ps[T == 1].reshape(-1, 1))
att = (Y[T == 1].values - Y[T == 0].values[idx.flatten()]).mean()
print('ATT:', att)2. 差分の差分(Difference-in-Differences)
処置の前後 + 処置群と対照群 の 2 軸で差を取る。並行トレンド仮定が成り立てば因果効果が出せる。
3. 操作変数法(Instrumental Variable)
処置に影響するが結果には直接影響しない 変数(IV)を使う。古典例: 兵役くじ → 教育年数の効果。
4. 回帰不連続(RDD)
閾値で処置が切り替わる(例: 試験スコア 80 点で奨学金)場面で、閾値前後を比較。
5. 因果ダイアグラム(DAG)
変数間の因果関係をグラフで明示 → 識別可能性を判定。Judea Pearl の do 計算が理論的基盤。
Python ライブラリ
- DoWhy(Microsoft): DAG ベースで識別 → 推定 → 反証
- EconML(Microsoft): 機械学習を使った因果推論(Double ML, Causal Forest)
- CausalImpact(Google): 時系列の介入効果分析
- linearmodels: IV 推定 ・ パネルデータ
AI エンジニアの活用シーン
- A/B テストの結果分析: 単純比較ではなく傾向スコア調整
- マーケティング施策の効果: 過去キャンペーンの ROI 分析
- プロダクト機能の効果検証: ロールアウト前後の比較
- 価格弾力性の推定: 操作変数法で価格効果を分離
- バイアス除去: 採用 ・ 与信モデルの差別検出
学習リソース
- [統計検定 2 級 教科書](/textbook/grade-2) ─ 回帰の基礎
- [統計検定 準 1 級 教科書](/textbook/grade-pre1) ─ 多変量解析
- [p 値の誤解 5 選](/blog/p-value-misunderstandings)
- [ベイズ統計と頻度論](/blog/bayes-vs-frequentist)
まとめ
因果推論は『統計の頂点』 ─ ML エンジニアが上位職を目指すなら必修領域。意思決定の質が桁違いに変わります。
Related Articles
関連記事
- 2026-04-30学習法データサイエンティストのキャリア ─ 年収・職種・転職の現実データサイエンティスト・MLエンジニア・AIエンジニアの違い、年収レンジ、転職の戦略、ポートフォリオの作り方。実際の求人から見えた 2026 年の市場動向。
- 2026-04-29学習法p 値の誤解 5 選 ─ 仮説検定でやりがちな勘違いを正す「p < 0.05 = 効果あり」と思っていませんか?統計検定や A/B テストで頻発する p 値の 5 つの誤解と、正しい解釈を整理します。
- 2026-04-29学習法ベイズ統計と頻度論 ─ AIエンジニアはどちらを学ぶべき?頻度論とベイズの違いを実装視点で整理。それぞれが活きる場面と、本サイトでの学習順を提示します。