Définir des a priori de ROI personnalisés à l'aide d'anciens tests

Meridian nécessite de transmettre des distributions pour la calibration du ROI. Définir des a priori personnalisés à l'aide des résultats de tests précédents est une approche judicieuse, mais de nombreuses nuances doivent être prises en compte avant de commencer. Exemple :

  • Période du test par rapport à celle de la MMM : si le test a été réalisé avant ou après la période de la MMM, il est possible que les résultats ne soient pas directement applicables.

  • Durée du test : s'il est de courte durée, le test risque de ne pas rendre compte efficacement des effets à long terme de l'efficacité marketing.

  • Complexité du test : si le test implique une combinaison de canaux, il est possible que les résultats ne fournissent pas d'insights clairs sur les performances de chaque canal.

  • Différences entre les estimands : les estimands utilisés dans les tests peuvent être différents de ceux utilisés dans la MMM. Par exemple, le contrefactuel de la MMM correspond à des dépenses nulles, alors que certains tests peuvent être associés à un autre contrefactuel, comme des dépenses réduites.

  • Différences de population : la population ciblée dans le test peut être différente de celle prise en compte dans la MMM.

Nous vous recommandons de définir les a priori personnalisés en fonction de votre conviction quant à l'efficacité d'un canal. Une croyance préalable peut être basée sur de nombreux éléments, y compris des expériences ou d'autres analyses fiables. Utilisez la force de cette croyance antérieure pour déterminer l'écart type de la valeur antérieure :

  • Si vous êtes convaincu de l'efficacité d'une chaîne, vous pouvez appliquer un facteur de correction à la déviation standard de l'estimation précédente pour refléter votre confiance. Par exemple, supposons que vous ayez mené plusieurs tests pour un canal spécifique et que tous les tests aient généré des estimations de ROI similaires, ou que vous disposiez de données historiques issues d'analyses MMM précédentes qui confirment l'efficacité de ce canal. Dans ce cas, vous pouvez définir une déviation standard plus faible pour l'intervalle précédent afin que la distribution ne varie pas trop. Cette distribution plus étroite indique que vous avez une grande confiance dans les résultats expérimentaux.

  • À l'inverse, il est possible que l'expérience ne se traduise pas nécessairement par une augmentation de la valeur de la marque, compte tenu de certaines nuances mentionnées précédemment. Dans ce cas, vous pouvez choisir d'appliquer un facteur de correction à l'écart-type de la distribution précédente. Par exemple, vous pouvez définir une écart type plus élevé pour l'intervalle précédent, en fonction de votre niveau de scepticisme.

Vous pouvez utiliser l'argument roi_calibration_period dans ModelSpec. Pour en savoir plus, consultez Définir la période de calibrage du ROI.

Lorsque vous définissez la valeur antérieure, la distribution LogNormal est couramment utilisée. L'exemple de code suivant peut être utilisé pour transformer la moyenne et l'erreur standard du test en distribution antérieure LogNormal :

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]

Toutefois, si les résultats des tests précédents sont proches de zéro, vous devez déterminer si vos croyances antérieures sont représentées avec précision par une distribution non négative, telle que la distribution LogNormal. Nous vous recommandons vivement de tracer la distribution antérieure pour vérifier qu'elle correspond à vos intuitions avant de poursuivre l'analyse. L'exemple de code suivant montre comment obtenir des paramètres LogNormal reparamètrés, définir la distribution et en extraire des échantillons.

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()