メインコンテンツへスキップ
技術解説

Google Meridian入門:オープンソースMMMツールの導入と実践

GoogleのオープンソースMMM「Meridian」の特徴、セットアップ方法、サンプルコードを解説。ベイズ推定、地域レベルモデリング、Google検索データ統合の実力を検証します。

2026/1/186分で読める7

Google Meridian入門:オープンソースMMMツールの導入と実践

はじめに

Meridianは、Googleが2024年にオープンソースとして公開したマーケティングミックスモデリング(MMM)フレームワークです。前身のLightweightMMMの後継として開発され、ベイズ推定をベースに地域レベル分析やリーチ&フリークエンシー(R&F)モデリングなど、より高度な機能を備えています。

Meridianの最大の特徴は、Googleの検索クエリデータをモデルに直接統合できる点です。これにより、他のMMMツールでは捉えにくい「検索を通じた間接効果」を精密に測定できます。

MMMの基本概念についてはMMMとは?初心者向け完全ガイドをご覧ください。


Meridianの主要機能

機能一覧

機能説明メリット
ベイズ推定JAX + NumPyroベースのMCMCパラメータの不確実性を定量化
地域レベルモデリングGeo×時系列のパネルデータ対応地域差を活用した精度向上
R&Fモデリングリーチ&フリークエンシーの組み込みimp/GRPより精密な効果測定
Google検索データ統合検索クエリボリュームを変数として統合他チャネルの間接効果を捕捉
実験較正Geo Liftテスト結果による事前分布調整モデルの因果的妥当性を向上
予算最適化組み込みの最適化機能飽和曲線ベースの予算配分

LightweightMMMからの進化

項目LightweightMMMMeridian
バックエンドJAX + NumPyroJAX + NumPyro(改良版)
データ粒度全国集計のみ地域×時系列パネル
メディア入力費用/imp費用/imp + R&F
検索データ非対応Google検索統合
較正基本的ROIプライオ + Geo Lift
ステータス非推奨(メンテナンスモード)アクティブ開発中

セットアップ

システム要件

要件推奨スペック
Python3.11以上
RAM16GB以上(地域モデルでは32GB推奨)
OSLinux / macOS(Windowsは WSL2 推奨)
GPU任意(JAXのGPUサポートで高速化可能)

インストール

# pip でインストール
pip install google-meridian

# GPU版(CUDA環境がある場合)
pip install google-meridian[gpu]

# バージョン確認
python -c "import meridian; print(meridian.__version__)"

基本的な使い方

Step 1: データの準備

Meridianは独自のInputDataクラスでデータを管理します:

import pandas as pd
import numpy as np
from meridian.data import input_data

# 全国集計データの場合
df = pd.read_csv("marketing_data.csv", parse_dates=["date"])

media_data = df[["tv_spend", "digital_spend", "sns_spend"]].values
media_costs = df[["tv_spend", "digital_spend", "sns_spend"]].values
extra_features = df[["temperature", "holiday_flag"]].values
kpi = df["revenue"].values

data = input_data.InputData(
    media=media_data,
    media_costs=media_costs,
    extra_features=extra_features,
    kpi=kpi,
    time_periods=len(df),
    media_names=["TV", "Digital", "SNS"],
    extra_features_names=["Temperature", "Holiday"],
)

Step 2: モデルの定義と学習

from meridian.model import spec as model_spec
from meridian.model import model

# モデルスペックの定義
spec = model_spec.ModelSpec(
    max_lag=8,                    # 最大ラグ(週)
    hill_before_adstock=False,    # アドストック→飽和の順序
    knots=None,                   # 時間トレンドのノット数
)

# モデル構築
mmm = model.Meridian(
    input_data=data,
    model_spec=spec,
)

# MCMCサンプリング
mmm.sample_posterior(
    num_warmup=1000,
    num_samples=1000,
    num_chains=4,
    seed=42,
)

