モデル仕様

標準のメリディアン モデルは地域レベルの階層モデルで、メディア変数に非線形パラメータ変換が適用されます。ランダム係数が地理的地域間の異質性を考慮します。

地域レベルのデータを使って、推定の信頼性を高めることをおすすめします。全国モデル(本質的に単一地域モデル)は、地域レベルのデータが利用できない場合に使用できます。詳しくは、全国レベルのモデリングをご覧ください。

メリディアン モデルは、過去に提案されたベイズモデル(Jin et al. 2017 および Sun et al. 2017)の拡張版です。拡張版では、リーチとフリークエンシーのデータが使用され(Zhang et al. 2023)、傾向と季節性をモデル化するため時間変動切片項(Ng et al. 2021 による傾向と季節性のモデリング関連)が追加されています。また、メディア以外のトリートメント変数とオーガニック メディア変数も追加されています。

このモデルは次のように表されます。

$$ \begin{align*} y_{g,t} = \mu_t + \tau_g &+ \sum\limits_{i=1}^{N_{C}} \gamma^{[C]}_{g,i} z_{g,t,i} \\ &+ \sum\limits_{i=1}^{N_N} \gamma^{[N]}_{g,i} x^{[N]}_{g,t,i} \\ &+ \sum\limits_{i=1}^{N_M} \beta^{[M]}_{g,i} HillAdstock \left( \left\{ x^{[M]}_{g,t-s,i} \right\}^L_{s=0}\ ;\ \alpha^{[M]}_i, ec^{[M]}_i, \ slope^{[M]}_i \right) \\ &+ \sum\limits_{i=1}^{N_{OM}} \beta^{[OM]}_{g,i} HillAdstock \left( \left\{ x^{[OM]}_{g,t-s,i} \right\}^L_{s=0}\ ;\ \alpha^{[OM]}_i, ec^{[OM]}_{i}, \ slope^{[OM]}_{i} \right) \\ &+ \sum\limits_{i=1}^{N_{RF}} \beta^{[RF]}_{g,i} Adstock \left( \left\{ r^{[RF]}_{g,t-s,i} \cdot Hill \left( f^{[RF]}_{g,t-s,i};\ ec^{[RF]}_{i},\ slope^{[RF]}_{i} \right) \right\}^L_{s=0}\ ;\ \alpha^{[RF]}_{i} \right) \\ &+ \sum\limits_{i=1}^{N_{ORF}} \beta^{[ORF]}_{g,i} Adstock \left( \left\{ r^{[ORF]}_{g,t-s,i} \cdot Hill \left( f^{[ORF]}_{g,t-s,i};\ ec^{[ORF]}_{i},\ slope^{[ORF]}_{i} \right) \right\}^L_{s=0}\ ;\ \alpha^{[ORF]}_{i} \right) \\ &+ \epsilon_{g,t} \end{align*} $$

基本情報

基本情報は次のとおりです。

  • インデックス変数(入力データの中で定義):

    • \(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 事前分布)で説明されているモデリング オプションに基づいて変更できます。また、デフォルトの事前分布をカスタマイズすることもできます。