El valor de referencia es el resultado esperado en la situación contrafáctica en la que todas las variables de tratamiento se establecen en sus valores de referencia. Para los medios pagados y orgánicos, los valores de referencia equivalen a cero. En el caso de las variables de tratamiento que no son de medios, el valor de referencia se puede establecer en el valor mínimo observado de la variable (opción predeterminada), en el máximo o en un número de punto flotante proporcionado por el usuario. Estimar el valor de referencia permite comprender lo que habría sucedido si no se hubieran utilizado medios pagados, medios orgánicos o algún otro tratamiento que no sea de medios. Es necesario para la inferencia causal de los tratamientos y, por lo tanto, es importante evaluar el valor de referencia.
Evalúa el valor de referencia en función de la negatividad
El resultado (ya sea los ingresos o el KPI, consulta el Glosario) no puede ser negativo. Por lo tanto, un valor de referencia negativo indica un error estadístico en la inferencia causal de los efectos del tratamiento. Al igual que con todos los modelos estadísticos, esperamos que haya algún error estadístico en Meridian. Sin embargo, un valor de referencia extremadamente negativo indica un error extremo.
Un resultado de modelo con un valor de referencia extremadamente negativo revela que el modelo necesita ajustes. Esto proporciona una señal clara de que se deben ajustar la configuración del modelo, los datos que se usan para ajustar el modelo o las distribuciones a priori (consulta la sección Mitiga un valor de referencia negativo o bajo). Esto desencadena un proceso de desarrollo del modelo más exhaustivo e iterativo, lo que, en última instancia, genera un modelo más preciso, confiable y útil.
Meridian es un modelo estadístico y probabilístico. Te recomendamos que aproveches esto y evalúes la negatividad del valor de referencia de forma probabilística. Específicamente, considera la probabilidad a posteriori de que el valor de referencia agregado durante todo el período sea negativo. Si esta probabilidad es demasiado alta, el resultado del modelo puede tener un gran error estadístico. Puedes calcular esta probabilidad con lo siguiente:
from meridian.analysis import analyzer
from meridian.model import model
import numpy as np
mmm = model.Meridian(...)
mmm.sample_posterior(...)
a = analyzer.Analyzer(mmm)
posterior_baseline_draws = a._calculate_baseline_expected_outcome()
posterior_negative_baseline_prob = np.mean(posterior_baseline_draws < 0)
Como alternativa, se podría examinar la estimación puntual del valor de referencia agregado durante todo el período, como en los gráficos de Channel contribution. Sin embargo, recuerda que Meridian es un modelo estadístico y probabilístico, y una estimación puntual puede generar una incertidumbre significativa. Una estimación puntual del valor de referencia negativa no indica necesariamente un sesgo del modelo. Indica el error, que puede provenir del sesgo o la varianza (consulta Descomposición sesgo-varianza del error cuadrático medio). Esto es especialmente cierto cuando los datos contienen información limitada (consulta el artículo Cantidad de datos necesarios).
No recomendamos hacer demasiado énfasis en una serie temporal de referencia, como la que se muestra en los gráficos de Model fit, que, en ocasiones, desciende a valores negativos. Una disminución ocasional, especialmente pequeña, indica un error menor, que es inherente a cualquier modelo estadístico.
Resultado de referencia negativo en comparación con el porcentaje de contribución
Existe una diferencia sutil entre una "contribución total superior al 100% del resultado observado" (que ocurre si el resultado incremental supera el resultado observado) y un "resultado de referencia negativo" (que ocurre si el resultado incremental supera el resultado esperado). La distribución a posteriori del resultado esperado total suele ubicarse en torno al resultado observado total de manera muy cercana; en cambio, la distribución a priori del resultado esperado suele presentar una varianza amplia y no estar centrada en torno al resultado observado. En consecuencia, no tiene mucho sentido evaluar la probabilidad a priori de un resultado de referencia negativo, por lo que te recomendamos que evalúes la probabilidad de que la contribución supere el 100% del resultado observado.
También ten en cuenta que el resultado esperado total puede diferir del resultado observado total si tu modelo utiliza valores de revenue_per_kpi
con una varianza alta.
Por lo general, el KPI esperado total estará muy cerca del KPI observado total, pero una varianza alta en revenue_per_kpi
puede generar una discrepancia entre el resultado esperado total y el resultado observado total.
Mitiga las consecuencias de un resultado de referencia negativo o bajo
Como primer paso, calcula la probabilidad a priori de que la contribución total de tratamiento supere el 100% del resultado observado total:
from meridian.model import model
from meridian.analyzer import analyzer
import numpy as np
mmm = model.Meridian(...)
mmm.sample_prior(1000)
a = analyzer.Analyzer(mmm)
outcome = mmm.kpi
if mmm.revenue_per_kpi is not None:
outcome *= mmm.revenue_per_kpi
total_outcome = np.sum(outcome)
prior_contribution = a.incremental_outcome(use_posterior=False) / total_outcome
total_prior_contribution = np.sum(prior_contribution, -1)
np.mean(total_prior_contribution > 1, (0, 1))
Como siguiente paso, calcula la probabilidad a priori de que la contribución de cada tratamiento supere el 100%:
np.mean(prior_contribution > 1, (0, 1))
Si estas probabilidades a priori son demasiado altas, en particular cuando los datos contienen información limitada (consulta la sección Cuando la distribución a posteriori es igual a la distribución a priori), es posible que surja el problema de un resultado de referencia negativo. Considera realizar estos ajustes a la distribución a priori y, luego, vuelve a evaluar las distribuciones a priori personalizadas con las verificaciones que se describieron anteriormente:
- Un valor de referencia negativo es equivalente a que los efectos del tratamiento reciben demasiado crédito. Para mitigar esto, establece distribuciones a priori personalizadas para los efectos del tratamiento (consulta el artículo Cómo elegir los tipos de distribuciones a priori para los tratamientos) que reduzcan la probabilidad a priori de que la contribución total del tratamiento supere el 100% del resultado observado total. En particular, puede ser apropiado un tipo de distribución a priori personalizado de
contribution
. - En el caso de un canal con una inversión y un ROI altos, se podría inferir que este genera más del 100% del resultado, lo que genera un valor de referencia negativo. Por ejemplo, si tu resultado son los ingresos y la inversión de un canal es el 20% de los ingresos totales, un ROI de 5.0 indicaría que el canal genera el 100% de los ingresos (es decir, la contribución del canal es del 100%). Es probable que el ROI real sea mucho más bajo que 5.0, y establecer un ROI a priori para reflejar esto puede ayudar a evitar un valor de referencia negativo. Como regla general, la distribución a priori del ROI del percentil 90 para un canal no debería implicar que la contribución del canal sea superior al 100%.
- Si los medios pagados reciben demasiado crédito, considera establecer la distribución a priori del ROI en términos de la contribución total de los medios, de modo que esa contribución tenga una probabilidad a priori baja de ser mayor que el 100%. Para obtener más información, consulta el artículo Cómo establecer la distribución a priori de la contribución total de los medios.
Además de ajustar la distribución a priori, existen otras posibles causas que se deben investigar:
- El modelo no tiene suficientes controles de alta calidad, es decir, controles que afectan tanto la ejecución de los medios como la respuesta. Considera agregar controles más significativos o controles de ajuste poblacional cuando sea conveniente, por ejemplo, para el volumen de búsquedas. Meridian no aplica el ajuste poblacional a las variables de control de forma predeterminada. Para ajustar las variables de control según la población, usa
control_population_scaling_id
enModelSpec
. - El modelo no brinda suficiente explicación sobre los efectos del tiempo. Considera aumentar los nudos (
knots
) o seleccionar ubicaciones de nudos más apropiadas.
Evalúa el valor de referencia en función de la tendencia y la estacionalidad
Evalúa si la serie temporal de referencia, como la que se muestra en los gráficos de Model fit, coincide con la tendencia y la estacionalidad esperadas de la demanda base. Si el valor de referencia no logra captar la tendencia o la estacionalidad durante los períodos esperados, considera seleccionar más nudos alrededor de esos períodos. Para ello, define los nudos (knots
) en una lista que especifique su ubicación. Además, ten en cuenta las variables de control que podrían explicar la tendencia o la estacionalidad en la demanda base (consulta el artículo Variables de control).