Comment choisir les types d'a priori de traitement

Chaque type de variable de traitement (média payant, média naturel et non média) comporte différentes options de type d'a priori. Les a priori de ROI et de ROIm ne peuvent être utilisés qu'avec les variables média payant. Les a priori de contribution et de coefficients peuvent être utilisés avec n'importe quel type de variable de traitement. Tenez compte des points suivants lorsque vous choisissez un ou plusieurs types d'a priori.

Les a priori de ROI sont définis par défaut, car ils correspondent généralement mieux aux connaissances a priori, telles que les résultats des tests. Il s'agit généralement de l'option la plus intuitive pour définir des a priori reposant sur des informations raisonnablement fiables.

Les a priori de ROIm constituent une alternative pour les utilisateurs qui souhaitent imposer un a priori capable de diminuer la répartition de budget optimale pour s'approcher de la répartition de budget historique, ce qui permet de régulariser les réaffectations de budget recommandées. Pour ce faire, définissez une moyenne d'a priori de ROIm commun sur tous les canaux et ajustez l'écart-type. Plus l'a priori est fort (écart-type plus faible), plus la répartition optimale se rapproche de l'historique. Notez que les contraintes de dépenses d'optimisation offrent un autre moyen de limiter les réaffectations de budget recommandées, ce qui devrait permettre à la plupart des utilisateurs de se passer d'a priori de ROIm. Pour en savoir plus, consultez la sous-section "Comparaison des a priori de ROI et de ROIm pour les médias payants".

Les a priori de contribution sont très semblables aux a priori de ROI pour les médias payants. La seule différence réside dans le dénominateur : celui de l'a priori de ROI correspond aux dépenses du canal, tandis que le dénominateur de l'a priori de contribution correspond au résultat total observé. Cela signifie que tout a priori de contribution peut être traduit en a priori de ROI, et que tout a priori de ROI peut être traduit en a priori de contribution pour les médias payants.

Les a priori de coefficients correspondent à la paramétrisation la plus traditionnelle pour un modèle de régression linéaire. L'interprétation d'un coefficient étant assez abstraite dans le contexte de MMM, il est compliqué de définir un a priori basé sur des informations fiables. Une valeur de coefficient spécifique peut impliquer des valeurs de ROI très différentes selon les canaux média payants. En effet, le ROI dépend de la répartition de l'exécution du canal entre les zones géographiques et les périodes, des estimations des paramètres d'adstock et de rendements décroissants du canal, ainsi que du coût par unité média du canal.

Média naturel

Les a priori de contribution constituent l'option par défaut, car ils correspondent à la quantité la plus intuitive pour définir un a priori basé sur des informations fiables. Il est possible que certains canaux génèrent plus de contributions que d'autres. Par conséquent, vous pouvez personnaliser la distribution a priori pour qu'elle corresponde à vos stratégies commerciales et marketing. Une distribution bêta est souvent logique, car elle est limitée à l'intervalle de zéro à un.

Les a priori de coefficients correspondent à la paramétrisation la plus traditionnelle pour un modèle de régression linéaire. L'interprétation d'un coefficient étant assez abstraite dans le contexte de MMM, il est compliqué de définir un a priori basé sur des informations fiables. Une valeur de coefficient spécifique peut impliquer des valeurs de contribution très différentes selon les canaux média naturel. En effet, la contribution dépend de la répartition de l'exécution du canal entre les zones géographiques et les périodes, ainsi que des estimations des paramètres d'adstock et de rendements décroissants du canal.

Traitements non média

Les a priori de contribution constituent l'option par défaut, car ils correspondent à la quantité la plus intuitive pour définir un a priori basé sur des informations fiables. Il est toujours recommandé de personnaliser la distribution a priori. En fonction de la valeur de référence spécifiée pour chaque variable, vous pouvez vous attendre à ce que la contribution soit positive ou négative (le signe de la contribution peut aussi être inconnu). Par exemple, il n'est pas toujours évident de savoir si définir le prix sur une valeur de référence donnée aura un impact positif ou négatif sur les revenus. Vous pouvez aussi vous attendre a priori à ce qu'un prix ait un impact positif en dessous d'un prix de référence, mais un impact négatif en dessous d'un autre prix de référence.

