チャネル調整の推奨事項とスコア

メリディアンのデフォルトの ROI 事前分布は、適度に情報量があります。メリディアン モデルの推定値を改善する最も効果的な方法の一つは、インクリメンタリティ テストを使用して ROI の事前分布を調整することです。インクリメンタリティ テストでは、メリディアンの推定値を調整するための実験的なグラウンド トゥルースを確立し、ROI 指標に因果効果が反映されるようにします。

すべてのメディア チャネルでテストを実施することは、運用が複雑で費用もかかるため、メリディアンは、モデルの不確実性が高いチャネル、潜在的バイアスがあるチャネル、非現実的なベースライン推定値があるチャネルを特定することで、テストの優先順位付けを手助けします。これは、MMM の各チャネルに対して、最上位のチャネル調整の推奨事項とスコアを出力することで行われます。

推奨事項とスコアを使用してこれらのチャネルを特定し、Meridian GeoX で実施されたインクリメンタリティ テストなどによって ROI 事前分布を調整することで、どのチャネルが最もメリットを得られるかを評価できます。Meridian GeoX テストの設定方法と実施方法について詳しくは、Meridian GeoX をご覧ください。

チャネル調整の推奨事項を実行する

メリディアンのチャネル調整の推奨事項とスコアは、モデル健全性レポートで確認できます。このレポートは、次の方法で生成できます。

from IPython import display
from meridian.analysis.review import reviewer
from meridian.model import model

mmm = model.Meridian(...)
health_summary = reviewer.ModelReviewer(mmm).run()

filename = 'health_card.html'
health_summary.output_model_health_card(filename=filename, filepath=meridian_root)
display.HTML(filename=f'{meridian_root}{filename}')

メリディアンが調整用のチャネルを提案する仕組みを理解する

メリディアンは、複合調整スコアを計算し、スコアが 67.5 を下回るチャネルにフラグを付けることで、調整用のチャネルを提案します。複合調整スコアは、特定のチャネルが調整からどの程度のメリットを得られるかを示す統一された指標です。この指標は、非現実的 ROI、高分散 ROI、潜在的バイアスの指標を 1 つのスカラースコアに統合します。

この複合スコアを使用すると、同様にフラグが設定されたチャネルを区別して、優先するチャネルを決定できます。

  • 高スコア(100 に近い): 健全性が高いと考えられ、調整によるメリットは小さいです。
  • 低スコア(0 に近い): 健全性が低いと考えられ、調整によるメリットが大きくなります。

全体的な複合調整スコアは、3 つのコンポーネント スコア(非現実的 ROI スコア、高分散 ROI スコア、潜在的バイアススコア)の加重平均として定義されます。これらのスコアは、4 つの個別のチャネル推奨基準に基づいています。

チャネル推奨事項の条件

メリディアンでは、調整用のメディア チャネルや、リーチとフリークエンシーのチャネルを提案する際に、次の 4 つの項目をチェックします。

  1. ROI 推定値が非現実的に高い。
  2. ROI 推定値が非現実的に低い。
  3. ROI 推定値の分散が大きい。
  4. バイアスが生じる可能性が高い。

「非現実的高 ROI」、「非現実的低 ROI」、「高分散 ROI」の基準は、費用が少ないチャネルほど分散が大きくなる傾向を考慮して、費用で重み付けされています。この傾向により、極端な点推定値と広い事後分布が生じる可能性があります。また、費用で重み付けすることで、ビジネス上の重要性が高く費用のかかるチャネルの調整が優先されます。

全体的な調整の推奨事項は、複合調整スコアに基づいています。いずれかの条件がフラグ付けされると、チャネル調整の推奨事項の要因としてラベル付けされます。このセクションでは、各条件について説明します。

非現実的高 ROI

メリディアンは、費用で重み付けされた ROI を計算し、定義された上限しきい値 \(T_{\text{high_roi}}\)と比較することで、非現実的高 ROI が調整の推奨事項の要因であるかどうかを確認します。チャネル \(i\) は、費用で重み付けされた平均 ROI がしきい値を超えている場合、促進要因となります。

\[ \frac{\text{spend}_{i}}{\sum_{j}\text{spend}_{j}}\cdot ROI_{i} > T_{\text{high_roi}} \]

ここで、 \(\text{spend}_{i}\) と \(ROI_{i}\) はそれぞれチャネル\(i\)の費用と ROI であり、分母の合計はすべての有料メディア チャネルおよびリーチとフリークエンシーのチャネルを対象としています。

デフォルトは \(T_{\text{high_roi}}=20\)です。

非現実的低 ROI

