Benutzerdefinierte ROI-Priors anhand früherer Tests festlegen

Für Meridian müssen Verteilungen für die ROI-Kalibrierung übergeben werden. Es ist zwar sinnvoll, benutzerdefinierte Priors anhand der Ergebnisse früherer Tests festzulegen, es ist aber vieles zu beachten, bevor Sie fortfahren. Beispiel:

  • Zeitpunkt des Tests im Verhältnis zum MMM-Zeitraum: Wenn der Test vor oder nach dem MMM-Zeitraum durchgeführt wurde, sind die Ergebnisse möglicherweise nicht direkt anwendbar.

  • Dauer des Tests: Bei einem kurzen Test lassen sich die langfristigen Auswirkungen der Marketingeffektivität möglicherweise nicht ausreichend erfassen.

  • Komplexität des Tests: Wenn der Test mehrere Channels umfasst, liefern die Ergebnisse möglicherweise keine klaren Erkenntnisse zur Leistung einzelner Channels.

  • Unterschiede bei Schätzgrößen: Die in Tests verwendeten Schätzgrößen können von denen im MMM abweichen. Als kontrafaktisches Szenario des MMM werden zum Beispiel Ausgaben in Höhe von null angenommen, während bei einigen Tests ein anderes kontrafaktisches Szenario verwendet werden kann, z. B. mit reduzierten Ausgaben.

  • Unterschiede bei der Population: Die im Test angestrebte Population ist möglicherweise nicht mit der Population identisch, die im MMM verwendet wird.

Sie sollten die benutzerdefinierten Priors auf Grundlage davon festlegen, wie sehr Sie von der Wirksamkeit eines Channels überzeugt sind. Eine vorherige Überzeugung kann auf vielen Dingen beruhen, z. B. auf Tests oder anderen zuverlässigen Analysen. Nutzen Sie die Stärke dieser vorherigen Überzeugung, um die Standardabweichung der Prior-Verteilung zu bestimmen:

  • Wenn Sie von der Effektivität eines Channels überzeugt sind, können Sie einen Anpassungsfaktor auf die Standardabweichung des Priors anwenden, um Ihr Vertrauen widerzuspiegeln. Angenommen, Sie haben mehrere Tests für einen bestimmten Channel durchgeführt und alle Tests haben ähnliche ROI-Punktschätzungen ergeben. Oder Sie haben Verlaufsdaten aus früheren MMM-Analysen, die die Effektivität dieses Channels belegen. In diesem Fall können Sie eine kleinere Standardabweichung für den Prior festlegen, damit die Verteilung nicht stark variiert. Diese engere Verteilung zeugt von Ihrer hohen Zuversicht in die Testergebnisse.

  • Umgekehrt lassen sich die Testergebnisse möglicherweise nicht auf das MMM übertragen. In diesem Fall können Sie einen Anpassungsfaktor auf die Standardabweichung der Prior-Verteilung anwenden. Je nachdem, wie skeptisch Sie sind, können Sie beispielsweise eine größere Standardabweichung für den Prior festlegen.

Sie sollten darüber nachdenken, das Argument roi_calibration_period in ModelSpec zu verwenden. Weitere Informationen finden Sie unter Zeitraum für ROI-Abstimmung festlegen.

Beim Festlegen von Priors wird häufig die LogNormal-Verteilung verwendet. Der folgende Beispielcode kann verwendet werden, um den Mittelwert und den Standardfehler des Tests in die LogNormal-Prior-Verteilung zu transformieren:

import numpy as np

def estimate_lognormal_dist(mean, std):
  """Reparameterization of lognormal distribution in terms of its mean and std."""
  mu_log = np.log(mean) - 0.5 * np.log((std/mean)**2 + 1)
  std_log = np.sqrt(np.log((std/mean)**2 + 1))
  return [mu_log, std_log]

Wenn die Ergebnisse aus früheren Tests jedoch nahe null liegen, sollten Sie überlegen, ob Ihre bisherigen Überzeugungen durch eine nicht negative Verteilung wie die LogNormal-Verteilung korrekt dargestellt werden. Wir empfehlen Ihnen dringend, die Prior-Verteilung grafisch darzustellen, um zu bestätigen, dass sie Ihren Vorannahmen entspricht, bevor Sie mit der Analyse fortfahren. Im folgenden Beispielcode wird gezeigt, wie Sie neu parametrisierte LogNormal-Parameter abrufen, die Verteilung definieren und Stichproben daraus ziehen.

import tensorflow as tf
import tensorflow_probability as tfp

# Get reparameterized LogNormal distribution parameters
mu_log, std_log = estimate_lognormal_dist(mean, std)
mu_log = tf.convert_to_tensor(mu_log, dtype=tf.float32)
std_log = tf.convert_to_tensor(std_log, dtype=tf.float32)
# Define the LogNormal distribution
lognormal_dist = tfp.distributions.LogNormal(mu_log, std_log)
# Draw 10,000 samples
lognormal_samples = lognormal_dist.sample(10000).numpy()