Les a priori de coefficients correspondent à la paramétrisation la plus traditionnelle pour un modèle de régression linéaire. L'interprétation d'un coefficient étant assez abstraite dans le contexte de MMM, il est compliqué de définir un a priori basé sur des informations fiables. Une valeur de coefficient spécifique peut impliquer des valeurs de contribution très différentes selon les canaux de traitement non média. En effet, la contribution dépend de la répartition des valeurs du traitement entre les zones géographiques et les périodes, ainsi que de la valeur de référence du traitement.

Autres remarques

Personnaliser les a priori de contribution pour les traitements non média

L'a priori de contribution par défaut est une distribution normale tronquée, qui accepte les valeurs positives et négatives. Vous pouvez définir des paramètres propres au traitement sur la distribution normale tronquée pour orienter la masse de probabilité vers des valeurs positives ou négatives. Par exemple, l'extrait de code suivant attribue une distribution Normal(0, 0,1) tronquée de manière symétrique au premier traitement, une distribution HalfNormal(0, 0,2) positive tronquée au deuxième traitement et une distribution HalfNormal(0, 0,1) négative tronquée au troisième traitement.

PriorDistribution(
    contribution_n=tfp.distributions.TruncatedNormal(
        loc=[0, 0, 0],
        scale=[0.1, 0.2, 0.1],
        low=[-1, 0, -1],
        high=[1, 1, 0],
    )
)

Vous pouvez également utiliser une distribution bêta mise à l'échelle afin de spécifier une distribution positive pour certains traitements et une distribution négative pour d'autres. Par exemple, l'extrait de code suivant attribue un a priori Beta(1, 49) au premier traitement et un a priori Beta(1, 99) négatif au second traitement.

PriorDistribution(
    contribution_n=tfp.distributions.TransformedDistribution(
        tfp.distributions.Beta([1, 1], [49, 99]),
        tfp.bijectors.Scale([1, -1]),
    )
)

Comparaison des a priori de ROI et de ROIm pour les médias payants

Les a priori de ROIm constituent une alternative aux a priori de ROI pour les canaux média payants. Le ROIm d'un canal est défini comme le retour attendu sur une unité monétaire supplémentaire de dépenses. L'unité monétaire supplémentaire est répartie entre les régions géographiques et les périodes en augmentant la couverture, tout en conservant une fréquence moyenne fixe.

Le choix entre les a priori de ROI et de ROIm a des répercussions importantes, en particulier si votre objectif est de créer une parité des a priori sur les canaux. Le ROI et le ROIm ont une distribution a priori. Si l'a priori de ROI est spécifié, un a priori de ROIm est induit. Si l'a priori de ROIm est spécifié, un a priori de ROI est induit. Un a priori induit n'appartient pas à une famille paramétrique et n'est généralement pas indépendant des autres paramètres du modèle. La distribution exacte d'un a priori induit dépend de la distribution de l'exécution média d'un canal dans les régions géographiques et les périodes. Il est important de noter que même si un a priori de ROI (ROIm) commun est utilisé pour tous les canaux, l'a priori de ROIm (ROI) induit diffère toujours selon le canal.

Lorsque la fonction de Hill est concave, par exemple lorsque son paramètre de pente est égal à 1 (hypothèse par défaut), les canaux sans données de couverture et de fréquence auront toujours un ROI global plus élevé que leur ROI marginal. Si vous utilisez un a priori de ROI, la distribution a priori de ROI marginal induite sera strictement inférieure pour un canal sans couverture ni fréquence. À l'inverse, si vous utilisez un a priori de ROI marginal, l'a priori de ROI induit sera strictement supérieur pour un canal sans couverture ni fréquence.

