Robynを使用したマーケティングミックスモデリング

Marketing Analytics
Optimization
R
MetaのRobynフレームワークによるマルチチャネルマーケティング予算最適化

背景と課題

ビジネス課題:CMOは売上を最大化するためにマーケティング予算をどのように再配分すべきか?

マーケティング予算が厳しく精査され、アトリビューションがますます複雑になる状況(サードパーティCookieの廃止、チャネルの増加)において、マーケティングミックスモデリング(MMM)が再び注目を集めています。

MMMにより以下が可能になります:

  • 各マーケティングチャネルの売上への増分インパクトを測定
  • 飽和効果(収穫逓減)を考慮
  • 残存効果(アドストック)をモデル化 - キャンペーンの効果が時間とともに持続する影響
  • チャネル間の予算配分を最適化

アプローチと方法論

Robynフレームワーク

Meta(Facebook)が開発したオープンソースフレームワークRobynを使用しました。これは複数の高度な技術を組み合わせています:

# Robynモデルアーキテクチャ
# 1. Prophetによる時系列分解
#    - トレンド
#    - 季節性(週次、年次)
#    - 祝日効果

# 2. マーケティング変数の変換
#    - 幾何アドストック: effect(t) = spend(t) + θ × effect(t-1)
#    - ロジスティック飽和: response = α / (1 + exp(-β × spend))

# 3. 過学習を防ぐリッジ回帰

# 4. Nevergradによる多目的最適化
#    - NRMSE(予測誤差)の最小化
#    - DECOMP.RSSD(分解の一貫性)の最小化

分析対象チャネル

  • Google Ads:検索とディスプレイ
  • Facebook Ads:ソーシャルとリマーケティング
  • LinkedIn:B2B
  • Email:ニュースレターとプロモーション
  • オーガニック:SEOと直接トラフィック

完全なワークフロー

生データ → 特徴量エンジニアリング → Robynトレーニング → モデル選択 → 予算最適化
  1. データ収集:日次売上、チャネル別支出、コンテキスト変数
  2. 特徴量エンジニアリング:季節性変数、特別イベントの作成
  3. トレーニング:アドストックと飽和パラメータのキャリブレーション
  4. モデル選択:パレート分析(NRMSE vs DECOMP.RSSD)
  5. 最適化:予算配分シナリオのシミュレーション

主要な結果

売上分解

モデルは売上を以下に分解します:

  • ベースライン:マーケティングなしの「自然な」売上(約60%)
  • チャネル貢献:各投資の増分インパクト
  • 季節性:カレンダー関連の変動

レスポンス曲線

各チャネルは異なるレスポンス曲線を持ち、収穫逓減を示します:

  • Google Ads:初期ROIが高く、急速に飽和
  • Facebook:より線形的な曲線、飽和が少ない
  • Email:優れたROIだが容量が限られる

最適化の推奨事項

ダッシュボードでは異なるシナリオをシミュレートできます:

  • 現状シナリオ:過去の配分
  • 最適化シナリオ:投資不足のチャネルへの再配分
  • 制約シナリオ:固定予算での最適化

デモ

Shinyダッシュボードを見る

インタラクティブダッシュボードでは以下が可能です:

  • 売上分解の可視化
  • チャネル別レスポンス曲線の探索
  • 配分シナリオのシミュレーション
  • 限界ROIの比較

テクノロジー

コンポーネント テクノロジー
言語 R
MMMフレームワーク Robyn (Meta)
時系列分解 Prophet
最適化 Nevergrad
ダッシュボード Shiny
環境管理 renv

ソースコード

プロジェクトは複数のコンポーネントで構成されています:

mmm-robyn-project/
├── R/
│   ├── 01_data_preparation.R    # データ準備
│   ├── 02_robyn_training.R      # モデルトレーニング
│   ├── 03_model_selection.R     # パレート選択
│   └── 04_optimization.R        # 予算最適化
├── app/
│   └── app.R                    # Shinyダッシュボード
├── data/
│   └── marketing_data.csv       # 入力データ
└── outputs/
    ├── exploration/             # EDA可視化
    ├── robyn/                   # モデル結果
    └── optimization/            # 最適化シナリオ

学び

このプロジェクトで以下を深く理解できました:

  1. マーケティングモデリング:アドストックと飽和効果の理解
  2. 多目的最適化:精度と解釈可能性の適切なバランスを見つける
  3. 結果のコミュニケーション:複雑なモデルを実用的な推奨事項に翻訳

← ポートフォリオ分析に戻る | ダッシュボードを見る