モデルの適合度と結果を評価する

マーケティング ミックス モデリング(MMM)の主な目的は、マーケティングの因果効果を正確に推定することですが、因果推論の質を直接検証することは困難であり、適切に設計されたテストが必要です。これらのテストは正しく実施され、MMM と推定値が同じになる必要があります。MMM を使用するため、テストは現実的ではない可能性があります。そのため、因果推論を直接評価することはできません。代わりに、間接的な指標に頼る必要があります。

モデリングの際は、決定予測誤差を最小限に抑えることではなく、因果推論の目標重視で判断を下すことをおすすめします。ガイドラインは次のとおりです。

  • コントロール変数のセットには、メディア マーケティングとレスポンスの両方に影響する重要な交絡変数がすべて含まれていることを確認してください。詳細については、コントロール変数の選択をご確認ください。

  • 実際には交絡因子ではないコントロール変数を含める場合は注意が必要です。変数が多すぎると、過学習やモデルの誤指定バイアスのリスクが高まる可能性があります。

  • 因果推論の学習では、重要なメディア変数のみを追加してください。

  • モデル内の時間効果のノット数の選択のアドバイスに沿って、時間をモデル化します。ノット数を最大限に増やして時間をモデル化する必要はありません。

このプロセスでは広告主様による自己分析が必要ですが、そうすることで最適なモデルの適合につながる可能性が高くなります。独自のメディア戦略を策定したのであれば、メディア マーケティング関連の計画に影響を与えた変数を把握しているか、目星がついているはずです。

結果は妥当である必要があります。妥当ではない結果には、ベースラインが異常に低い(多くの場合マイナス)場合(ベースラインを評価するを参照)や、特定のメディア チャネルが他のすべてのメディア チャネルを圧倒している場合などがあります。メリディアンにはサンプル外の予測指標があります。これは、モデル構造が適切で、過度にパラメータ化されていないことを確認するための予備チェックとして役立ちます。

サンプル外予測指標について

マーケティング ミックス モデリング(MMM)の目標は因果推論であり、必ずしもサンプル外の予測指標を最小化することではありません。モデルが過学習になる場合でも、すべての交絡変数を含むモデルを用意し、モデル構造に十分な柔軟性を持たせて、バイアスがない因果推定(費用対効果など)を取得できるようにすることをおすすめします。

それでも、モデル構造が適切で、過度にパラメータ化されていないことを確認するために、サンプル外の適合度を確認することをおすすめします。ただし、サンプル外の予測指標をモデル適合度の主な評価方法にはしないでください。サンプル外の適合度は、ModelSpecholdout_id 引数と Analyzerpredictive_accuracy メソッドを使用して評価できます。

すべてのパラメータの事後分布の抽出にアクセスする

すべてのパラメータの事後分布の抽出には、メリディアン モデル オブジェクトの inference_data 属性からアクセスできます。

たとえば、mmm という名前の メリディアン モデル オブジェクトから、各メディア チャネルのアルファ(Adstock 減衰パラメータ)の事後分布の値には、プロパティ mmm.inference_data.posterior.alpha_m からアクセスします。そこから、75 パーセンタイルの場合のこの例と同様の構文を使用して、事後分布から任意のパーセンタイルを取得できます。

np.percentile(meridian.inference_data.posterior.alpha_m, 0.75, axis=(0, 1))

ROI が 1 以上の事後確率も計算できます。

(meridian.inference_data.posterior.roi_m >= 1).mean(dim=('chain', 'draw'))

また、パラメータの推定事後分布について、指定した幅の中心的傾向と信頼区間を取得できます。たとえば、alpha_m の平均と 90 パーセンタイルの信頼区間は、次の構文を使用して取得できます。

Analyzer.get_central_tendency_and_ci(mmm.inference_data.posterior.alpha_m, 0.9)

他のすべてのパラメータの事後分布にも、同様の方法でアクセスできます。

モデルの適合度と結果にアクセスする方法

Analyzer クラスには、モデリング後の多くの量を提供するメソッドがいくつかあります。

以下にいくつか例を示します。

  • Analyzer.media_summary_metrics は、チャネル別にまとめられた概要表を返します。対象となる指標には、impressionsspendincremental_outcomepct_of_contributionROIeffectivenessmROI があります。
  • Analyzer.incremental_outcome を使用すると、特定のメディアソースの結果を調べることができます。
  • Analyzer.roi は費用対効果の推定値を提供し、メディア、時間、地域別にカスタマイズできます。
  • Analyzer.marginal_roi は限界費用対効果の推定値を提供し、メディア、時間、地域別にカスタマイズできます。
  • Analyzer.response_curves は、応答曲線のプロットに使用されるデータを返します。
  • Analyzer.predictive_accuracy は、決定係数、MAPE、wMAPE などの予測精度の指標を返します。
  • Analyzer.expected_outcome は、事前分布または事後分布の想定される結果を返します。

メソッドの一覧と、特定の地域や時間の選択など、メソッドの潜在的な仕様について詳しくは、analyzer.py コードをご確認ください。