同様に、メリディアンは、費用の逆数で重み付けされた ROI を計算し、定義された下限しきい値 \(T_{\text{low_roi}}\)と比較することで、非現実的低 ROI が調整の推奨事項の要因であるかどうかを確認します。この場合、不等式は下限を示すため、メリディアンは費用の逆数による重み付けを使用します。 チャネル \(i\) は、費用の逆数による加重平均 ROI がしきい値を下回る場合に、要因となります。

\[ \left(\frac{\text{spend}_{i}}{\sum_{j}\text{spend}_{j}}\right)^{-1} \cdot ROI_{i} < T_{\text{low_roi}} \]

ここで、 \(\text{spend}_{i}\) と \(ROI_{i}\) はそれぞれチャネル\(i\)の費用と ROI であり、分母の合計はすべての有料メディア チャネルおよびリーチとフリークエンシーのチャネルを対象としています。

デフォルトは \(T_{\text{low_roi}}=0.5\)です。

高分散 ROI

この基準は、モデルの推定値の不確実性が高いチャネルを特定します。メリディアンは、チャネルの事後分布の ROI 信用区間の幅を、メリディアンのデフォルトの ROI 事前分布の信用区間の幅(デフォルトは LogNormal(0.2, 0.9))と比較することで、分散が大きいかどうかをチェックします。このチェックでは、費用で重み付けされ、正規化された 80 パーセンタイルの信用区間の事後分布の幅を、デフォルトのメリディアン事前分布(LogNormal(0.2, 0.9))の 80 パーセンタイルの信用区間の幅と比較します。この相対幅がしきい値 \(T_{\text{high_variance}}\)を超えると、チャネル \(i\) にフラグが設定されます。具体的には、次のようになります。

  • \(\text{CI}^{(u)}\) を、チャネル \(i\)の ROI 事後分布における 80 パーセンタイル信用区間の上限とします。
  • \(\text{CI}^{(l)}\) を、チャネル \(i\)の ROI 事後分布における 80 パーセンタイル信用区間の下限とします。
  • \(\tilde{x} \) を、チャネル \(i\)の ROI 事後分布における中央値とします。
  • \(\text{CI}_\text{default}^{(u)}=2.64\) を、メリディアンのデフォルトの ROI 事前分布における 80 パーセンタイル信用区間の上限とします。
  • \(\text{CI}_\text{default}^{(l)}=0.11\) を、メリディアンのデフォルトの ROI 事前分布における 80 パーセンタイル信用区間の下限とします。
  • \(\tilde{x}_\text{default}=1.22\) を、メリディアンのデフォルトの ROI 事前分布における中央値とします。

高分散 ROI のチェックは、次のとおりです。

\[ \left(\frac{\text{spend}_{i}}{\sum_{j}\text{spend}_{j}}\right)\left(\frac{( \text{CI}^{(u)} - \text{CI}^{(l)} ) / \tilde{ x}}{(\text{CI}_\text{default}^{(u)} - \text{CI}_\text{default}^{(l)}) /\tilde{x}_\text{default} }\right) > T_\text{high_variance} \]

ここで、 \(\text{spend}_{i}\) はチャネル \(i\) の費用、分母の合計はすべての有料メディア チャネルおよびリーチとフリークエンシーのチャネルを対象としています。

デフォルトは \(T_\text{high_variance}=1.0\)です。

潜在的バイアス(交絡因子が欠落しているチャネル)

モデルに主要な交絡変数が欠落している場合、メリディアンの ROI 事後分布推定値にバイアスが生じる可能性があります。たとえば、モデルにホリデー シーズンの交絡因子がない場合、自然な売上の増加が、その期間にたまたま費用を増やしたチャネルによって引き起こされたと誤って推定される可能性があります。 テストベースの調整は、モデルの ROI 推定値を実際の因果データに根拠づけることで、このバイアスを修正するのに役立ちます。

メリディアンは、有料メディア チャネルやリーチとフリークエンシーのチャネルについて、すべての地域におけるコントロール変数との最大絶対相関を計算し、しきい値 \(T_\text{bias}\)と比較することで、潜在的バイアスをチェックします。

特定の有料メディア チャネルまたはリーチとフリークエンシーのチャネル \(i\)について、\(E_{g,t,i}\) をその実施レベルとします。

\[ E_{g,t,i} = \begin{cases} x^{[M]}_{g,t,i} & \text{for paid media channels} \\ r^{[RF]}_{g,t,i} \cdot f^{[RF]}_{g,t,i} & \text{for paid reach and frequency channels} \end{cases} \]

ここで、 \(x^{[M]}_{g,t,i}\) は、地域 \(g\) 、時間 \(t\) における有料メディア チャネル \(i\) の実施です。 \(r^{[RF]}_{g,t,i}\) と\(f^{[RF]}_{g,t,i}\) はそれぞれ、地域 \(g\) 、時間 \(t\)におけるリーチとフリークエンシーのチャネル \(i\) のリーチとフリークエンシーです。

