En Meridian, hay varios tipos de variables de tratamiento: medios pagados, medios orgánicos o tratamientos que no son de medios. Para cada tipo de tratamiento, puedes especificar un tipo de distribución a priori. En particular, un tipo de distribución a priori representa la métrica específica (como el ROI, el mROI, la contribución o el coeficiente) en la que basas tus creencias previas. Puedes elegir la métrica de la que tengas más conocimientos comerciales (p. ej., a partir de experimentos) o la métrica que más te interese al interpretar los resultados del modelo.
Con cada tipo de distribución a priori, Meridian establece una predeterminada según alguna justificación comercial general. La distribución predeterminada se puede neutralizar en función de tus conocimientos técnicos del dominio específico para ajustar mejor la distribución a priori a tu propia intuición comercial. Comprender estas opciones y sus fundamentos es crucial para incorporar en Meridian conocimientos técnicos del dominio.
Definiciones de los tipos de distribuciones a priori
Las definiciones de los tipos de distribuciones a priori disponibles en Meridian son las siguientes:
- ROI (retorno de la inversión): Expresa el ratio del resultado incremental que genera un canal en el costo de la inversión en medios de ese canal (
Incremental Outcome / Spend). Suele ser la métrica más intuitiva para los medios pagados, sobre todo cuando se calibra con resultados de experimentos. - mROI (ROI marginal): Representa el retorno de la inversión de una unidad monetaria adicional (por ejemplo, un dólar) de inversión en un canal determinado. Es útil cuando se considera una optimización del presupuesto, ya que los canales con un mROI más alto son buenos candidatos para recibir más presupuesto.
- Contribución: Indica la proporción del resultado total que es atribuible a un canal (
Incremental Outcome / Total Outcome). Mientras que las distribuciones a priori del ROI y del mROI solo se pueden usar para los medios pagados, las distribuciones a priori de la contribución se pueden usar para los canales en los que no hay ninguna inversión asociada, como los canales orgánicos o los tratamientos que no son de medios.
- Coeficiente: Expresa el coeficiente estadístico subyacente para un tratamiento determinado en el modelo de regresión de Meridian. A diferencia del ROI, el mROI y la contribución, que son métricas comerciales, el coeficiente constituye un parámetro estadístico más abstracto que es difícil de traducir a términos comerciales sin el contexto de otros parámetros y datos del modelo.
La siguiente tabla resume los tipos de distribuciones a priori que se pueden usar con cada tipo de tratamiento.
| Tipo de distribución a priori | Medios pagados | Medios orgánicos | Tratamientos que no son de medios |
|---|---|---|---|
| ROI | Sí* | No | No |
| mROI | Sí* | No | No |
| Contribución | Sí | Sí | Sí |
| Coeficiente | Sí | Sí | Sí |
Ejemplos en lenguaje empresarial
Para aclarar estos conceptos, consulta a continuación cómo podrías expresar una distribución a priori para cada tipo en un lenguaje comercial sencillo:
Especificación de una distribución a priori del ROI:
"Según nuestro estudio de efectividad más reciente, tenemos la certeza de que nuestros anuncios de búsqueda generan alrededor de USD 1.50 de ingresos por cada dólar invertido. Quiero que la distribución a priori del ROI se centre en torno a ese valor".
Especificación de una distribución a priori del mROI:
"Si invirtiéramos un dólar más en anuncios de redes sociales, esperaríamos obtener alrededor de USD 1.10 con nuestro nivel de inversión actual. Quiero que la distribución a priori del mROI se centre y distribuya de forma estricta en torno a ese valor".
Especificación de una distribución a priori de la contribución:
"Consideramos que nuestros anuncios de video digitales generan aproximadamente el 5% de nuestros ingresos totales. Quiero que la distribución a priori de la contribución se centre en torno a ese valor".
Especificación de una distribución a priori del coeficiente:
Esta opción es menos común para los usuarios empresariales y consistiría en decir algo como lo siguiente: "Considero que la distribución beta de regresión subyacente para esta variable debería ser de 0.02". Por lo general, está reservada para los científicos de datos que tienen objetivos estadísticos específicos, ya que la interpretación depende en gran medida del ajuste de los datos de entrada y la métrica de salida.
Consideraciones para elegir los tipos de distribuciones a priori para los tratamientos
En esta sección, analizamos la lógica comercial y de modelado para elegir diferentes tipos de distribuciones a priori relacionadas con los medios pagados, los medios orgánicos y los tratamientos que no son de medios.
Consideraciones sobre los medios pagados
Las distribuciones a priori del ROI se establecen como configuración predeterminada porque suelen ajustarse mejor a los conocimientos previos, como los resultados de experimentos. Por lo general, esta es la opción más intuitiva para establecer distribuciones a priori razonablemente bien fundamentadas.
Las distribuciones a priori del mROI suelen ser una opción atractiva si se aplicaron muchos conocimientos previos al definir presupuestos históricos o si los anunciantes desean obtener recomendaciones de presupuesto más conservadoras. Imponen una probabilidad a priori capaz de reducir la asignación óptima del presupuesto para llegar a su asignación histórica, lo que permite regularizar los cambios de presupuesto recomendados. Para lograrlo, es posible establecer una media de distribución a priori del mROI común para todos los canales y ajustar la desviación estándar. Cuanto más sólida sea la distribución a priori (desviación estándar menor), más cerca estará la asignación óptima de la histórica y más pequeños serán los cambios de presupuesto recomendados. Ten en cuenta que las restricciones de inversión en optimización ofrecen otra forma de limitar los cambios de presupuesto recomendados, lo que puede evitar la necesidad de distribuciones a priori del mROI. Para obtener más detalles, consulta la subsección "Utiliza distribuciones a priori del mROI para la regularización del presupuesto".
Las distribuciones a priori de la contribución son muy similares a las del ROI para los medios pagados. La única diferencia es que el denominador de la distribución a priori del ROI es la inversión del canal, mientras que el denominador de la distribución a priori de la contribución es el resultado observado total. Esto significa que cualquier distribución a priori de la contribución se puede traducir a una distribución a priori del ROI, y cualquier distribución a priori del ROI se puede traducir a una distribución a priori de la contribución para los medios pagados.
Las distribuciones a priori del coeficiente emplean la parametrización más tradicional para un modelo de regresión lineal. En el contexto del MMM, la interpretación de un coeficiente es un poco abstracta, lo que dificulta establecer una distribución a priori basada en información bien fundamentada. Un valor de coeficiente específico puede sugerir valores del ROI muy diferentes para distintos canales de medios pagados, ya que el ROI depende de la distribución de la ejecución del canal en diferentes ubicaciones geográficas y períodos; las estimaciones de los parámetros de Adstock y retornos decrecientes del canal, y el costo por unidad de medios del canal.
Consideraciones adicionales sobre un resultado no relacionado con los ingresos
Cuando el resultado no corresponde a los ingresos (cuando el KPI no se expresa en unidades monetarias y no se proporciona revenue_per_kpi), cambia la disponibilidad y la interpretación de las distribuciones a priori para los medios pagados. Cada parámetro de PriorDistribution tiene una distribución predeterminada.
Existen dos excepciones en las que no se utiliza la distribución predeterminada, y ambas ocurren cuando el resultado no se relaciona con los ingresos.
Las distribuciones a priori del ROI funcionan de manera diferente porque no es posible calcular un ratio monetario. En su lugar, cuando utilizas media_prior_type = 'roi', la distribución a priori predeterminada se aplica a la contribución total de todos los canales de medios pagados. Esto te permite establecer una distribución a priori sobre la proporción total del KPI no monetario que generan los medios pagados. Cuando se utilizan distribuciones a priori del ROI, la distribución predeterminada se asigna según una metodología especial de contribución total de los medios pagados.
Las distribuciones a priori del mROI representan el retorno marginal en términos de unidades de resultado por dólar (por ejemplo, registros adicionales por dólar). Dado que este valor depende en gran medida del KPI específico, no es práctico establecer una distribución predeterminada universal. Por lo tanto, Meridian no incluye una distribución a priori predeterminada para el mROI en los casos que no se relacionan con los ingresos y exige que especifiques una personalizada en función de tus conocimientos del dominio. En esos casos, es necesario incluir una distribución personalizada. No hay ninguna distribución predeterminada porque el rango razonable de valores variará mucho de una empresa a otra.
Las distribuciones a priori de la contribución suelen ser una opción práctica para cualquier resultado que no corresponda a los ingresos, ya que representan la proporción del resultado total atribuible a un canal. Más allá de que el resultado esté o no esté relacionado con los ingresos, esta definición sigue siendo coherente.
Consideraciones sobre los medios orgánicos
Las distribuciones a priori de la contribución son la opción predeterminada porque expresan la cantidad más intuitiva para establecer una distribución a priori fundamentada. Es posible que se espere que algunos canales tengan contribuciones más altas que otros, por lo que te recomendamos que personalices la distribución a priori de una manera que tenga sentido para tu empresa y tus tácticas de marketing. A menudo, una distribución beta tiene sentido porque está restringida al intervalo de cero a uno.
Las distribuciones a priori del coeficiente emplean la parametrización más tradicional para un modelo de regresión lineal. Al igual que con los medios pagados, la interpretación de un coeficiente es un poco abstracta, lo que hace que sea difícil establecer una distribución a priori fundamentada. Un valor de coeficiente específico puede sugerir valores de la contribución muy diferentes para distintos canales de medios orgánicos, ya que la contribución depende de la distribución de la ejecución del canal en diferentes ubicaciones geográficas y períodos, así como las estimaciones de los parámetros de Adstock y retornos decrecientes del canal.
Consideraciones sobre los tratamientos que no son de medios
Las distribuciones a priori de la contribución son la opción predeterminada porque expresan la cantidad más intuitiva para establecer una distribución a priori fundamentada. Siempre es una buena idea configurar la distribución a priori. Según el valor de referencia especificado de cada variable, es posible que la contribución sea positiva o negativa, o que el signo de la contribución sea desconocido. Por ejemplo, es posible que no esté claro si establecer el precio en un valor de referencia determinado tendría un impacto positivo o negativo en los ingresos. O tal vez tengas una expectativa a priori de que el precio tiene un impacto positivo con un precio de referencia, y un impacto negativo con un precio de referencia diferente.
Las distribuciones a priori del coeficiente emplean la parametrización más tradicional para un modelo de regresión lineal. Al igual que con los medios pagados y los medios orgánicos, la interpretación de un coeficiente es un poco abstracta, lo que hace que sea difícil establecer una distribución a priori fundamentada. Un valor de coeficiente específico puede sugerir valores de la contribución muy diferentes para distintos canales de tratamientos que no son de medios, ya que la contribución depende de la distribución de valores del tratamiento en diferentes ubicaciones geográficas y períodos, así como el valor del tratamiento del modelo de referencia.
Diagramas de flujo para elegir los tipos de distribuciones a priori para los tratamientos
Los siguientes diagramas de flujo detallan las consideraciones antes mencionadas que deberías tener en cuenta según se trate de medios pagados, medios orgánicos o tratamientos que no son de medios.
Medios pagados

