Cómo lograr la convergencia de MCMC
Por lo general, la falta de convergencia se debe a una de las siguientes causas:
- El modelo no está correctamente especificado para los datos. Este problema puede estar en la verosimilitud (especificación del modelo) o en la distribución a priori.
-
Los argumentos
n_adapt + n_burnin
on_keep
deMeridian.sample_posterior
no son lo suficientemente grandes.
Para que tus cadenas converjan, prueba las siguientes recomendaciones en este orden:
- Responde a estas preguntas para verificar la identificabilidad o revisar si algún factor la afecta:
-
¿Tienes variables de
media
ocontrols
altamente multicolineales? -
¿La variación en tu variable de
media
ocontrols
es tan insuficiente que es difícil estimar su efecto? -
¿Una de las variables de
media
ocontrols
está altamente correlacionada con el tiempo o incluso es perfectamente colineal con el tiempo? Para obtener más información, consulta Cuándo debes usarknots < n_times
. -
¿Una de las variables de
media
está bastante dispersa? La dispersión puede significar que hay muy poca ejecución en un canal, demasiadas ubicaciones geográficas sin ninguna ejecución o demasiados períodos sin ninguna ejecución de medios (especialmente si la cantidad deknots
se acerca an_times
). - Vuelve a evaluar las distribuciones a priori. Las distribuciones a priori poco informativas suelen dificultar la convergencia, pero las distribuciones a priori muy informativas también pueden hacerlo en ciertas situaciones.
- Si tu KPI se basa en los ingresos o si tienes datos de los ingresos por KPI, ten en cuenta los consejos que se indican en el artículo Distribución a priori y calibración del ROI para los canales de medios pagados.
- Si no tienes datos relacionados con los ingresos, considera los consejos que se indican en Cómo configurar distribuciones a priori personalizadas cuando el resultado no corresponda a los ingresos para los canales de medios pagados. Reducir la desviación estándar o la distribución a priori media de la contribución total de los medios puede ayudar a lograr un grado suficiente de regularización.
-
Ajusta las opciones de modelado. En particular, intenta disminuir el argumento
knots
deModelSpec
. Otras opciones de modelado que se pueden ajustar sonunique_sigma_for_each_geo
omedia_effects_dist
deModelSpec
. -
Verifica si hay un error en los datos, por ejemplo, si el orden de
population
no coincide con el orden demedia
para las ubicaciones geográficas. El modelo Meridian asume que existe una jerarquía geográfica en los efectos de control y de medios. Si esta suposición no coincide con tus datos, regulariza aún más estos parámetros. Para ello, establece las distribuciones a priori de los parámetros que miden la varianza jerárquica (eta_m
yxi_c
), por ejemplo,HalfNormal(0.1)
. También puedes desactivar la suposición de jerarquía geográfica con una distribución a prioriDeterministic(0)
. - Comprueba si tienes suficientes datos. Para obtener más información, consulta Cantidad de datos necesarios.
Cuando la distribución a posteriori es igual a la distribución a priori
Cuando el modelo intenta descifrar muchas variables, se necesitan más datos para comprender cada variable en particular. Por lo general, el MMM intenta hacer inferencias sobre muchas variables sin tantos datos, en especial, en el caso de un modelo nacional. Esto significa que habrá casos en los que los datos contendrán poca información sobre un canal de medios en particular. La falta de datos puede ser más notable cuando un canal en particular tiene una inversión baja, una varianza muy baja en la ejecución de medios a gran escala o una correlación alta de la ejecución de medios a gran escala entre diferentes canales. Para obtener más información sobre la cantidad de datos, consulta Cantidad de datos necesarios. Para obtener más información sobre los canales que tienen una inversión baja, consulta Canales con una inversión baja.
Puedes hacer que las distribuciones a priori y a posteriori sean diferentes entre sí usando distribuciones a priori cada vez menos informativas. Recuerda que la distribución a priori representa la estimación de un parámetro antes de que se tengan en cuenta los datos, mientras que la distribución a posteriori debe ser la estimación de un parámetro después de que se tengan en cuenta los datos. Cuando los datos contienen poca información, los datos previos y posteriores van a ser similares. Esto es especialmente cierto cuando la distribución a priori es relativamente informativa. El término relativa hace referencia a la relación que guarda la información de la distribución a priori con la información que aportan los datos. Esto significa que los datos siempre pueden dominar la distribución a priori si estableces una distribución a priori poco informativa. Sin embargo, si la distribución a priori no es informativa en relación con los datos, que también aportan poca información, la distribución a posteriori será bastante general, lo que representa mucha incertidumbre.
Esto se puede simplificar si piensas en la distribución a priori que estableces para parámetros como el ROI. No tienes que preocuparte demasiado por la capacidad informativa relativa de la distribución a priori si solo estableces distribuciones a priori razonables conforme a tus creencias. Si los datos aportan poca información o nada, tiene sentido desde una perspectiva bayesiana que las distribuciones a priori y a posteriori sean similares. Si los datos contienen mucha información, es probable que tu distribución a priori se modifique en función de estos datos.
Canales con una inversión baja
Los canales con una inversión baja son más propensos a tener un ROI posterior similar a la distribución a priori del ROI. Cada canal tiene un rango de valores de ROI que se ajustan bastante bien a los datos. Si este rango es amplio y cubre completamente la mayor parte de la distribución de la probabilidad a priori, la distribución a posteriori tiende a parecerse a la a priori. El rango de valores de ROI razonables para un canal con una inversión baja suele ser mucho más amplio que el de un canal con una inversión alta, ya que los canales que tienen una inversión baja necesitan un ROI muy alto para influir en el ajuste del modelo. Es muy probable que un rango amplio de valores de ROI se ajuste bastante bien a los datos.
Los efectos de los medios se modelan en función de la métrica de medios proporcionada, como las impresiones y los clics. Ni la escala de la métrica de medios ni el nivel de inversión tienen ningún efecto en el ajuste del modelo ni en el rango del resultado incremental que se podrían atribuir de manera razonable al canal. El ROI se define como el resultado incremental dividido por la inversión. Por eso, cuando el rango de valores razonables del resultado incremental se traduce en un rango de ROI, un canal con una inversión más alta tendrá un rango más acotado de valores de ROI que se ajusten bien a los datos.
Nota: En el caso de la regresión ordinaria de mínimos cuadrados, la escala de las covariables no tiene ningún efecto en el ajuste. La escala puede ser importante en una configuración de regresión bayesiana cuando se aplican distribuciones a priori a los coeficientes. Sin embargo, Meridian aplica una transformación a escala a cada métrica de medios. Por ejemplo, ajustar las impresiones de un canal a una escala de 100 no afecta el ajuste del modelo Meridian.
Cuando los resultados del ROI son muy diferentes según la distribución a priori que se use
Los resultados del ROI pueden variar mucho según si se usan distribuciones a priori predeterminadas del ROI o beta.
El uso de distribuciones a priori predeterminadas del ROI o de la versión beta puede afectar los resultados del ROI por los siguientes motivos:
- Cuando se usan las distribuciones a priori predeterminadas del ROI, las distribuciones a posteriori del ROI de cada canal de medios se regularizan hacia la misma distribución. Esto es bueno, ya que todos los canales se tratan de manera equitativa.
- Cuando se usan distribuciones a priori predeterminadas en los coeficientes de medios (beta), las distribuciones a posteriori del ROI de cada canal de medios se regularizan hacia diferentes distribuciones. Esto se debe a que el ajuste que se realiza en los datos de los medios no es el mismo que se usa en todos los canales. Por lo tanto, el mismo valor beta se traduce en distintos ROIs para diferentes canales. Las distribuciones a priori predeterminadas en los coeficientes de los medios tampoco son informativas en relación con la distribución a priori predeterminada del ROI como para tener en cuenta diferencias potencialmente significativas en el ajuste de los datos de los medios en todos los canales.
- Cuando los datos aporten poca información, las distribuciones a priori y a posteriori serán similares, como se explica en Cuando la distribución a posteriori es igual a la distribución a priori. Cuando los datos contienen poca información y se usan distribuciones a priori beta, las distribuciones a posteriori del ROI serán diferentes en los distintos canales de medios. Sin embargo, esta diferencia proviene de distribuciones a priori desiguales en los canales de medios, y no de los datos. En resumen, es importante no interpretar que los diferentes resultados de ROI en los distintos canales reflejan indicadores significativos de los datos, ya que esta diferencia solo se debe a que las distribuciones a priori no son iguales.
ResourceExhaustedError al ejecutar Meridian.sample_posterior
Meridian.sample_posterior
llama a tfp.experimental.mcmc.windowed_adaptive_nuts
, que puede consumir mucha memoria de las GPU cuando se ejecutan muestras de una gran cantidad de cadenas en simultáneo o cuando se trabaja con conjuntos de datos grandes.
Una forma de reducir el consumo máximo de memoria de la GPU es realizar un muestreo de las cadenas de forma serial. Para utilizar esta función, se pasa una lista de números enteros a n_chains
. Por ejemplo, n_chains=[5, 5]
realizará una muestra de un total de 10 cadenas llamando a tfp.experimental.mcmc.windowed_adaptive_nuts
de forma consecutiva, cada vez con el argumento n_chains=5
.
Ten en cuenta que esto afecta el tiempo de ejecución. Debido a que este método reduce el consumo de memoria mediante llamadas consecutivas a nuestro método de muestreo de MCMC, el tiempo de ejecución total aumentará de forma lineal en función de la longitud de la lista que se pase a n_chains
. Por ejemplo, n_chains=[5,5]
puede tardar hasta el doble de tiempo en ejecutarse que n_chains=10
, y n_chains=[4,3,3]
puede tardar hasta el triple.
La contribución de medios orgánicos es demasiado alta
Si la contribución de medios orgánicos es más alta de lo esperado, es posible que la distribución a priori utilizada no sea apropiada. Los medios orgánicos no tienen un ROI definido y, por lo tanto, usan la parametrización del coeficiente de regresión con la distribución a priori del coeficiente (beta_om
o beta_orf
). Si se advierte que la contribución de los medios orgánicos es más alta de lo esperado, se recomienda revisar las distribuciones a priori utilizadas para los canales de esos medios. De forma predeterminada, las distribuciones a priori supuestas son relativamente poco informativas, pero se supone que tienen un efecto positivo que puede generar una distribución a priori media alta. Cuando los datos contienen poca información, esto también puede generar una distribución a posteriori media alta. Si esto representa un problema, te recomendamos utilizar una distribución a priori alternativa más densa en el extremo inferior del rango de la distribución. Además, ten en cuenta que, cuando media_effects_dist = 'log_normal'
, $\beta_i^{[OM]}$ es la distribución a priori media del logaritmo del efecto de los medios a nivel geográfico, $\log(\beta_{g,i}^{[OM]})$. En este caso, es posible que la distribución a priori predeterminada, HalfNormal(5.0)
, concentre demasiada densidad lejos de cero. Este efecto se amplifica al elevarlo a una potencia, por lo que te recomendamos utilizar una distribución a priori con mayor densidad cerca de cero, como HalfNormal(0.1)
. Ten en cuenta que, aunque la varianza sea pequeña, sigue ofreciendo un amplio rango de valores posibles en la escala exponencial. Como alternativa, para obtener más flexibilidad, te recomendamos utilizar una distribución a priori normal que permita establecer la ubicación y la escala, por ejemplo, Normal(0.0, 3.0)
. De manera similar, cuando media_effects_dist = 'normal'
, te recomendamos utilizar una distribución a priori con una escala más pequeña que la predeterminada, como HalfNormal(1.0)
.
Error sobre los controles que no varían entre grupos o ubicaciones geográficas
Este error significa que tienes una variable a nivel nacional que no varía entre las distintas ubicaciones geográficas y que estableciste “knots = n_times”. Cuando “knots = n_times”, cada período obtiene su propio parámetro. Una variable a nivel nacional varía solo con el tiempo, no con la ubicación geográfica. Por lo tanto, la variable a nivel nacional es perfectamente colineal con el tiempo y resulta redundante en los modelos que tienen un parámetro para cada período. Esta redundancia te permite conservar la variable a nivel nacional o establecer "knots < n_times". La variable que elijas dependerá de tus objetivos de interpretación.
Valor de R cuadrado negativo
El valor de R cuadrado podría ser negativo en el conjunto de entrenamiento o el conjunto de prueba por los siguientes motivos:
- La combinación de distribuciones a priori sólidas y datos con un indicador débil (es decir, una baja relación señal-ruido) podría tener como resultado distribuciones a posteriori afectadas considerablemente por las probabilidades a priori. Esto podría dar lugar a que el modelo de Meridian se ajuste al conjunto de entrenamiento en el que la suma de errores cuadrados (SSE) es mayor que la suma total de cuadrados (SST), lo que tendría como resultado un valor de R cuadrado negativo. Para obtener más información, consulta Gelman et al. (2018).
- El valor de R cuadrado negativo en el conjunto de prueba ocurre cuando el modelo se ajusta a los datos de entrenamiento, pero no establece una generalización adecuada en función de ese conjunto. Esto podría suceder con cualquier modelo. En Meridian, este problema surge si se especifica que los datos de exclusión son los últimos N puntos temporales contiguos. Para obtener más información, consulta las observaciones de los datos de exclusión.
- Los errores en los datos de entrada podrían generar un valor de R cuadrado negativo. En particular, las poblaciones incorrectas a nivel geográfico pueden tener un efecto importante porque el valor de R cuadrado se mide en la escala del KPI sin procesar, pero el modelado se realiza en la escala per cápita. Otro error común de los datos de entrada es el ajuste de duplicación de la población del KPI. Esto ocurre cuando se hace un ajuste previo del KPI antes de ingresarlo en Meridian, que luego ajusta automáticamente el KPI per cápita por segunda vez.