このチェックでは、すべての地域にわたるコントロール変数 \(j\) との最大絶対相関がしきい値を下回る場合、チャネル \(i\) にフラグが付けられます。

\[ \max_{j, g} |\text{corr}_t (E_{g,t,i}, z^{[C]}_{g,t,j}) | < T_\text{bias} \]

ここで、 \(\text{corr}_t(E_{g,t,i}, z^{[C]}_{g,t,j})\) は、地域 \(g\)におけるチャネルの実施とコントロール変数\(z^{[C]}_{g,t,j}\) の間の経時的な相関関係です。

デフォルトは \(T_\text{bias}=0.1\)です。

メリディアンのチャネル推奨事項の複合スコアについて

チャネルの推奨事項の複合スコアは、非現実的 ROI スコア、高分散 ROI スコア、潜在的バイアススコアの加重平均です。3 つの個別のコンポーネント スコアは、要因の有無によるフラグを 0~100 の連続スコアに変換することで定義されます。非現実的 ROI スコアは、非現実的低 ROI と非現実的高 ROI の両方をカバーするため、0.5 の重みとします。一方、高分散 ROI スコアと潜在的バイアススコアは、どちらも 0.25 の重みとします。

\[ \begin{align} \text{composite_calibration_score}\;=\;& 0.5 \cdot \text{implausible_roi_score} \\ +\;& 0.25 \cdot \text{high_variance_roi_score} \\ +\;& 0.25 \cdot \text{potential_bias_score} \end{align} \]

非現実的 ROI スコア

非現実的 ROI スコアは、非現実的低 ROI と非現実的高 ROI のチェックを 1 つのスコアにまとめた複合指標です。メリディアンでは、低 ROI と高 ROI のしきい値の幾何学的中心からの距離を使用してスコアを定義します。中心から離れるほど、スコアは低くなります。高 ROI または低 ROI のしきい値を超えると、スコアは急速に低下し、ROI がゼロまたは無限大に近づくにつれてゼロに近づきます。

非現実的な ROI の正規化されたボウル型スコアのヒートマップ。

詳細については、付録の非現実的 ROI スコアをご覧ください。

高分散 ROI スコア

高分散 ROI スコアは、ROI の事後分布信用区間の幅に基づく、非現実的な ROI スコアの片側バージョンです。費用で重み付された相対的な信用区間が 0.5 未満の場合、スコアは 100 に設定されます。費用で重み付けされた相対的な信用区間が大きくなると、スコアは小さくなります。

高分散 ROI の正規化されたハーフボウル型スコアのヒートマップ。

詳細については、付録の高分散 ROI スコアをご覧ください。

潜在的バイアススコア

潜在的バイアススコアは、チャネルとコントロール間の最大相関を評価します。これは、最大相関(絶対値)と指数に基づく、べき乗関係に従って定義されます。

潜在的バイアススコアのべき乗関数。

詳細については、付録の潜在的バイアススコアをご覧ください。

モデルレベルの複合調整スコアについて

モデルレベルの複合調整スコアは、各チャネルの調整スコアの平均です。調整されたチャネルのスコアは平均で 100 に設定され、調整されたことを反映しています。

CalibrationBuilder を使用していないものの、モデルレベルの複合スコアを正確に計算するためにチャネルを調整済みとしてフラグ設定する場合は、CalibratedDistribution クラスを直接使用できます。

import numpy as np
import tensorflow_probability.substrates.jax as tfp_jax
from meridian.model.calibration import base
from meridian.model import prior_distribution

# Two media channels. The second channel is self-calibrated
distributions = tfp_jax.distributions.LogNormal(
    np.array([0.2, 0.3], dtype=np.float64),
    np.array([0.9, 0.7], dtype=np.float64),
)
roi_m_prior = base.CalibratedDistribution(
    distributions,
    is_calibrated=[False, True],
)
prior = prior_distribution.PriorDistribution(
    roi_m=roi_m_prior,
)
# Pass prior to ModelSpec and continue with modeling

数学的付録

このセクションでは、非現実的 ROI スコア、高分散 ROI スコア、潜在的バイアススコアの技術的な詳細について説明します。以下で使用されている数学表記の詳細については、数学表記リファレンスをご覧ください。

非現実的 ROI スコア

メリディアンは、簡潔さとユーザーの理解を優先するよう、低 ROI と高 ROI の基準を組み合わせて正規化したボウル型の式を使用します。この式では、フラグが設定されていない領域の幾何学的中心からの正規化された対数距離が計算されます。スコアの計算手順は次のとおりです。

  1. 低しきい値と高しきい値の幾何学的中心が定まります。
  2. チャネルの ROI からこの中心までの距離は、境界を基準に計算されます。
  3. 結果のスコアはボウル形状で定義されます。ここで、ハイパーパラメータ k はボウルの傾斜を定義します。