Medios orgánicos o tratamientos que no son de medios

Configura los tipos de distribuciones a priori para los tratamientos
En esta sección, analizamos los tipos de distribuciones a priori disponibles para los medios pagados, los medios orgánicos y los tratamientos que no son de medios, además de las diferentes consideraciones para configurarlos en la biblioteca de Meridian. Incluimos varios ejemplos y fragmentos de código para configurar los tipos de distribuciones a priori para los diferentes tipos de tratamientos.
Configura las distribuciones a priori para los medios pagados
El tipo de distribución a priori para los medios pagados se especifica con los argumentos media_prior_type y rf_prior_type de ModelSpec. La siguiente tabla muestra los parámetros de PriorDistribution que están asociados con cada tipo de distribución a priori.
media_prior_type/rf_prior_type |
Parámetro en PriorDistribution |
|---|---|
'roi'* (configuración predeterminada) |
roi_m,* roi_rf* |
'mroi'* |
mroi_m,* mroi_rf* |
'contribution' |
contribution_m, contribution_rf |
'coefficient' |
beta_m, beta_rf |
Ejemplos de configuración para los medios pagados
La siguiente sección incluye ejemplos hipotéticos de cómo podrías configurar estas distribuciones a priori para un modelo con dos canales de medios pagados. Las viñetas explican el razonamiento de la configuración de la distribución a priori de ejemplo que se muestra en el bloque de código debajo de cada una de ellas. Las distribuciones predeterminadas también se proporcionan como punto de referencia para facilitar la comprensión del proceso de configuración de cada tipo de distribución a priori.
ROI (
roi_m): Aquí la configuración incluye medias de distribuciones normales logarítmicas establecidas en 1.7 y 2.5 para que se adecue a los estudios de efectividad experimentales.Como referencia, la distribución predeterminada utiliza
LogNormal(0.2, 0.9), con una media de 1.22 y una mediana de 1.83.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# -----------------------------------------------------------------------------
# Option 1: ROI (Return on Investment)
# -----------------------------------------------------------------------------
# ROI (LogNormal) -> Means at 1.7 and 2.5
prior = prior_distribution.PriorDistribution(
roi_m=prior_distribution.PriorDistribution.lognormal_dist_from_mean_std(
mean=[1.7, 2.5], std=[0.3, 0.5]
)
)
model_spec = spec.ModelSpec(prior=prior, media_prior_type='roi')
mROI (
mroi_m): La configuración incluye medias de distribuciones estrictas establecidas en 1.0. Para regularizar la optimización del presupuesto, se seleccionaron una media común y una desviación estándar pequeña para ambos canales, además de una media de 1.0, ya que se presupone que los dos canales están cerca de la saturación.Como referencia, la distribución predeterminada utiliza
LogNormal(0.0, 0.5), con una media de 1.13 y una mediana de 1.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# -----------------------------------------------------------------------------
# Option 2: mROI (Marginal Return on Investment)
# -----------------------------------------------------------------------------
# mROI (LogNormal) -> Means at 1.0
prior = prior_distribution.PriorDistribution(
mroi_m=prior_distribution.PriorDistribution.lognormal_dist_from_mean_std(
mean=[1.0, 1.0], std=[0.2, 0.2]
)
)
model_spec = spec.ModelSpec(prior=prior, media_prior_type='mroi')
Contribución (
contribution_m): La configuración utiliza distribuciones beta para modelar "porcentajes de efecto" específicos establecidos en un 3% y un 4%.Como referencia, la distribución predeterminada utiliza
Beta(concentration1=1.0, concentration0=99.0)y tiene una media del 1%.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# -----------------------------------------------------------------------------
# Option 3: Media Contribution
# -----------------------------------------------------------------------------
# Contribution (Beta) -> Means at 3% and 4%
prior = prior_distribution.PriorDistribution(
contribution_m=tfp.distributions.Beta(
concentration1=[3.0, 4.0], concentration0=[97.0, 96.0]
)
)
model_spec = spec.ModelSpec(prior=prior, media_prior_type='contribution')
Coeficiente (
beta_m): La configuración utiliza distribuciones seminormales con escalas más estrictas (1.0 y 1.5) para aplicar la regularización estadística.Como referencia, la distribución predeterminada es
Normal(0, 5)y se considera como una distribución a priori débilmente informativa.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# -----------------------------------------------------------------------------
# Option 4: Media Coefficient
# -----------------------------------------------------------------------------
# Coefficient (HalfNormal) -> Scales at 1.0 and 1.5
prior = prior_distribution.PriorDistribution(
beta_m=tfp.distributions.HalfNormal(scale=[1.0, 1.5])
)
model_spec = spec.ModelSpec(prior=prior, media_prior_type='coefficient')
Configura las distribuciones a priori para los medios orgánicos
El tipo de distribución a priori para los medios orgánicos se especifica con los argumentos organic_media_prior_type y organic_rf_prior_type. Las opciones son 'contribution' y 'coefficient', y 'contribution' es la configuración predeterminada.
organic_media_prior_type/organic_rf_prior_type |
Parámetro en PriorDistribution |
|---|---|
'contribution' (configuración predeterminada) |
contribution_om, contribution_orf |
'coefficient' |
beta_om, beta_orf |
Ejemplos de configuración para los medios orgánicos
Esta sección presenta muestras de código para configurar diferentes tipos de distribuciones a priori para los tratamientos de medios orgánicos. Las viñetas explican el razonamiento de la configuración de la distribución a priori de ejemplo que se muestra en el bloque de código debajo de cada una de ellas. Las distribuciones predeterminadas también se proporcionan como punto de referencia para facilitar la comprensión del proceso de configuración de cada tipo de distribución a priori.
Contribución (
contribution_om): La configuración incluye una distribución beta con una media establecida en un 3%.Como referencia, la distribución predeterminada es
Beta(1.0, 99.0)y tiene una media del 1%.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# -----------------------------------------------------------------------------
# Option 1: Organic Media Contribution
# -----------------------------------------------------------------------------
# Contribution (Beta) -> Mean at 3%
prior = prior_distribution.PriorDistribution(
contribution_om=tfp.distributions.Beta(
concentration1=[3.0, 3.0], concentration0=[97.0, 97.0]
)
)
model_spec = spec.ModelSpec(prior=prior, organic_media_prior_type='contribution')
Coeficiente (
beta_om): La configuración utiliza una distribución seminormal para aplicar una regularización estadística más estricta (escala de 2.0).Como referencia, la distribución predeterminada es
HalfNormal(5)y tiene una escala de 5.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# -----------------------------------------------------------------------------
# Option 2: Organic Media Coefficient
# -----------------------------------------------------------------------------
# Coefficient (HalfNormal) -> Scale at 2.0
prior = prior_distribution.PriorDistribution(
beta_om=tfp.distributions.HalfNormal(scale=[2.0, 2.0])
)
model_spec = spec.ModelSpec(prior=prior, organic_media_prior_type='coefficient')
Configura las distribuciones a priori para los tratamientos que no son de medios
El tipo de distribución a priori para los tratamientos que no son de medios se especifica con el argumento non_media_treatments_prior_type. Las opciones son 'contribution' y 'coefficient', y 'contribution' es la configuración predeterminada.
La siguiente tabla muestra el parámetro de PriorDistribution que corresponde a cada non_media_treatments_prior_type y que se puede usar para personalizar la distribución a priori.
non_media_treatments_prior_type |
Parámetro en PriorDistribution |
|---|---|
'contribution' (configuración predeterminada) |
contribution_n |
'coefficient' |
gamma_n |
Ejemplos de configuración para los tratamientos que no son de medios
Esta sección presenta varias muestras de código para configurar diferentes tipos de distribuciones a priori para los tratamientos que no son de medios. Las viñetas explican el razonamiento de la configuración de la distribución a priori de ejemplo que se muestra en el bloque de código debajo de cada una de ellas. Las distribuciones predeterminadas también se proporcionan como punto de referencia para facilitar la comprensión del proceso de configuración de cada tipo de distribución a priori.
Contribución (
contribution_n): La configuración establece una distribución normal truncada que concentra la masa en -5% para el primer tratamiento y en 5% para el segundo. Ambos presentan una incertidumbre relativamente amplia (10%).La distribución a priori para el primer tratamiento solo permite una contribución negativa, ya que se trunca para que se encuentre dentro del rango (-100%, 0%). Esto podría ser razonable si el tratamiento que no es de medios se basa en el precio, mientras que el KPI representa la cantidad de unidades vendidas.
La distribución a priori para el segundo tratamiento solo permite una contribución positiva, ya que se trunca para que se encuentre dentro del rango (0%, 100%). Esto podría ser razonable si el tratamiento que no es de medios se basa en una promoción, mientras que el KPI representa la cantidad de unidades vendidas.
Como referencia, la distribución predeterminada es
TruncatedNormal(0.0, 0.1, -1.0, 1.0)y se considera como una distribución a priori débilmente informativa.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# -----------------------------------------------------------------------------
# Option 1: Non-Media Treatment Contribution
# -----------------------------------------------------------------------------
# Contribution (TruncatedNormal) -> Loc at -5% and 5%, Scale at 10%
prior = prior_distribution.PriorDistribution(
contribution_n=tfp.distributions.TruncatedNormal(
loc=[-0.05, 0.05],
scale=[0.1, 0.1],
low=[-1.0, 0.0],
high=[0.0, 1.0]
)
)
model_spec = spec.ModelSpec(
prior=prior,
non_media_treatments_prior_type='contribution'
)
Coeficiente (
gamma_n): La configuración utilizaNormal(0, 1), que tiene una desviación estándar más pequeña que la distribución predeterminada. En ocasiones, una regularización más fuerte resulta útil para reducir la varianza de la distribución a posteriori.Como referencia, la distribución predeterminada es
Normal(0, 5)y se considera como una distribución a priori débilmente informativa.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# -----------------------------------------------------------------------------
# Option 2: Non-Media Treatment Coefficient
# -----------------------------------------------------------------------------
# Coefficient (Normal) -> Loc at 0.0, Scale at 1.0
prior = prior_distribution.PriorDistribution(
gamma_n=tfp.distributions.Normal(
loc=[0.0, 0.0], scale=[1.0, 1.0]
)
)
model_spec = spec.ModelSpec(
prior=prior,
non_media_treatments_prior_type='coefficient'
)
Especifica los argumentos de la distribución a priori adecuada
El objeto PriorDistribution tiene un argumento para cada combinación de tipo de tratamiento y tipo de distribución a priori.
Para cada tipo de tratamiento, solo se usa el argumento correspondiente al tipo de distribución a priori seleccionado. Los demás se ignoran.
Por ejemplo, los argumentos correspondientes a los medios pagados sin datos de alcance y frecuencia son los siguientes:
roi_mmroi_mcontribution_mbeta_m
Si media_prior_type es 'roi', se usa roi_m y se ignoran los demás.
Para ejemplificar, un usuario podría especificar distribuciones a priori para varios tipos de ellas. Sin embargo, en este ejemplo, solo se utilizan distribuciones a priori de la contribución, ya que media_prior_type='contribution'.
En el siguiente fragmento, observa cómo se definen roi_m y mroi_m, pero se ignorarán porque media_prior_type se establece en contribution.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# Set custom prior for all paid media treatment parameters.
prior_dist = prior_distribution.PriorDistribution(
roi_m=tfp.distributions.LogNormal(0.2, 0.9), # NOT used
mroi_m=tfp.distributions.LogNormal(0.0, 0.5), # NOT used
contribution_m=tfp.distributions.Beta(1.0, 99.0), # Used
beta_m=tfp.distributions.HalfNormal(5.0), # NOT used
)
# Setting the treatment type to 'contribution' means that only the `contribution_m`
# prior will be used. The priors specified on `roi_m`, `mroi_m`, and `beta_m` will be ignored.
spec = spec.ModelSpec(prior=prior_dist, media_prior_type='contribution')
El comportamiento relacionado con la especificación de la distribución a priori adecuada también se detalla en el siguiente diagrama de flujo.

