Cómo ejecutar el diagnóstico del modelo

Una vez creado el modelo, debes evaluar la convergencia, depurarlo si es necesario y, luego, evaluar su ajuste.

Evalúa la convergencia

La convergencia del modelo se evalúa para garantizar su integridad.

El comando plot_rhat_boxplot en visualizer.ModelDiagnostics() resume y calcula la reducción de escala potencial de Gelman y Rubin (1992) de la convergencia de cadenas, comúnmente conocida como R-hat. Este diagnóstico de la convergencia mide el grado en que la varianza (de las medias) entre las cadenas supera lo que se esperaría si las cadenas se distribuyeran de manera idéntica.

Cada parámetro del modelo tiene un solo valor de R-hat. El diagrama de caja resume la distribución de los valores de R-hat en los índices. Por ejemplo, la caja correspondiente a la etiqueta del eje x beta_gm resume la distribución de los valores de R-hat en el índice geográfico g y el índice de canales m.

Los valores cercanos a 1.0 son indicativos de la convergencia. Específicamente, R-hat < 1.2 indica una convergencia aproximada y es un umbral razonable para muchos problemas (Brooks y Gelman, 1998). Por lo general, la falta de convergencia tiene una de las siguientes dos causas. O bien el modelo está muy mal especificado para los datos, lo que puede deberse a la verosimilitud (especificaciones del modelo) o a la distribución a priori, o bien no hay suficiente descarte, lo que significa que n_adapt + n_burnin no es lo suficientemente grande.

Si tienes dificultades para obtener la convergencia, consulta Cómo lograr la convergencia del método de MCMC.

Genera un diagrama de caja de R-hat

Ejecuta los siguientes comandos para generar un gráfico de caja de R-hat:

model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.plot_rhat_boxplot()

Resultado de ejemplo:

Diagrama de caja de R-hat

Genera diagramas de seguimiento y densidad

Puedes generar diagramas de seguimiento y densidad de las muestras del método de Monte Carlo basado en cadenas de Markov (MCMC) para ayudar a evaluar la convergencia y la estabilidad en las cadenas. Cada seguimiento del diagrama respectivo representa la secuencia de valores que genera el algoritmo del método de MCMC a medida que explora el espacio de parámetros. También muestra cómo se desplaza el algoritmo a través de los diferentes valores de los parámetros en iteraciones sucesivas. En los diagramas de seguimiento, intenta evitar las áreas planas, en las que la cadena permanece en el mismo estado durante demasiado tiempo o tiene demasiados pasos consecutivos en una sola dirección.

En los diagramas de densidad de la izquierda, se visualiza la distribución de densidad de los valores muestreados para uno o más parámetros obtenidos a través del algoritmo del método de MCMC. En el diagrama de densidad, debes ver que las cadenas convergieron en una distribución de densidad estable.

El siguiente ejemplo muestra cómo generar diagramas de seguimiento y densidad:

parameters_to_plot=["roi_m"]
for params in parameters_to_plot:
  az.plot_trace(
      meridian.inference_data,
      var_names=params,
      compact=False,
      backend_kwargs={"constrained_layout": True},
  )

Resultado de ejemplo:

Diagramas de seguimiento y densidad

Verifica las distribuciones a priori y a posteriori

Cuando hay poca información en los datos, las distribuciones a priori y a posteriori serán similares. Para obtener más información, consulta Cuando la distribución a posteriori es igual que la distribución a priori.

Los canales con una inversión baja son más propensos a tener una distribución a posteriori del ROI similar a la distribución a priori del ROI. Para solucionar el problema, te recomendamos que descartes los canales con una inversión muy baja o que los combines con otros canales cuando prepares los datos para el MMM.

Ejecuta los siguientes comandos para trazar la distribución a posteriori del ROI comparada con la distribución a priori del ROI para cada canal de medios:

model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.plot_prior_and_posterior_distribution()

Resultado de ejemplo: (haz clic en la imagen para ampliarla)

