標準のメリディアン モデルは地域レベルの階層モデルで、メディア変数に非線形パラメータ変換が適用されます。ランダム係数が地理的地域間の異質性を考慮します。
地域レベルのデータを使って、推定の信頼性を高めることをおすすめします。全国モデル(本質的に単一地域モデル)は、地域レベルのデータが利用できない場合に使用できます。詳しくは、全国レベルのモデリングをご覧ください。
メリディアン モデルは、過去に提案されたベイズモデル(Jin et al. 2017 および Sun et al. 2017)の拡張版です。拡張版では、リーチとフリークエンシーのデータが使用され(Zhang et al. 2023)、傾向と季節性をモデル化するため時間変動切片項(Ng et al. 2021 による傾向と季節性のモデリング関連)が追加されています。また、メディア以外のトリートメント変数とオーガニック メディア変数も追加されています。
このモデルは次のように表されます。
基本情報
基本情報は次のとおりです。
インデックス変数(入力データの中で定義):
- \(g=1,\ldots,G\) は、地理的単位をインデックスに登録
- \(t=1,\ldots,T\) は、時間単位をインデックスに登録
- \(i=1,\ldots,N_C\) はコントロール変数をインデックスに登録します。
- \(i=1,\ldots,N_N\) は、メディア以外のトリートメントをインデックスに登録します。
- \(i=1,\ldots,N_M\) は、リーチとフリークエンシーのデータがない有料メディア チャネルをインデックスに登録します。
- \(i=1,\ldots, N_{OM}\) は、リーチとフリークエンシーのデータがないオーガニック メディア チャネルをインデックスに登録します。
- \(i=1,\ldots,N_{RF}\) は、リーチとフリークエンシーのデータがある有料メディア チャネルをインデックスに登録します。
- \(i=1,\ldots, N_{ORF}\) は、リーチとフリークエンシーのデータがあるオーガニック メディア チャネルをインデックスに登録します。
\(\tau_b = 0\) は、一部のベースライン地域 \(b\)の識別可能性を示します。
baseline_group
引数を使用すると、任意の地域をベースラインとして設定できます。\(\{q_{t-s}\}^L_{s=0}\) は、ベクトル\((q_t, q_{t-1}, \ldots, q_{t-L})\)を表します。この表記は、Adstock 関数の入力値を表すために使用されます。
整数値 \(L\) は、メディアの効果が現れるまでの最長時間です(メディア効果の最長継続時間など)。このパラメータは、
max_lag
引数を使用して設定できます。\(\text{Hill}()\) 関数と \(\text{Adstock}()\)関数については、次の点にご留意ください。詳しくは、メディアの飽和と遅延をご確認ください。
$$ \text{Adstock} \left( \left\{ q_{t-s} \right\}^L_{s=0},\ \alpha \right) = \dfrac{\sum\limits^{L}_{s=0}\ \alpha^s q_{t-s} }{\sum\limits^L_{s=0}\ \alpha^s} $$ここで
- \(q>0,\ 0 \leq \alpha \leq 1\)
- \(\alpha \) は幾何級数的な減衰率です。
$$ \text{Hill} \left( q, ec, \text{slope} \right) = \left( 1 + \left( \dfrac{q}{ec} \right)^{- \text{slope} } \right)^{-1} $$ここで
- \(q>0,\ ec>0,\ \text{slope} > 0\)
- \(ec, \text{slope}\) は Hill 関数の形状と傾きのパラメータです。
\(\text{HillAdstock}()\) 関数は
hill_before_adstock
引数に依存します。- デフォルトが
hill_before_adstock = False
なら、\(\text{HillAdstock}(q;\ \alpha, ec, \text{slope}) = \text{Hill}(\text{Adstock}(q;\ \alpha);\ ec, \text{slope})\) hill_before_adstock = True
なら、\(\text{HillAdstock}(q;\ \alpha, ec, \text{slope}) = \text{Adstock}(\text{Hill}(q;\ ec, \text{slope}); \alpha)\)
- デフォルトが
\( \mu_t \) パラメータ
\(\mu_t\) パラメータは時間変動する切片で、傾向と季節性の要素をモデルに加えます。
\(\mu_t\) は、対応するタイムポイント\(s_1,s_2,\dots,s_K\)に配置される一連の
knot
パラメータ\(b_1,b_2,\dots,b_K\) によって決まります。タイムポイント $s_1,\dots,s_K$ は \(1\) と \(T\) の間に位置し、
knots
引数で指定されます。ノットの位置のリストを指定することも、ノットの数だけを指定することもできます。
ノットの数を指定する場合、ノットは等間隔で配置され、エンドポイント($s_1=1$ と $s_K=T$)に 2 つのノットが配置されます。
複数の地域(\(G>1\))がある場合は、デフォルトで各タイムポイント($s_1=1,s_2=2,\dots,s_K=T$、なお $K=T$)にノットが配置されます。
\(G=1\) (全国レベルのモデルなど)の場合、デフォルトは単一のノット(実質的にすべての期間で共通の切片)です。
\(\mu_t\) 値は、隣接する 2 つのノットの加重平均です。近いノットほど重み付けが高くなります(たとえば、タイムポイント 9 とタイムポイント 18 にノットが配置されているとします。$\mu_{16}$ の推定値は、タイムポイント 9 のノットとタイムポイント 18 のノットの両方の影響を受けますが、タイムポイント 18 のノットにはより大きな重みが付けられます)。正確な重み付けの計算方法は次のとおりです。すべての \(t\)について、次のように定義します。
$\ell(t)$ と $u(t)$ は、最も隣接するノットのノット インデックスを表します。通常は $\ell(t) < u(t)$ ですが、$t$ がノットの位置と完全に一致する場合、または $t$ が最初のノットの前または最後のノットの後にある場合(カスタム ノットの位置が設定されている場合や、1 つのノットのみを使用している場合など)は、$\ell(t) = u(t)$ になります。
\(\ell(t) = \max \{\{1\} \cup \{k: s_k \leq t\}\}\)
- 注: $t < s_1$ の場合は $\ell(t) = 1$ になります。
\(u(t) = \min \{\{K\} \cup \{k: s_k > t\}\}\)
- 注: $u(t) = $t > s_K$ の場合は K$ になります。
\(\ell(t) = u(t)\) の場合は\(w(t) = 1\) になります。それ以外の場合は\(w(t) = \dfrac{s_{u(t)}-t}{s_{u(t)}-s_{\ell(t)}}\)になります。
\(\mu_t = w(t)b_{\ell(t)} + (1-w(t))b_{u(t)}\)
ノット値 \(b_1,b_2,\dots,b_K\) は、ユーザー指定の事前分布を持ちます。
この手法は、ベイズ時変係数モデルとマーケティング ミックス モデリングへの応用に基づいていますが、その論文とは別の重み関数を使用していること、事前分布が異なること、自己回帰が存在しないことなど、いくつか重要な違いがあります。
ノットの設定について詳しくは、knots
引数の仕組みをご覧ください。
その他のパラメータの分布
その他のパラメータの分布は次のとおりです。
なお、ここで Meridian は、正規分布をその平均と標準偏差を用いてパラメータ化しています。
- \(\gamma_{g,i}^{[C]} \sim \text{Normal}(\gamma_i^{[C]},\xi_i^{[C]})\)
- \(\gamma_{g,i}^{[N]} \sim \text{Normal}(\gamma_i^{[N]},\xi_i^{[N]})\)
\(\beta\) 分布は、次のように
media_effects_dist
引数によって異なります。- \(log(\beta_{g,i}^{[M]})\sim \text{Normal}( \beta_i^{[M]},\eta_i^{[M]})\)
- \(log(\beta_{g,i}^{[OM]})\sim \text{Normal}( \beta_{i}^{[OM]},\eta_{i}^{[OM]})\)
- \(log(\beta_{g,i}^{[RF]})\sim \text{Normal}( \beta_{i}^{[RF]},\eta_{i}^{[RF]})\)
\(log(\beta_{g,i}^{[ORF]})\sim \text{Normal}( \beta_{i}^{[ORF]},\eta_{i}^{[ORF]})\)
media_effects_dist = LOG_NORMAL
の場合\(\beta_{g,i}^{[M]} \sim \text{Normal}( \beta_i^{[M]},\eta_i^{[M]})\)
\(\beta_{g,i}^{[OM]} \sim \text{Normal}( \beta_{i}^{[OM]},\eta_{i}^{[OM]})\)
\(\beta_{g,i}^{[RF]} \sim \text{Normal}( \beta_{i}^{[RF]},\eta_{i}^{[RF]})\)
\(\beta_{g,i}^{[ORF]} \sim \text{Normal}( \beta_{i}^{[ORF]},\eta_{i}^{[ORF]})\)
media_effects_dist = NORMAL
の場合
\(\epsilon_{g,t}\sim \text{Normal}(0,\sigma_g)\):
残差は相互に独立しており、すべてのメディア変数と制御変数、すべてのモデル パラメータから独立しています。
unique_sigma_for_each_geo = False
(デフォルト)の場合は、\(\sigma_1=\sigma_2=\cdots=\sigma_G=\sigma\)です。
残りのパラメータはすべて、ユーザー指定の事前分布を持ちます。
\( \{\gamma_i^{[C]}\}, \{\gamma_i^{[N]}\}, \{\xi_i^{[C]}\}, \{\xi_i^{[N]}\}, \)
\( \{\beta_i^{[M]}\}, \{ \beta_{i}^{[OM]} \}, \{ \beta_{i}^{[RF]} \}, \{ \beta_{i}^{[ORF]} \}, \)
\( \{\eta_i^{[M]}\}, \{ \eta_{i}^{[OM]} \}, \{\eta_{i}^{[RF]}\}, \{ \eta_{i}^{[ORF]} \}, \)
\( \{\alpha_i^{[M]}\}, \{ \alpha_{i}^{[OM]} \}, \{\alpha_{i}^{[RF]}\}, \{ \alpha_{i}^{[ORF]} \}, \)
\( \{ec_i^{[M]}\}, \{ ec_{i}^{[OM]} \}, \{ec_{i}^{[RF]}\}, \{ ec_{i}^{[ORF]} \}, \)
\( \{slope_i^{[M]}\}, \{ slope_{i}^{[OM]} \}, \{slope_{i}^{[RF]}\}, \{ slope_{i}^{[ORF]} \}, \)
\( \{\tau_g\}, \{\sigma_g\}. \)
モデル仕様の一部は、次のセクション(メディアの飽和と遅延、リーチとフリークエンシー、有料検索、調整対象の ROI 事前分布)で説明されているモデリング オプションに基づいて変更できます。また、デフォルトの事前分布をカスタマイズすることもできます。