Consideraciones adicionales
Esta sección abarca consideraciones avanzadas adicionales que se pueden tener en cuenta al elegir entre diferentes tipos de distribuciones a priori para los tratamientos en Meridian.
Personaliza las distribuciones a priori de la contribución para los tratamientos que no son de medios
La distribución a priori de contribución predeterminada es una distribución normal truncada, lo que permite valores positivos y negativos. Puedes establecer parámetros específicos del tratamiento en la distribución normal truncada para desplazar la masa de probabilidad hacia valores positivos o negativos. Por ejemplo, el siguiente fragmento de código asigna una distribución Normal(0, 0.1) truncada simétricamente en el primer tratamiento, una distribución HalfNormal(0, 0.2) truncada positivamente en el segundo tratamiento y una distribución HalfNormal(0, 0.1) truncada negativamente en el tercer tratamiento.
PriorDistribution(
contribution_n=tfp.distributions.TruncatedNormal(
loc=[0, 0, 0],
scale=[0.1, 0.2, 0.1],
high=[1, 1, 0],
)
)
Como alternativa, puedes usar una distribución beta ajustada para especificar una distribución positiva para algunos tratamientos y una distribución negativa para otros. Por ejemplo, el siguiente fragmento de código asignaría una distribución a priori beta (1, 49) en el primer tratamiento y una distribución a priori beta negativa (1, 99) en el segundo.
PriorDistribution(
contribution_n=tfp.distributions.TransformedDistribution(
tfp.distributions.Beta([1, 1], [49, 99]),
tfp.bijectors.Scale([1, -1]),
)
)
Comprende las distribuciones a priori inducidas y la paridad de los canales
Cuando especificas una distribución a priori en una métrica (por ejemplo, el ROI), Meridian induce una distribución a priori en la otra (el mROI). Esta distribución a priori inducida no pertenece a una familia paramétrica estándar y depende de otros parámetros del modelo, incluida la ejecución de los medios del canal en diferentes ubicaciones geográficas y períodos.
Este funcionamiento tiene una consecuencia importante para la paridad de los canales; por ejemplo, incluso si estableces una distribución a priori del ROI común para todos los canales, las distribuciones a priori del mROI inducidas diferirán de un canal a otro, y viceversa. Por lo tanto, si tu objetivo es presuponer la paridad entre todos los canales para una métrica específica, deberías establecer la distribución a priori directamente en esa métrica con la parametrización correspondiente.
Si deseas examinar las distribuciones a priori del ROI y del mROI inducidas para un modelo, puedes llamar a sample_prior y aplicar el método roi o marginal_roi de la clase Analyzer con el argumento use_posterior=False.
from meridian.analysis import analyzer
from meridian.model import model
import numpy as np
mmm = model.Meridian(...)
mmm.sample_posterior(...)
analyzer_instance = analyzer.Analyzer(mmm)
# Get the prior distributions using `use_posterior=False`.
roi_prior = analyzer_instance.roi(use_posterior=False)
# This is the induced prior on mROI.
mroi_induced_prior = analyzer_instance.marginal_roi(use_posterior=False)
# The shape of the prior samples is (chains, draws, channels).
# We calculate the mean across the 'chains' and 'draws' axes.
print("Mean of ROI prior per channel:", np.mean(roi_prior, axis=(0, 1)))
print("Mean of induced mROI prior per channel:", np.mean(mroi_induced_prior, axis=(0, 1)))
Concepto avanzado: relación de inducción entre el mROI y el ROI
Si bien las distribuciones a priori inducidas no pertenecen a una familia paramétrica estándar, igualmente podemos explicarlas. Recuerda que el mROI representa el retorno de la inversión de una unidad monetaria adicional (por ejemplo, un dólar) de inversión en un canal determinado.
En el caso de los canales basados en impresiones (aquellos sin datos de alcance y frecuencia), se asigna una unidad monetaria adicional de inversión aumentando la ejecución de los medios (p. ej., las impresiones).
Cuando la función de Hill de un canal es cóncava (como lo es la distribución predeterminada), el ROI general del canal siempre será más alto que su mROI. Esto genera una relación predecible entre las distribuciones a priori especificadas y las inducidas:
- Una distribución a priori del ROI induce una distribución a priori del mROI que es estrictamente menor.
- Una distribución a priori del mROI induce una distribución a priori del ROI que es estrictamente mayor.
En el caso de los canales de alcance y frecuencia (R&F), se asigna la unidad monetaria adicional de inversión aumentando el alcance y manteniendo fija la frecuencia promedio.
En los canales de R&F, el mROI (por alcance) es igual al ROI, ya que los efectos de los medios, en el modelo de Meridian, son lineales en lo que respecta al alcance. La distribución a priori del mROI de Meridian se aplica al mROI por alcance; en consecuencia, elegir entre una distribución a priori del ROI y una del mROI no tiene ningún impacto en la distribución a priori en sí para esos canales. Sin embargo, si utilizas distribuciones predeterminadas, la elección es importante, ya que las que se relacionan con las distribuciones a priori del ROI y del mROI son diferentes.
Utiliza las distribuciones a priori del mROI para la regularización del presupuesto
Puedes utilizar las distribuciones a priori del mROI para regularizar las recomendaciones de optimización del presupuesto, ya que las reducen para acercarlas a la asignación histórica. Esto resulta útil si consideras que los presupuestos históricos ya estaban cerca del valor óptimo.
Para hacerlo, puedes establecer una media de distribución a priori del mROI común para todos los canales y utilizar una desviación estándar pequeña. Una distribución a priori más sólida (desviación estándar menor) acerca la asignación óptima a la asignación histórica, lo que da lugar a que los cambios de presupuesto recomendados sean más pequeños. Por ejemplo, establecer la media del mROI en 1.0 sugiere que, a los niveles de inversión históricos, un dólar adicional de inversión generaría un dólar de retorno, lo que implica que el canal está cerca de su presupuesto óptimo.
import tensorflow_probability as tfp
from meridian.model import spec, prior_distribution
# Assume 2 paid media channels.
# Set a common mROI prior mean of 1.0, suggesting budgets are near optimal.
# Use a very small standard deviation to create a strong prior.
mean_mroi = [1.0, 1.0]
std_mroi = [0.1, 0.1] # A small std dev creates a strong prior.
lognormal_mroi_regularizing = prior_distribution.PriorDistribution.lognormal_dist_from_mean_std(
mean_mroi, std_mroi
)
prior_mroi_regularizing = prior_distribution.PriorDistribution(
mroi_m=lognormal_mroi_regularizing
)
# This ModelSpec will produce more conservative budget recommendations.
model_spec_regularized = spec.ModelSpec(
prior=prior_mroi_regularizing,
media_prior_type='mroi'
)
El grado de ejecución de los medios (y, por lo tanto, la saturación) de un canal puede variar en las diferentes ventanas de tiempo. Así, los valores del mROI pueden cambiar de una ventana de tiempo a otra. Si tu objetivo es utilizar las distribuciones a priori del mROI para regularizar la optimización del presupuesto, asegúrate de que la ventana de tiempo de la distribución a priori se corresponda con la ventana de optimización. De lo contrario, la regularización podría no funcionar según lo previsto.
- Para ajustar la ventana de optimización, utiliza el argumento
selected_timedeBudgetOptimizer.optimize(). Si deseas ver muestras de código, consulta la página Filtra los resultados del modelo con selected_geos y selected_times. - Para ajustar la ventana de distribución a priori del mROI, utiliza los argumentos
roi_calibration_periodyrf_roi_calibration_perioddeModelSpec. De forma predeterminada, ambas ventanas abarcan todo el período de modelado.