【図解】CausalImpactとは?A/Bテスト不要の施策効果検証手法
Googleが開発した「時系列データにおける因果推論パッケージ」を分かりやすく解説
背景 1. なぜ今「CausalImpact」なのか?
マーケティング施策や新機能リリースの効果を正確に測りたい時、通常はA/Bテストを行います。しかし、以下のようなケースではA/Bテストが実施できません。
- TV CMやラジオ広告: 地域やユーザーごとに提示・非提示をランダムに分けることができない
- サイト全面リニューアル / 価格改定: 全ユーザーに対して一斉に適用せざるを得ない
- 他社競合の動きや季節要因: 前年比や前週比との単純比較では、外部要因(トレンド・季節性)の影響を排除できない
❌ 単純な前後比較(前週比・前年比)
「テレビCM打ったら売上が1.5倍になった!」と思っても、実は「単に世間のブーム」や「季節要因(連休など)」だった可能性を排除できません。
⭕ CausalImpactによる因果推論
「もしCMを打っていなかったら(反事実)、売上はどうなっていたか?」を機械学習で予測し、純粋な増分効果(リフト)だけを抽出します。
仕組み 2. どうやって「もしも」を予測するのか?
CausalImpactは、「施策の影響を受けていない他の時系列データ(コントロール変数)」を活用して、もし施策を行わなかった場合のデータ(これを反事実 / Counterfactual と呼びます)を予測します。
「もしも」を高精度に予測するためには、「自社の施策(テレビCM等)の影響は全く受けないが、業界全体のトレンドや季節性(雨の日、連休など)は連動しているデータ」を準備することが成功の肝です。
例:未実施地域の売上データ、競合他社サイトの検索ボリューム、天気データなど。
実装 3. 簡単なコード例 (R / Python)
Googleが提供するパッケージを使えば、わずか数行のコードで分析から可視化まで実行できます。
■ Rコード例
library(CausalImpact)
# 期間の設定 (施策前期間 と 施策後期間)
pre.period <- c(1, 70)
post.period <- c(71, 100)
# CausalImpactの実行 (dataの1列目が分析対象, 2列目以降がコントロール変数)
impact <- CausalImpact(data, pre.period, post.period)
# グラフ出力とテキストサマリーの表示
plot(impact)
summary(impact, “report”)
実践 4. CausalImpact 適用判断クイズ
あなたのマーケティング施策で、CausalImpactを正しく使うためのデータ設計に関する問題です。
問: 全国で一斉に「新機能リリースキャンペーン」を行いました。分析対象は「自社アプリのデイリーアクティブユーザー(DAU)」です。コントロール変数(X列)として最も適切なものはどれでしょうか?
▼ 分析シミュレーションの実行(選択後に押してください)
📊 CausalImpact モデル出力プレビュー R summary(impact) シミュレーション

Webサイト運営やデータ分析、業務効率化が好きなWebエンジニア・ブロガーです。
普段はWordPressを使ったサイト制作や、Googleアナリティクス(GA4)、Googleタグマネージャー(GTM)、Search Consoleを活用したアクセス解析を中心に学習・検証しています。
「難しいITやWebの知識を、誰でも理解できるように伝えること」をコンセプトに、このサイト「new-otasuke」を運営しています。
記事では、実際に自分で試した内容や、つまずいたポイント、解決方法をできるだけ分かりやすくまとめています。初心者の方でも安心して実践できるよう、画像や図解を交えながら丁寧に解説することを心掛けています。
最近は特に以下の分野を中心に情報発信しています。
Google Analytics 4(GA4)
Googleタグマネージャー(GTM)
Search Console
SEO対策
WordPress
Power Automate
統計学・データ分析
このサイトが、「困ったときに最初に見に来たくなる場所」になれば嬉しいです。
今後も、Webサイト運営や仕事に役立つ情報を分かりやすく発信していきます。どうぞよろしくお願いいたします。


コメント