Obtenir la convergence MCMC
Le manque de convergence est généralement dû à l'une des causes suivantes :
- La spécification du modèle n'est pas adaptée aux données. Ce problème peut concerner la probabilité (spécification du modèle) ou le prior.
-
Les arguments
n_adapt + n_burnin
oun_keep
deMeridian.sample_posterior
ne sont pas assez grands.
Pour que vos chaînes convergent, essayez les recommandations suivantes dans l'ordre indiqué :
- Vérifiez l'identifiabilité ou la faible identifiabilité à l'aide des questions ci-dessous :
-
Avez-vous des variables
media
oucontrols
fortement multicolinéaires ? -
La variation de votre variable
media
oucontrols
est-elle si faible qu'il est difficile d'estimer son effet ? -
L'une des variables
media
oucontrols
est-elle fortement corrélée au temps ou même parfaitement colinéaire avec le temps ? Pour en savoir plus, consultez Quand utiliserknots < n_times
. -
L'une des variables
media
est-elle plutôt clairsemée ? La parcimonie peut signifier une très faible exécution dans un canal, trop de zones géographiques sans aucune exécution ou trop de périodes sans aucune exécution média (en particulier si le nombre deknots
est proche den_times
). - Réévaluez les a priori. Les a priori très peu informatifs rendent souvent la convergence difficile, mais les a priori très informatifs peuvent également la rendre difficile dans certaines situations.
- Si votre KPI est lié aux revenus ou si vous disposez de données sur les revenus par KPI, suivez les conseils de la section A priori de ROI et calibration pour les canaux média payants.
- Si vous ne disposez pas de données sur les revenus, suivez les conseils de la section Définir des a priori personnalisés lorsque le résultat n'est pas un revenu pour les canaux média payants. Réduire la moyenne a priori et/ou l'écart type de la contribution totale des médias peut vous aider à obtenir un degré de régularisation suffisant.
-
Ajustez les options de modélisation. En particulier, essayez de réduire l'argument
knots
deModelSpec
. Les autres options de modélisation à ajuster incluentunique_sigma_for_each_geo
oumedia_effects_dist
deModelSpec
. -
Recherchez une erreur de données, par exemple si l'ordre de
population
ne correspond pas à l'ordre demedia
pour les zones géographiques. Le modèle Meridian suppose une hiérarchie géographique dans les effets média et de contrôle. Si cette hypothèse ne correspond pas à vos données, régularisez ces paramètres en définissant les priors sur des paramètres qui mesurent la variance hiérarchique (eta_m
etxi_c
), par exemple,HalfNormal(0.1)
. Vous pouvez également désactiver l'hypothèse de hiérarchie géographique avec un priorDeterministic(0)
. - Déterminez si vous disposez d'un volume de données suffisant. Pour en savoir plus, consultez Quantité de données requise.
Lorsque l'a posteriori est identique à l'a priori
Lorsque qu'il existe de nombreuses variables que le modèle tente de comprendre, vous avez besoin de plus de données pour comprendre une variable spécifique. Le processus MMM tente généralement d'inférer de nombreuses variables sans beaucoup de points de données, en particulier dans le cas d'un modèle national. Cela signifie qu'il peut arriver que les données d'un canal média spécifique contiennent peu d'informations. Cette situation peut s'aggraver lorsqu'un canal spécifique présente des dépenses faibles, une très faible variance dans l'exécution média à l'échelle ou une forte corrélation de l'exécution média à l'échelle entre les canaux. Pour en savoir plus sur les quantités de données, consultez Quantité de données requise. Pour en savoir plus sur les canaux avec de faibles dépenses, consultez Canaux avec de faibles dépenses.
Vous pouvez différencier le prior et le posterior en utilisant des priors de moins en moins informatifs. Rappelez-vous que le prior représente une estimation d'un paramètre avant prise en compte des données, et que le posterior est censé être une estimation d'un paramètre après prise en compte des données. Lorsque les données contiennent peu d'informations, les données avant et après seront similaires. C'est particulièrement vrai lorsque le prior est relativement informatif. Relativement fait référence aux informations du prior par rapport aux informations des données. Cela signifie que les données peuvent toujours dominer le prior si vous définissez un prior suffisamment peu informatif. Toutefois, si le prior est peu informatif par rapport aux données, qui sont elles-mêmes peu informatives, le posterior sera assez large, ce qui représente une grande incertitude.
Pour simplifier les choses, réfléchissez au prior que vous définissez pour des paramètres tels que le ROI. Vous n'avez pas à vous soucier outre mesure du niveau informatif relatif du prior si vous définissez simplement des priors raisonnables auxquels vous croyez. Si les données contiennent peu ou pas d'informations, il est logique, d'un point de vue bayésien, que le prior et le posterior soient similaires. Si les données contiennent beaucoup d'informations, votre prior évoluera alors probablement en fonction de ces données.
Canaux avec des dépenses faibles
Les canaux dont les dépenses sont faibles sont particulièrement susceptibles d'avoir un posterior de ROI semblable au prior de ROI. Chaque canal a une plage de valeurs de ROI qui correspond assez bien aux données. Si cette plage est large et couvre complètement la majeure partie de la masse de la probabilité a priori, le posterior a tendance à ressembler au prior. La plage de valeurs de ROI raisonnables pour un canal à faibles dépenses a tendance à être beaucoup plus large que celle d'un canal à fortes dépenses, car les canaux à faibles dépenses ont besoin d'une plage de ROI très large pour avoir une grande influence sur l'ajustement du modèle. Il est plus probable qu'une large plage de valeurs de ROI corresponde relativement bien aux données.
Les effets média sont modélisés en fonction de la métrique média fournie, comme les impressions et les clics. Ni l'échelle de la métrique média, ni le niveau des dépenses n'ont d'incidence sur l'ajustement du modèle ou sur la plage du résultat incrémental qui pourrait raisonnablement être attribuée au canal. Le ROI est défini comme le résultat incrémental divisé par les dépenses. Par conséquent, lorsque la plage de valeurs du résultat incrémental raisonnable est traduite en plage de ROI, un canal avec des dépenses plus importantes aura une plage de valeurs de ROI plus étroite qui correspondra bien aux données.
Remarque : Dans le cas de la régression des moindres carrés ordinaire, l'échelle des covariables n'a aucun effet sur l'ajustement. L'échelle peut avoir de l'importance dans un paramètre de régression bayésien lorsque des priors sont appliqués aux coefficients. Toutefois, Meridian applique une transformation de mise à l'échelle à chaque métrique média. Si, par exemple, vous mettez à l'échelle les impressions d'un canal par un facteur de 100, cela n'a aucune incidence sur l'ajustement du modèle Meridian.
Lorsque les résultats du ROI sont très différents selon le prior utilisé
Les résultats du ROI peuvent être très différents selon que vous utilisez des priors de ROI par défaut ou les priors par défaut de la version bêta.
L'utilisation de priors de ROI par défaut et des priors par défaut de la version bêta peut avoir une incidence sur les résultats du ROI pour les raisons suivantes :
- Lorsque des priors de ROI par défaut sont utilisés, le ROI a posteriori de chaque canal média est régularisé selon la même distribution. C'est une bonne chose, car chaque canal est traité de manière équitable.
- Lorsque vous utilisez des priors par défaut sur les coefficients média (version bêta), le ROI a posteriori de chaque canal média est régularisé selon différentes distributions. En effet, la mise à l'échelle effectuée sur les données média n'est pas la même que celle utilisée sur les canaux. Ainsi, une même valeur bêta correspond à des ROI différents pour différents canaux. Les priors par défaut sur les coefficients média sont également non informatifs par rapport au prior de ROI par défaut pour prendre en compte les différences potentiellement importantes de mise à l'échelle des données média sur les canaux.
- Lorsque les données contiennent peu d'informations, le prior et le posterior seront similaires, comme indiqué dans Lorsque le posterior est identique au prior. Lorsque les données contiennent peu d'informations et que des priors bêta sont utilisés, les ROI a posteriori seront différents selon les canaux média. Toutefois, cette différence provient uniquement des priors inéquitables sur les canaux média et non des données. En résumé, il est important de ne pas interpréter des résultats de ROI différents sur différents canaux comme un résultat qui capte un signal provenant des données, lorsque la différence n'est due qu'à des priors inéquitables.
ResourceExhaustedError lors de l'exécution de Meridian.sample_posterior
Meridian.sample_posterior
appelle tfp.experimental.mcmc.windowed_adaptive_nuts
, qui peut être très gourmand en mémoire sur les GPU lors de l'échantillonnage d'un grand nombre de chaînes en parallèle ou lors de l'entraînement avec de grands ensembles de données.
Pour réduire la consommation de mémoire GPU maximale, vous pouvez échantillonner les chaînes de manière séquentielle. Cette fonctionnalité est fournie en transmettant une liste d'entiers à n_chains
. Par exemple, n_chains=[5, 5]
échantillonnera un total de 10 chaînes en appelant tfp.experimental.mcmc.windowed_adaptive_nuts
consécutivement, chaque fois avec l'argument n_chains=5
.
Notez que cela entraîne un coût d'exécution. Comme cette méthode réduit la consommation de mémoire en utilisant des appels consécutifs à notre méthode d'échantillonnage MCMC, l'exécution totale augmente de manière linéaire en fonction de la longueur de la liste transmise à n_chains
. Par exemple, l'exécution de n_chains=[5,5]
peut prendre jusqu'à deux fois plus de temps que n_chains=10
, et celle de n_chains=[4,3,3]
peut prendre jusqu'à trois fois plus de temps.
La contribution média naturel est trop élevée
Si la contribution média naturel est plus élevée qu'attendu, l'a priori utilisé peut ne pas être adapté. Le média naturel n'a pas de ROI défini et, par conséquent, utilise la paramétrisation du coefficient de régression avec l'a priori du coefficient (beta_om
ou beta_orf
). S'il est observé que la contribution pour le média naturel est plus élevée qu'attendu, nous vous suggérons de revoir les a priori utilisés pour les canaux média naturel. Par défaut, les a priori supposés sont relativement peu informatifs, mais ils supposent un effet positif qui peut entraîner une moyenne a priori élevée. Lorsque les données contiennent peu d'informations, cela peut également entraîner une moyenne a posteriori élevée. Si cela pose problème, vous pouvez envisager d'utiliser un autre a priori avec une masse plus importante dans la partie inférieure de la plage de la distribution. Notez également que lorsque media_effects_dist = 'log_normal'
, $\beta_i^{[OM]}$ est la moyenne a priori du logarithme de l'effet média au niveau géographique, $\log(\beta_{g,i}^{[OM]})$. Dans ce cas, l'a priori par défaut, HalfNormal(5.0)
, peut supposer trop de masse a priori éloignée de zéro. Ce problème est exacerbé lors de l'exponentiation. Vous pouvez envisager un a priori avec davantage de masse proche de zéro, comme un a priori HalfNormal(0.1)
. Notez que, bien que la variance soit faible, elle fournit toujours une large gamme de valeurs possibles sur l'échelle exponentielle. Pour plus de flexibilité, vous pouvez également envisager un a priori Normal qui permet de définir à la fois l'emplacement et l'échelle, par exemple Normal(0.0, 3.0)
. De même, lorsque media_effects_dist = 'normal'
, vous pouvez envisager d'utiliser un a priori avec une échelle inférieure à la valeur par défaut, comme HalfNormal(1.0)
.
Erreur concernant des contrôles qui ne varient pas selon les groupes ou les zones géographiques
Cette erreur signifie que vous avez une variable au niveau national qui ne varie pas selon les zones géographiques et que vous avez défini "knots = n_times". Lorsque "knots = n_times", chaque période dispose de son propre paramètre. Une variable au niveau national ne varie qu'au fil du temps, et non en fonction de la zone géographique. Par conséquent, ce type de variable est parfaitement colinéaire avec le temps et est redondant avec un modèle qui comporte un paramètre pour chaque période. "Redondant" signifie que vous pouvez conserver la variable au niveau national ou définir "knots < n_times". Le choix de la variable dépend de vos objectifs d'interprétation.
Coefficient de détermination (r-carré) négatif
R-carré peut être négatif sur l'ensemble d'entraînement ou de test pour les raisons suivantes :
- La combinaison d'a priori forts et de données avec signal faible (c'est-à-dire un faible rapport signal/bruit) peut entraîner des distributions a posteriori qui sont considérablement tirées par les a priori. Cela peut entraîner l'ajustement du modèle Meridian sur l'ensemble d'entraînement où la somme des erreurs quadratiques (SSE) est supérieure à la somme des carrés (SST), ce qui entraîne un R-carré négatif. Pour en savoir plus, consultez Gelman et al. (2018).
- Un R-carré négatif sur l'ensemble de test se produit lorsque le modèle correspond aux données d'entraînement, mais ne parvient pas à généraliser sur l'ensemble de test. Cela peut arriver à n'importe quel modèle. Dans Meridian, ce problème se produit si les données de validation sont spécifiées comme étant les N derniers points temporels contigus. Pour en savoir plus, consultez la section Observations de validation.
- Un R-carré négatif peut être dû à des erreurs d'entrée des données. En particulier, des populations incorrectes au niveau géographique peuvent avoir un impact important, car R-carré est mesuré sur l'échelle de KPI brute, mais la modélisation est effectuée sur l'échelle par personne. Une autre erreur d'entrée courante est le double scaling de la population du KPI. Cela se produit lorsqu'un utilisateur effectue un scaling préalable du KPI avant de l'entrer dans Meridian, qui effectue alors automatiquement un scaling du KPI par personne une deuxième fois.