メインコンテンツへスキップ
実践ガイドBasic

PyMC-MarketingによるMMM実装 — データ準備からROAS算出・予算最適化まで

PyMC-Marketingを使ったMMMモデルの実装手順を10ステップで解説。環境構築、データバリデーション、モデル定義、事前予測チェック、MCMC推論、収束診断、チャネル貢献度、ROAS算出、予算最適化、モデル保存まで。コピペ可能なコード付き。

MMM Lab 編集部2026/3/730分で読める5

はじめに

本記事では、PyMC-Marketingを使ったMMMモデルの実装手順を、データ準備からROAS算出・予算最適化まで10ステップで解説します。

前記事「PyMC-Marketing完全入門」でライブラリの全体像を理解した前提で、ここではコードを中心とした実践的な内容に集中します。各ステップにPythonコード期待される出力解釈ガイドよくある落とし穴を付けていますので、自分の環境で実行しながら進められます。

使用するデータ

PyMC-Marketing公式のサンプルデータ(mmm_example.csv)を使用します。追加のデータ準備は不要です。

  • 179行(約3.4年分の週次データ)
  • 2つのマーケティングチャネル(x1, x2)
  • 目的変数: y(売上に相当)

各ステップの所要時間

ステップ内容所要時間(CPU)
Step 0環境構築5-10分
Step 1データ読み込みとバリデーション5分
Step 2モデル定義5分
Step 3事前予測チェック2-3分
Step 4MCMC推論3-10分
Step 5収束診断5分
Step 6チャネル貢献度3分
Step 7ROAS算出3分
Step 8予算最適化3分
Step 9モデル保存1分
合計約35-50分

Step 0: 環境構築

インストール

# pip(最もシンプル)
pip install pymc-marketing

# conda-forge(依存関係の解決が確実)
conda install -c conda-forge pymc-marketing

# Docker(環境分離したい場合)
docker pull pymclabs/pymc-marketing:latest

# GPU加速(オプション: NumPyro/BlackJAXバックエンド使用時)
pip install "jax[cuda12]"

# Rust製高速サンプラー(オプション: CPU環境での高速化に推奨)
pip install nutpie

動作確認コード

import pymc_marketing
import pymc as pm
import arviz as az
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

print(f"PyMC-Marketing: {pymc_marketing.__version__}")
print(f"PyMC: {pm.__version__}")
print(f"ArviZ: {az.__version__}")

# GPU確認(NumPyroバックエンド使用時)
try:
    import jax
    print(f"JAX: {jax.__version__}, devices: {jax.devices()}")
except ImportError:
    print("JAX未インストール(GPU不使用)")

# Nutpie確認
try:
    import nutpie
    print(f"Nutpie: {nutpie.__version__}")
except ImportError:
    print("Nutpie未インストール(NUTSバックエンドを使用)")

期待される出力

PyMC-Marketing: 0.18.2
PyMC: 5.x.x
ArviZ: 0.x.x
JAX未インストール(GPU不使用)
Nutpie未インストール(NUTSバックエンドを使用)

解釈ガイド

PyMC-Marketingのバージョンが0.18.x以上であることを確認してください。0.17以前ではAPIが一部異なります。JAXやNutpieはオプションで、初回はNUTSバックエンド(追加インストール不要)で十分です。

システム要件

項目要件
Python3.11以上
メモリ8GB以上(大規模データは16GB推奨)
GPUオプション(NumPyro/BlackJAX使用時。CUDA 11.8+)
ディスク2GB以上(ライブラリ + モデル保存用)

よくあるトラブル

エラー原因対処
ModuleNotFoundError: pymcpip環境の不整合conda create -n pymc python=3.12 で新規環境作成
theano 関連のエラー古いTheanoとの競合pip uninstall theano-pymc でTheanoを削除
jax + CUDA エラーJAXとCUDAバージョン不整合pip install "jax[cuda12]" で明示的に指定
nutpie インストール失敗Rustビルド環境不足pip install nutpie --no-build-isolation

続きはBasicプランで読めます

この先の内容(詳細な分析結果・具体的な数値・施策の全容)はBasicプラン以上のメンバー限定です。

関連記事