Step 3: 結果の確認

from meridian.analysis import analyzer

# Analyzerで結果を抽出
result = analyzer.Analyzer(mmm)

# チャネル別ROAS
roas = result.compute_media_summary()
print(roas)

# 予測精度
metrics = result.compute_model_fit_metrics()
print(f"R²: {metrics['r_squared']:.4f}")
print(f"MAPE: {metrics['mape']:.2f}%")

地域レベルモデリング

Meridianの最大の差別化ポイントは地域×時系列のパネルデータを直接扱えることです:

# 地域別データの場合(例:10地域 × 104週)
n_geos = 10
n_times = 104
n_media = 3

media_data = np.random.rand(n_geos, n_times, n_media)  # 地域×時間×チャネル
kpi = np.random.rand(n_geos, n_times)                    # 地域×時間

geo_data = input_data.InputData(
    media=media_data,
    media_costs=media_data,
    kpi=kpi,
    time_periods=n_times,
    geo_names=[f"region_{i}" for i in range(n_geos)],
    media_names=["TV", "Digital", "SNS"],
)

地域モデルの利点: 全国集計では「TV出稿量が常に一定」でも、地域別に見ると出稿パターンにばらつきがあるケースが多い。このばらつきを活用することで、TVの効果をより精密に推定できます。


Google検索データの統合

Meridianでは、Googleの検索クエリデータを「需要のプロキシ」として統合できます:

# 検索データを extra_features として統合
# Google Trends API や Search Console からデータを取得
search_data = df["branded_search_volume"].values

data_with_search = input_data.InputData(
    media=media_data,
    media_costs=media_costs,
    extra_features=np.column_stack([extra_features, search_data]),
    kpi=kpi,
    time_periods=len(df),
    media_names=["TV", "Digital", "SNS"],
    extra_features_names=["Temperature", "Holiday", "BrandSearch"],
)

Meridianの制約と注意点

制約詳細対策
エコシステムの成熟度PyMC-Marketingに比べてコミュニティが小さい公式ドキュメントとGitHub Issuesを活用
Google検索データの取得正確な検索ボリュームにはGoogleとの契約が必要Google Trendsで代替可能(精度は低下)
Windows非対応JAXの制約でWindowsネイティブは非対応WSL2 or Docker を使用
学習コスト独自のデータ構造への理解が必要InputDataクラスのドキュメントを熟読
リフトテスト較正Geo Liftテストのデータが前提較正なしでも動作するが精度は低下

PyMC-Marketing vs Meridian:選択基準

観点PyMC-MarketingMeridian
言語Python(PyMC)Python(JAX)
柔軟性非常に高い(カスタムモデル容易)中程度(フレームワーク内)
地域モデル自前実装が必要組み込み対応
R&F対応なしあり
検索データ手動追加ネイティブ統合
コミュニティ大きい(PyMCエコシステム)成長中
本番実績HelloFresh, Bolt等Google社内実績
推奨ユースケース柔軟なカスタマイズが必要な場合地域データ+Google広告中心の場合

詳しいツール比較はMMM主要ツール徹底比較をご覧ください。


まとめ

  1. MeridianはGoogleが開発するオープンソースMMMで、LightweightMMMの後継
  2. 地域レベルモデリングR&Fモデリングが最大の差別化ポイント
  3. Google検索データの統合により、他ツールでは捉えにくい間接効果を測定可能
  4. Python 3.11+が必要で、Windows環境ではWSL2推奨
  5. PyMC-Marketingと比較して、Google広告中心かつ地域データが豊富な場合に特に有効

MMMツールの選択に迷った場合は、ツール比較記事も参考にしてください。

MMMをもっと深く学びませんか?

理論から実践まで体系的に学べるコース・記事を多数ご用意。 無料プランでも基礎コンテンツにアクセスできます。

MMMの最新情報をお届けします

新着記事・コース更新をメールでお知らせ

関連記事