第1回と第2回でマーケティング(メディア)・ミックス・モデリングに関する概要を簡単に解説いたしました。今回はMMMの仕組をご紹介します。仕組みを知ることで理解が深まると思います。
MMMの仕組み
MMMの仕組は回帰分析の一種で、前回の記事で解説した、MMMの2つの特徴である「応答曲線」と「アドストック」と時系列データの特徴でもあるトレンドや季節性を加味した計算式です。
例えば、KPIを売上としたイメージでは、
売上 = 応答曲線・アドストック変換(TV広告 + SNS広告 + ・・・ )
+ トレンド + 季節性 + 切片 + ノイズ
のように、広告効果を説明変数として売上を算出する数式として表すことができます。数式は変数とパラメータがあり、パラメータがわかればモデルができます。
MMMではモデリングを行うにあたっては、オープンソースでMMM専用のライブラリが幾つか公開されていますので、ライブラリを活用することで、モデルの作成ができます。
MMM専用ライブラリ
PyMC Labsがライブラリの比較を行っています。PyMC LabはPyMC-Marketingの提供元ですので、比較の仕方に若干バイアスが入っているかもしれません。ライブラリによって様々なモデルが用意されていますので、複数試してみると良いと思います。Pythonの場合は、PyMC-MarketingとLightweightMMMの2種類(OrbitはMMMの機能に乏しい)ですので、両方を試してフィットする方を選んでも良いかと思います。
出典:https://www.pymc-marketing.io/en/stable/guide/mmm/comparison.html
PyMC-Marketing
PyMC-MarketingとLightweightMMMは共にベイズ推定を用いたライブラリです。ベイズ推定とは、尤度、事前分布、観測値、事後分布からなり、サンプリングによってパラメータを推定します。(詳しい説明は省略します)
PyMC-Marketingのモデルの全体像です。(残念ながら、LightweightMMMではモデル構造を出力することはできませんでした。)
Channel Contributions (channel_contributions
):
個々のマーケティングチャネルが全体の売上、もしくはモデル化している説明変数に与える寄与度です。寄与度は、応答曲線やアドストック変換の影響を加味しています。応答曲線変換は施策の逓減効果で、アドストックは広告の持続効果をあらわしています。これらの変換を行うパラメータを推定するにあたって、事前分布として確率分布を定義するのですが、何の確率分布を選ぶかを設定できるようになっています。(図はデフォルト値)
Fourier Contributions (fourier_contributions
):
データの季節性をモデル化するために、フーリエ変換を用いています。これは、休日、季節、その他の定期的なイベントに起因する売上高の周期的な変動を捉えるのに役立ちます。
Control Contributions (control_contributions
):
モデルの結果に影響を与える可能性があるものの、マーケティング活動とは直接関係のない外的要因を表しています。例えば、競合他社の行動などを外生変数として別々におりこむことで、マーケティングチャネルの影響を外的要因の影響から分離することができます。
Intercept (intercept
):
広告等のマーケテイング活動が全くない場合のベースラインです。
mu:
そして、各要素から「mu」が算出される構造になっています。「mu」はモデルにおける予測される目標変数(売上やコンバージョンなど)の平均値を表すパラメータです。以下の数式のように、muはモデルの全ての要素を組み合わせた結果といえます。
mu = Base + ∑(Channel Contributions) + ∑(Fourier Contributions) + ∑(Control Contributions) + Intercept
このmuの値からtargetを予測していますので、モデルを通じて得られる目標変数の予測値といます。つまり、muを最適化することによって、ROIを最大化し、より効果的な予算配分を実現が可能になるという仕組みです。
以上が、PyMC-Marketingのモデルの説明でした。