KuwalystがMeridianではなくPyMC-Marketingを使う理由
KuwalystがGoogle MeridianやRobynではなくPyMC-Marketingを使う理由を、事前分布の設定、実験によるキャリブレーション、監査可能性、メディアプランへの影響から説明します。
Hajime Takeda · 更新日 2026年9月28日
オープンソースのMMMライブラリ3つを、一つの表で
Google Meridian、MetaのRobyn、そしてPyMC Labsとそのコミュニティが保守するPyMC-Marketingは、マーケティングサイエンティストがマーケティングミックスモデリングのために今日候補に挙げる3つのオープンソースライブラリです。表記はいくつかあり、Google MeridianともMeridian Googleとも、PyMC-MarketingともPyMC Marketingとも書かれますが、問いはたいてい同じです。どのライブラリを、なぜ選ぶのか。KuwalystはPyMC-Marketingを使っています。このページでは、その理由をトレードオフとともに説明します。3つとも使った経験のある筆者が書いています。
| PyMC-Marketing | Google Meridian | Meta Robyn | |
|---|---|---|---|
| 保守元 | PyMC LabsとPyMCコミュニティ | Meta | |
| 言語と基盤 | Python、PyMC上 | Python。2.0以降はJAXが既定、分布はTensorFlow Probability | R、Python版はベータ版 |
| 推定方法 | ベイズ推定、MCMCサンプリング | ベイズ推定、MCMCサンプリング | 正則化回帰、ハイパーパラメータの進化的探索 |
| 事前分布の置き場所 | 構造パラメータ:アドストック(広告効果の持ち越し)、飽和、係数 | 既定はチャネルごとのROI。限界ROI、貢献割合、係数の事前分布も設定可能。背後に構造パラメータの事前分布 | ベイズの事前分布なし。ハイパーパラメータの範囲、正則化、選択基準 |
| 不確実性 | すべてのパラメータの事後分布 | すべてのパラメータの事後分布 | 候補モデル。クラスタ内のROAS・CPAのブートストラップ区間。事後分布はなし |
| 実験によるキャリブレーション | リフト実験の測定値を尤度に組み込む | 実験からROIの事前分布を設定、キャリブレーション対象期間を指定 | 実験結果との誤差を探索の目的関数に追加 |
| データの粒度 | 全国またはパネル(地域または商品) | 地域単位のデータを前提、全国も可 | 単一の時系列。地域間の階層推定はなし |
| モデル構造 | チームが読み、拡張し、変更できるPyMCモデル | 設定可能な仕様。媒介変数を含むフルファネルの構成も可能 | 固定構造と設定項目 |
| ライセンス | Apache 2.0 | Apache 2.0 | MIT |
この表は順位表ではなく、選択の一覧として読んでください。各ライブラリは、仮定をどこに置くか、モデルのどこまでを利用者が触るべきかについて、異なる判断をしています。
PyMC-Marketingを選んだ理由
Media Plannerがモデルに求めるのは3つです。クライアントのチームが確認できる仮定、プラットフォームの外で構築したモデルを読み込む方法、そして実験の証拠を次回の推定に戻す方法です。PyMC-Marketingは、普通のPyMCモデルとして書かれたベイズ型メディアミックスモデルを提供し、Kuwalystはその周りにプランニングの工程を構築しています。
事前分布は明示的です。PyMC-Marketingでは、あるチャネルのアドストックの減衰率、半飽和点、係数に置く事前分布は、チームがコードで書き、読み返せる分布です。ベイズ・メディアミックスモデリングの解説では、Media Plannerが使う3段階を説明しています。アドストックの減衰率には強い事前分布、飽和には中程度の事前分布、係数には弱い正の事前分布です。減衰率に情報のある事前分布を置くと、2〜3年分の週次データで持ち越し、飽和、係数の間の曖昧さは減りますが、なくなりはしません。だからこそMedia Plannerは事前分布の感度を確認し、幅を示します。
キャリブレーションはモデルの中に位置づけられています。PyMC-Marketingは、リフト実験の測定値をその不確実性とともに尤度に組み込み、測定値が推定をどれだけ動かすかは不確実性が決めます。Media Planner自身のループはより単純で、このサイトの各ページに書いてあるとおりです。地域別リフト実験で測定したリターンを、次回の推定でそのチャネルの係数の事前分布に反映し、モデルの推定値と実測したリターンが3分の1を超えて食い違えば、プランはそのチャネルの識別の問題を明示します。
モデルは確認できます。モデルカード、事前分布、反応曲線、適合度の診断結果は、チームが開けるアーティファクトとして保存され、信頼と安全性のページにそのホスティング先が書かれています。Kuwalystの共同創業者である竹田肇(Hajime Takeda)は、このライブラリのドキュメントに寄稿しており、Media Plannerが実行する手法は書籍『Marketing Science in Python』に章ごとに解説されているものです。
Google Meridianの得意なこと、制約になること
Meridianは本格的なライブラリで、チームによっては正しい選択です。地域単位のデータを前提に設計されており、地域をまとめて推定する階層モデルは、地域ごとに広告費が異なるとき、同じ週数からより多くの情報を引き出します。リーチとフリークエンシーのデータがあるチャネルなら、広告費だけでなく、各期間のユニークリーチと平均接触回数を使ってモデル化できます。有料メディアの事前分布は既定ではROIで表現され、マーケティングチームがすでに使っている言葉ですが、限界ROI、貢献割合、係数に置く設定にも切り替えられます。実験によるキャリブレーションとは、実測値からそのROIの事前分布を設定することで、実験が対象とする期間はキャリブレーション対象期間として指定します。仕様は設定可能で、検索ボリュームなどの媒介変数を含むフルファネルの構成も組めます。Google Meridianのドキュメントは、モデルの仮定、設定、診断を詳しく説明しており、Google Meridianのパートナープログラムは代理店を認定しています。
制約は同じ選択から生じます。ある広告費の水準で、ある期間に測定した実験を、反応曲線全体の事前分布に翻訳することは、どのライブラリでもモデリング上の判断です。Meridianではこの判断がROIの事前分布という設定方法とそのキャリブレーション設定を通じて行われ、ROIで考えるチームには合いますが、証拠を構造パラメータに直接置きたいチームには制約になります。地域単位のデータが設計の中心です。全国単位の推定もサポートされていますが、全国の系列が一つだけでオフラインチャネルを持つブランドは、Meridianの特長の恩恵を受けにくくなります。モデルは書くものではなく設定するものです。設定項目にないものは、モデルではなくライブラリの実装を変更することになります。そして、オープンソースのMeridianはJAXとTensorFlow Probabilityの基盤で動くため、チームの既存のコード、テスト、習慣がPyMCにある場合には、これが効いてきます。
いずれも欠点ではありません。チームがMeridianを選ぶ理由そのものです。Kuwalystは、PyMCモデルとそのパラメータ設定に直接アクセスできることを理由にPyMC-Marketingを選びました。外部モデルの読み込み、再較正のスケジュール、監査の記録はMedia Plannerのアプリケーション側のコードであり、どのライブラリを使う場合でもその周りに構築する必要があります。
Robynについて、簡潔に
RobynはMetaのオープンソースのMMMパッケージで、Rで実装され、Python版は現在ベータ版です。事後分布をサンプリングしません。リッジ回帰を当てはめ、アドストックと飽和のハイパーパラメータは、数千の候補モデルに対する進化的探索で選びます。評価基準は予測誤差と、各チャネルの効果の構成比と広告費の構成比との差です。実験結果がある場合は、モデルが推定した増分効果と実測した増分効果との差を罰する3つ目の目的関数が加わります。出力はパレートフロント上の候補モデルの集合で、分析者がその中から一つを選び、Robynのクラスタリングの手順が、候補のクラスタ内でのROASやCPAのブートストラップ区間を与えます。
そのためRobynは、ベイズの作業手順を持たないチームにも使いやすいライブラリです。明示的な事前分布を書く必要はありませんが、ハイパーパラメータの範囲、正則化、選択基準はそれ自体が仮定を含んでいます。一方で、不確実性は別のものになります。候補モデルにまたがるブートストラップ区間はパラメータの事後分布ではなく、選んだ一つのモデルの上に作ったプランには、2つのベイズ型ライブラリが与える事後分布の幅はありません。MeridianとRobynの違いを一言でいえば、出力の違いです。Robynは候補モデルとブートストラップ区間を、Meridianは事後分布を返します。
何が変わるか:監査可能性、可搬性、キャリブレーション
監査可能性。たとえばテレビCMの飽和の推定を評価するには、保存された事前分布、反応曲線、適合度の診断結果を開くことができ、実測値・予測値・ベンチマークの区分が、プラン上の各数値の出所を示します。予測値は依然としてモデルの出力ですが、その背後の仮定を読める点が違います。
可搬性。Media Plannerは、チームやパートナーが構築したモデルを読み込めるため、プラットフォーム内で新たに推定しなくても、既存のモデルの上でプランを動かせます。プランには、どの数値がどのモデル由来かを示します。
キャリブレーション。Media Plannerは最初のプランから地域別リフト実験を提案し、その実測リターンを次回の推定でチャネルの係数の事前分布に反映します。MMM(マーケティングミックスモデリング)とはでは、モデルの推定と実験の証拠がプランの中でどう組み合わさるかを説明しています。
ライブラリが変えないこともあります。必要なデータ、実験の規律、幅の読み方です。3つのライブラリはいずれも、根拠のある仮定、適切なデータ、検証を必要とします。推定方法とキャリブレーションの方法は異なり、このサイトが解説しているのはMedia Plannerが実行する手法です。
具体例
この例は架空のもので、数値は説明のために仮定したものです。ある小売業者が、検索広告、SNS広告、オンライン動画、テレビCMを運用しており、2年半分の週次データがあります。Media Plannerの既定の事前分布で推定したモデルが、計画中の実験と同等の変更について、テレビCMの平均的な増分リターンを1.6倍、90%信用区間を0.7倍から2.9倍と推定したとします。予算を動かすには広すぎる幅です。チームは6週間の地域別ホールドアウト実験を実施します。一部の地域でテレビCMを停止し、対象外の地域から合成対照群を作ります。
実験が、テレビCMの広告費を1円減らしたときの増分売上を2.1倍、90%信頼区間を1.5倍から2.8倍と、実験期間について推定したとします。Media Plannerでは、この実測リターンを次回の推定でテレビCMの係数の事前分布に反映します。再推定したモデルが同じ量を2.0倍、区間を1.5倍から2.6倍と推定したとしましょう。これは上の区間から計算した値ではなく、仮定した出力です。プランには、予測値の2.0倍と実測値の2.1倍が、それぞれの区間と条件とともに並び、予算を動かす前に、提案する広告費における限界リターンを再推定した曲線から読み取ります。
各ライブラリは、この実験を異なる形で取り込みます。PyMC-Marketingはリフト実験の観測値として尤度に含めることもでき、Meridianはキャリブレーション対象期間のテレビCMのROIの事前分布に翻訳し、Robynはモデル探索の目的関数にある実験結果との誤差に加えます。3つとも証拠を利用しますが、いずれも、実験とモデル化した効果が同じ広告費の変更、期間、対象を指しているかを分析者が確認する必要があります。