Nachdem das Modell erstellt wurde, müssen Sie die Konvergenz bewerten, ggf. entsprechende Fehler im Modell beheben und dann die Modellanpassung bewerten.
Konvergenz bewerten
Sie müssen die Konvergenz des Modells bewerten, um seine Integrität zu überprüfen.
Mit dem Befehl plot_rhat_boxplot
unter visualizer.ModelDiagnostics()
wird die potenzielle Skalenreduktion für Kettenkonvergenz nach Gelman und Rubin (1992), die allgemein als R-hat bezeichnet wird, zusammengefasst und berechnet.
Diese Diagnose für die Konvergenz misst, inwieweit die Varianz (der Mittelwerte) zwischen den Ketten über dem liegt, was Sie erwarten würden, wenn die Ketten identisch verteilt wären.
Für jeden Modellparameter gibt es einen einzelnen R-hat-Wert. Das Boxplot fasst die Verteilung der R-hat-Werte über die Indexe zusammen. Das Boxplot für das X-Achsen-Label beta_gm
fasst beispielsweise die Verteilung der R-hat-Werte sowohl für den geografischen Index g
als auch für den Channel-Index m
zusammen.
Werte nahe 1,0 deuten auf eine Konvergenz hin. Ein R-hat-Wert < 1,2 weist auf eine ungefähre Konvergenz hin und ist ein angemessener Grenzwert für viele Probleme (Brooks und Gelman, 1998).
Ein Mangel an Konvergenz hat in der Regel eine von zwei Ursachen. Entweder ist das Modell sehr schlecht für die Daten spezifiziert, was an der Likelihood (Modellspezifikation) oder dem Prior liegen kann. Oder das Burnin ist zu kurz, d. h. n_adapt + n_burnin
ist nicht groß genug.
Wenn Probleme mit der Konvergenz auftreten, lesen Sie MCMC-Konvergenz erreichen.
R-hat-Boxplot generieren
Führen Sie die folgenden Befehle aus, um ein R-hat-Boxplot zu generieren:
model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.plot_rhat_boxplot()
Beispielausgabe:
Spur- und Dichteplots generieren
Sie können Spur- und Dichteplots für Markow-Chain-Monte-Carlo-Stichproben (MCMC) erstellen, um die Konvergenz und Stabilität über Ketten hinweg zu bewerten. Jede Spur im Spurplot stellt die Abfolge der Werte dar, die vom MCMC-Algorithmus beim Untersuchen des Parameterraums generiert werden. Es zeigt, wie der Algorithmus in aufeinanderfolgenden Iterationen verschiedene Werte der Parameter durchläuft. Versuchen Sie, in den Spurplots flache Bereiche zu vermeiden, in denen die Kette zu lange im selben Zustand bleibt oder zu viele aufeinanderfolgende Schritte in eine Richtung aufweist.
In den Dichteplots auf der linken Seite wird die Dichteverteilung der Stichprobenwerte für einen oder mehrere Parameter dargestellt, die mit dem MCMC-Algorithmus ermittelt wurden. Im Dichteplot sollten Sie sehen, dass die Ketten zu einer stabilen Dichteverteilung konvergiert sind.
Im folgenden Beispiel wird gezeigt, wie Sie Spur- und Dichteplots generieren:
parameters_to_plot=["roi_m"]
for params in parameters_to_plot:
az.plot_trace(
meridian.inference_data,
var_names=params,
compact=False,
backend_kwargs={"constrained_layout": True},
)
Beispielausgabe:
Prior- und Posterior-Verteilungen prüfen
Wenn die Daten nur wenige Informationen enthalten, fallen Prior und Posterior ähnlich aus. Weitere Informationen finden Sie unter Wenn der Posterior gleich dem Prior ist.
Bei Channels mit niedrigen Ausgaben ist es besonders wahrscheinlich, dass der ROI-Posterior dem ROI-Prior ähnelt. Um das Problem zu beheben, empfehlen wir, Channels mit sehr niedrigen Ausgaben entweder zu entfernen oder beim Vorbereiten der Daten für das MMM mit anderen Channels zu kombinieren.
Führen Sie die folgenden Befehle aus, um die Posterior-Verteilung für den ROI im Vergleich zur entsprechenden Prior-Verteilung für die einzelnen Media-Channels darzustellen:
model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.plot_prior_and_posterior_distribution()
Beispielausgabe: (Klicken Sie auf das Bild, um es zu vergrößern.)
Standardmäßig generiert plot_prior_and_posterior_distribution()
den Posterior und Prior für den ROI. Sie können jedoch bestimmte Modellparameter an plot_prior_and_posterior_distribution()
übergeben, wie im folgenden Beispiel gezeigt:
model_diagnostics.plot_prior_and_posterior_distribution('beta_m')
Modellanpassung bewerten
Nachdem die Modellkonvergenz optimiert wurde, sollten Sie die Güte der Anpassung Ihres Modells bewerten. Weitere Informationen finden Sie unter Modellanpassung bewerten und Nach der Modellierung.
Beim Marketing Mix Modeling (MMM) müssen Sie sich auf indirekte Messungen verlassen, um die kausale Inferenz zu bewerten und sinnvolle Ergebnisse zu erhalten. Dazu bieten sich zwei Möglichkeiten an:
- Sie können Messwerte für R-Quadrat, den mittleren absoluten prozentualen Fehler (Mean Absolute Percentage Error, MAPE) und den gewichteten mittleren absoluten prozentualen Fehler (Weighted Mean Absolute Percentage Error, wMAPE) berechnen oder
- Diagramme für den erwarteten und den tatsächlichen Umsatz oder KPI generieren, je nach
kpi_type
und Verfügbarkeit vonrevenue_per_kpi
.
Messwerte für R-Quadrat, MAPE und wMAPE berechnen
Mithilfe von Messwerten zur Güte der Anpassung lässt sich überprüfen, ob die Modellstruktur angemessen ist und nicht zu viele Parameter enthält. ModelDiagnostics
berechnet die Messwerte zur Güte der Anpassung R-Squared
, MAPE
und wMAPE
. Wenn holdout_id
in Meridian festgelegt ist, werden R-squared
, MAPE
und wMAPE
auch für die Teilmengen Train
und Test
berechnet. Messwerte zur Güte der Anpassung sind ein Maß für die Vorhersagegenauigkeit, was normalerweise nicht das Ziel eines MMM ist.
Sie sind aber trotzdem nützlich zur Überprüfung des Vertrauens.
Führen Sie die folgenden Befehle aus, um die Messwerte für R-Quadrat, MAPE und wMAPE zu berechnen:
model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.predictive_accuracy_table()
Beispielausgabe:
Diagramme für erwartete und tatsächliche Werte erstellen
Diagramme mit erwarteten und tatsächlichen Werten können hilfreich sein, um die Modellanpassung auf indirekte Weise zu bewerten.
Landesebene: Erwartete und tatsächliche Werte
Sie können den tatsächlichen Umsatz oder KPI neben dem erwarteten Umsatz oder KPI des Modells auf Landesebene darstellen, um die Modellanpassung zu bewerten. Die Baseline ist die kontrafaktische Schätzung des Umsatzes (oder KPI) des Modells ohne Media-Ausführung. Den Umsatz so zu schätzen, dass er möglichst nah am tatsächlichen Wert liegt, ist nicht unbedingt das Ziel eines MMM, aber es kann als nützliche Vertrauensprüfung dienen.
Führen Sie die folgenden Befehle aus, um den tatsächlichen Umsatz (oder KPI) im Vergleich zum erwarteten Umsatz (oder KPI) für Daten auf Landesebene darzustellen:
model_fit = visualizer.ModelFit(meridian)
model_fit.plot_model_fit()
Beispielausgabe:
Geografische Ebene: Erwartete und tatsächliche Werte
Sie können die erwarteten und tatsächlichen Werte auf geografischer Ebene darstellen, um die Modellanpassung zu prüfen. Da es viele geografische Einheiten geben kann, sollten Sie eventuell nur die größten einbeziehen.
Führen Sie die folgenden Befehle aus, um den tatsächlichen Umsatz (oder KPI) im Vergleich zum erwarteten Umsatz (oder KPI) für Daten auf geografischer Ebene darzustellen:
model_fit = visualizer.ModelFit(meridian)
model_fit.plot_model_fit(n_top_largest_geos=2,
show_geo_level=True,
include_baseline=False,
include_ci=False)
Beispielausgabe:
Wenn Sie mit der Modellanpassung zufrieden sind, analysieren Sie die Modellergebnisse.