distribuciones

De forma predeterminada, plot_prior_and_posterior_distribution() genera la distribución a posteriori y la distribución a priori del ROI. Sin embargo, puedes pasar parámetros del modelo específicos a plot_prior_and_posterior_distribution(), como se muestra en el siguiente ejemplo:

model_diagnostics.plot_prior_and_posterior_distribution('beta_m')

Evalúa el ajuste del modelo

Una vez que la convergencia del modelo esté optimizada, evalúa el ajuste. Para obtener más información, consulta Cómo evaluar el ajuste del modelo en Posmodelado.

Con el modelado de combinación de marketing (MMM), debes basarte en medidas indirectas para evaluar la inferencia causal y buscar resultados que tengan sentido. Estas son dos buenas maneras de hacerlo:

  • Ejecuta las métricas de R cuadrado, error porcentual absoluto medio (MAPE) y error porcentual absoluto medio ponderado (wMAPE).
  • Genera diagramas para comparar los ingresos o el KPI esperados con los reales, según el kpi_type y la disponibilidad de revenue_per_kpi.

Ejecuta las métricas de R cuadrado, MAPE y wMAPE

Las métricas de bondad del ajuste se pueden usar como una verificación de confianza de que la estructura del modelo es adecuada y no está sobreparametrizada. ModelDiagnostics calcula las métricas de bondad del ajuste R-Squared, MAPE y wMAPE. Si se establece el holdout_id en Meridian, también se calculan las métricas R-squared, MAPE y wMAPE para los subconjuntos Train y Test. Ten en cuenta que las métricas de bondad del ajuste son una medición de la exactitud predictiva, lo que no suele ser el objetivo de un MMM. Sin embargo, estas métricas siguen siendo útiles para verificar la confianza.

Ejecuta los siguientes comandos para generar las métricas de R cuadrado, MAPE y wMAPE:

model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.predictive_accuracy_table()

Resultado de ejemplo:

Resultado de las métricas

Genera diagramas comparativos de resultados esperados y reales

Usar diagramas comparativos de los ingresos esperados y los reales puede ser útil como método indirecto para evaluar el ajuste del modelo.

Diagramas comparativos de resultados esperados y reales a nivel nacional

Puedes crear diagramas de los ingresos o el KPI reales junto con los ingresos o el KPI esperados del modelo a nivel nacional para ayudar a evaluar el ajuste. El modelo de referencia constituye la estimación contrafáctica del modelo acerca de los ingresos (o el KPI) si no hubiera ninguna ejecución de medios. Estimar los ingresos para que sean lo más cercanos posible a los reales no es necesariamente el objetivo de un MMM, pero sí sirve como una verificación útil de la confianza.

Ejecuta los siguientes comandos para trazar los ingresos (o el KPI) reales en comparación con los ingresos (o el KPI) esperados para los datos a nivel nacional:

model_fit = visualizer.ModelFit(meridian)
model_fit.plot_model_fit()

Resultado de ejemplo:

Diagrama comparativo de los ingresos esperados y los reales

Diagramas comparativos de resultados esperados y reales a nivel geográfico

Puedes crear diagramas comparativos de los ingresos esperados y los reales a nivel geográfico para acceder al ajuste del modelo. Dado que puede haber muchas ubicaciones geográficas, te recomendamos que solo muestres las más grandes.

Ejecuta los siguientes comandos para trazar los ingresos (o el KPI) reales en comparación con los ingresos (o el KPI) esperados para las ubicaciones geográficas:

model_fit = visualizer.ModelFit(meridian)
model_fit.plot_model_fit(n_top_largest_geos=2,
                         show_geo_level=True,
                         include_baseline=False,
                         include_ci=False)

Resultado de ejemplo:

Diagramas comparativos de los ingresos reales y los estimados para las ubicaciones geográficas

Una vez que estés conforme con el ajuste del modelo, analiza los resultados del modelo.