具体的には、 \(z = \log \left(r / M \right)\) を、低 ROI と高 ROI のしきい値 \(M = \sqrt{T_{\text{low_roi}} \cdot T_{\text{high_roi}}} = \sqrt{10}\)の幾何学的中心からの対数距離とします。次に、任意の費用割合 \(S_{\%}\)について、 \(M\) から上限と下限までの距離は \(\pm D\) です。ここで、

\[ D = \log \left(\frac{1}{S_{\%}}\sqrt{\frac{T_{\text{high_roi}}}{T_{\text{low_roi}}}}\right) \]

比率 \(z / D\) が境界までの正規化された対数距離を定義するようにします。次に、正規化されたボウル型スコアを次のように定義します。

\[ S_\text{bowl} = 100 \cdot \exp \left( - k \left(\frac{z}{D}\right)^2\right) \]

ここで、 \(k\) はボウルの傾斜を定義するハイパーパラメータです。境界に沿って \(S_\text{bowl} = 1/2\) となるように \(k = \log (2)\) を選択します。

高分散 ROI スコア

高分散 ROI スコアは、非現実的 ROI スコアで使用される正規化されたボウルの片側バージョンです。分散の基準点はゼロであるため、正規化ボウルで使用される標準の対数アプローチは、基準点付近で不適切に定義されます。

この問題を解決するため、メリディアンでは、非現実的 ROI のチェックで使用される正規化されたボウル型関数に基づいて、正規化されたハーフボウル型関数を使用します。このハーフボウル型の式は、事後分布の相対的な信用区間の関数です。つまり、メリディアンのデフォルトの ROI 事前分布(LogNormal(0.2, 0.9))における 80 パーセンタイル信用区間の幅に対する、費用で重み付けされ、正規化された事後分布の ROI における 80 パーセンタイル信用区間です。信用区間は、最高密度区間とみなされます。

相対的な信用区間に対して、理想的な基準領域が定義されます。費用で重み付けされた相対的な信用区間の幅が 0.5 未満の場合、スコアは 100 に設定されます。相対的な信用区間が理想的なポイントを超えて増加すると、スコアはハーフボウル曲線に沿って減少します。具体的には、 \(S_{\%} \cdot \text{RCI} < T_{\text{ideal}} = 0.5\)のすべての値(RCI は ROI 事後分布の相対的な信用区間)について、スコアは 100 に設定されます。

\[ S_{\text{half_bowl}}(\text{RCI}, S_{\%}) = \begin{cases} 100, & S_{\%} \cdot \text{RCI} \le T_{\text{ideal}} \\ 100 \cdot \exp\left(-k \left(\frac{\ln(S_{\%} \cdot \text{RCI}/T_{\text{ideal}})}{\ln(T_{\text{high_variance}}/T_{\text{ideal}})}\right)^2\right), & S_{\%} \cdot \text{RCI} > T_{\text{ideal}} \end{cases} \]

非現実的 ROI スコアと同様に、 \(k = \log(2)\) が使用されます。

潜在的バイアススコア

潜在的バイアススコアは、チャネルとコントロール間の最大相関の関数です。これは、最大相関(絶対値)と指数に基づく、べき乗関係に従って定義されます。指数は、相関しきい値 0.1 で潜在的バイアススコアが正確に 50 になるように明示的に選択されます。

  • 最大相関が 0.0 から 0.1 になるとペナルティは急激に増加し、スコアは 50 になります。
  • 0.1 を超えると、スコアは徐々に増加し、相関が 1.0 になるとペナルティが最大になります。

具体的には、潜在的バイアススコアには、べき乗関係があります。

\[ C_\text{bias} = 100 \cdot \left(b_\text{max}\right) ^ p, \]

ここで、 \(b_\text{max}\) は、すべての地域における、特定のチャネルについてのその実行と任意のコントロール変数との間の最大絶対相関です。

\[ b_\text{max} = \max_{j, g} |\text{corr}_t (E_{g,t,i}, z^{[C]}_{g,t,j}) | \]

\(E_{g,t,i}\) は、有料メディア チャネルの場合は \(x^{[M]}_{g,t,i}\) 、有料のリーチとフリークエンシーのチャネルの場合は\(r^{[RF]}_{g,t,i} \cdot f^{[RF]}_{g,t,i}\) です。ここで、 \(p\) は指数です。 \(p=\log(0.5) / \log(T_\text{bias})\)は、潜在的バイアス チェックのしきい値 \(T_\text{bias} = 0.1\)で潜在的バイアススコアが 50 になるように選択されます。