Pour les canaux avec couverture et fréquence, le ROI marginal par couverture est égal au ROI. En effet, l'a priori de ROI marginal est appliqué au ROI marginal par couverture (la prochaine unité monétaire dépensée augmente la couverture sans modifier la fréquence moyenne). Selon la spécification du modèle Meridian, les effets média sont linéaires en termes de couverture. Par conséquent, le choix entre une paramétrisation de l'a priori de ROI et une paramétrisation de l'a priori de ROI marginal n'a aucun impact sur l'a priori pour les canaux avec couverture et fréquence. Toutefois, le choix entre la paramétrisation du ROI et celle du ROI marginal aura toujours un impact sur l'inférence a posteriori pour les canaux avec couverture et fréquence, car :

  • Le choix a priori pour les autres canaux affecte l'adéquation du modèle et les résultats a posteriori pour les canaux avec couverture et fréquence.
  • Les distributions a priori du ROI et du ROIm par défaut sont différentes.

Si vous souhaitez examiner l'a priori induit pour un modèle spécifique, vous pouvez l'obtenir en appelant sample_prior, suivi d'un appel à la méthode roi ou marginal_roi de la classe Analyzer avec l'argument use_posterior=False.

Raisons pour lesquelles choisir les a priori de ROI :

  • Un a priori de ROI commun peut être utilisé pour tous les canaux afin de créer une parité de ROI a priori. À mesure que l'a priori se renforce (et que l'écart-type diminue), les distributions de ROI a posteriori diminuent pour s'approcher d'une valeur commune.
  • Des a priori de ROI propres à un canal peuvent être utilisés pour intégrer des connaissances préalables, telles que les résultats de tests.
  • Même si les a priori de ROI ne contrôlent pas les réaffectations de budget pour l'optimisation aussi bien que les a priori de ROIm, des contraintes de dépenses d'optimisation peuvent être utilisées afin de limiter le montant de la réaffectation de budget proposée pour un canal donné.

Raisons pour lesquelles choisir les a priori de ROIm :

  • Un a priori de ROIm commun peut être utilisé pour tous les canaux afin de créer une parité de ROIm a priori. À mesure que l'a priori se renforce, les valeurs de ROIm a posteriori diminuent pour s'approcher d'une valeur commune.
  • Une parité de ROIm a priori entraîne généralement des réaffectations moins importantes du budget pour l'optimisation :
    • Si le même a priori de ROIm est utilisé pour tous les canaux, la répartition de budget optimale a priori sera égale à l'historique.
    • À mesure que l'a priori se renforce, la répartition de budget optimale a posteriori diminue pour s'approcher de l'historique.
    • Malgré l'utilisation d'a priori de ROIm forts, un canal disposant de données de couverture et de fréquence peut toujours bénéficier d'une réaffectation positive importante des dépenses lors de l'optimisation, si nous utilisons également la fréquence optimale de ce canal plutôt que la fréquence historique. L'a priori de ROIm est appliqué au ROIm basé sur la fréquence historique, qui est toujours inférieur au ROIm basé sur la fréquence optimale. Par défaut, l'optimisation du budget est exécutée avec la fréquence optimale, mais la méthode d'optimisation contient un argument booléen use_optimal_freq qui permet de définir si l'optimisation est exécutée avec la fréquence optimale ou historique.

N'oubliez pas que le ROIm diffère selon les périodes. Par conséquent, si votre période d'optimisation ne correspond pas à celle de l'a priori de ROIm, il est possible que les a priori de ROIm ne régularisent pas comme prévu les réaffectations de budget pour l'optimisation. Vous pouvez ajuster la période de votre optimisation à l'aide de l'argument selected_time de BudgetOptimizer.optimize(). Vous pouvez ajuster la période de votre a priori de ROIm à l'aide des arguments roi_calibration_period et rf_roi_calibration_period de ModelSpec. Par défaut, les deux périodes seront définies sur la période de modélisation complète.