Únete a la comunidad recientemente lanzada de
Discord para participar en debates en tiempo real, obtener asistencia de otros miembros y comunicarte directamente con el equipo de Meridian.
Cómo establecer distribuciones a priori del ROI personalizadas con experimentos anteriores
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Meridian requiere que se aprueben las distribuciones para la calibración del ROI. Si bien configurar distribuciones a priori personalizadas con los resultados de experimentos anteriores es un enfoque sólido, hay muchos matices que se deben tener en cuenta antes de continuar. Por ejemplo:
El tiempo del experimento en relación con el período del MMM:
Si el experimento se realizó antes o después del período del MMM,
es posible que los resultados no se puedan aplicar directamente.
La duración del experimento: Es posible que un experimento de corta duración no capture de manera eficaz los efectos a largo plazo de la efectividad del marketing.
La complejidad del experimento: Si el experimento involucró una combinación de canales, es posible que los resultados no proporcionen estadísticas claras sobre el rendimiento de los canales individuales.
Diferencias en los estimandos: Los estimandos que se usan en los experimentos pueden diferir de los que se usan en el MMM. Por ejemplo, la situación contrafáctica del MMM es una inversión nula, mientras que algunos experimentos podrían tener otra situación contrafáctica, como una inversión reducida.
Diferencias en la población: Es posible que la población objetivo del experimento no sea la misma que la considerada en el MMM.
Te recomendamos que configures las distribuciones a priori personalizadas en función de tu creencia en la efectividad de un canal. Una creencia previa puede estar basada en muchos factores, incluidos los experimentos o bien otros análisis confiables. Usa la intensidad de esa creencia previa para fundamentar la desviación estándar de la distribución a priori:
Si crees firmemente en la efectividad de un canal, puedes aplicar un factor de ajuste a la desviación estándar de la distribución a priori que refleje tu confianza. Por ejemplo, supongamos que realizaste varios experimentos para un canal en particular y todos ellos arrojaron estimaciones puntuales del ROI similares, o bien que tienes datos históricos de análisis del MMM anteriores que respaldan la efectividad de ese canal. En ese caso, podrías establecer una desviación estándar más pequeña para la distribución a priori, de modo que la distribución no varíe mucho. Esta distribución más ajustada indica que tienes una gran confianza en los resultados experimentales.
Por el contrario, teniendo en cuenta algunos de los matices mencionados anteriormente, es posible que el experimento no se corresponda necesariamente con el MMM. En ese caso, podrías optar por aplicar un factor de ajuste a la desviación estándar de la distribución a priori.
Por ejemplo, podrías establecer una desviación estándar más grande para la distribución a priori, según tu nivel de escepticismo.
Considera usar el argumento roi_calibration_period
en ModelSpec
. Para obtener más información, consulta Cómo establecer el período de calibración del ROI.
Cuando se establece la distribución a priori, se suele usar la distribución LogNormal
. El siguiente código de muestra se puede usar para transformar la media y el error estándar del experimento en la distribución a priori LogNormal
:
import numpy as np
def estimate_lognormal_dist(mean, std):
"""Reparameterization of lognormal distribution in terms of its mean and std."""
mu_log = np.log(mean) - 0.5 * np.log((std/mean)**2 + 1)
std_log = np.sqrt(np.log((std/mean)**2 + 1))
return [mu_log, std_log]
Sin embargo, si los resultados de los experimentos anteriores están cerca de cero, debes considerar si tus creencias previas están representadas con exactitud por una distribución no negativa, como la distribución LogNormal
. Te recomendamos que generes un gráfico de la distribución a priori para confirmar que coincida con tus intuiciones anteriores antes de continuar con el análisis. En el siguiente código de muestra, podrás ver cómo obtener parámetros LogNormal
reparametrizados, definir la distribución y extraer muestras de ella.
import tensorflow as tf
import tensorflow_probability as tfp
# Get reparameterized LogNormal distribution parameters
mu_log, std_log = estimate_lognormal_dist(mean, std)
mu_log = tf.convert_to_tensor(mu_log, dtype=tf.float32)
std_log = tf.convert_to_tensor(std_log, dtype=tf.float32)
# Define the LogNormal distribution
lognormal_dist = tfp.distributions.LogNormal(mu_log, std_log)
# Draw 10,000 samples
lognormal_samples = lognormal_dist.sample(10000).numpy()
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-17 (UTC)
[null,null,["Última actualización: 2025-08-17 (UTC)"],[[["\u003cp\u003eMeridian's ROI calibration can be enhanced by incorporating prior knowledge from past experiments, but factors like experiment timing, duration, complexity, estimand, and population differences need careful consideration for accurate application.\u003c/p\u003e\n"],["\u003cp\u003ePrior beliefs about channel effectiveness should guide the standard deviation of the prior distribution, with stronger beliefs corresponding to tighter distributions and vice-versa.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eroi_calibration_period\u003c/code\u003e argument in \u003ccode\u003eModelSpec\u003c/code\u003e offers further control over the calibration process.\u003c/p\u003e\n"],["\u003cp\u003eWhile the \u003ccode\u003eLogNormal\u003c/code\u003e distribution is commonly used for setting priors, its suitability should be evaluated when experimental results are near zero, potentially requiring alternative distributions to better reflect prior intuitions.\u003c/p\u003e\n"],["\u003cp\u003eVisualizing the prior distribution before analysis is crucial for ensuring it aligns with expectations and avoids misrepresentation of prior beliefs.\u003c/p\u003e\n"]]],["Meridian uses passing distributions for ROI calibration, informed by prior beliefs and experiments. Before using custom priors, consider: experiment timing, duration, complexity, estimand differences, and population differences. Adjust prior standard deviation based on confidence; strong confidence warrants a smaller standard deviation. Use the `roi_calibration_period` argument in `ModelSpec`. `LogNormal` distributions are common, and sample code transforms experimental mean and standard error to `LogNormal` parameters. For near-zero experimental results, verify that the `LogNormal` distribution aligns with prior beliefs.\n"],null,["# Set custom ROI priors using past experiments\n\nMeridian requires passing distributions for ROI calibration. Although setting\ncustom priors using results from previous experiments is a sound approach,\nthere are many nuances to consider before proceeding. For example:\n\n- **The timing of the experiment in relation to the MMM time window:**\n If the experiment was conducted either before or after the MMM time window,\n the results might not be directly applicable.\n\n- **The duration of the experiment:** An experiment of short duration might\n not effectively capture the long-term effects of the marketing effectiveness.\n\n- **The complexity of the experiment:** If the experiment involved a mixture\n of channels, the results might not provide clear insights into the performance\n of individual channels.\n\n- **Estimand differences:** The estimands used in experiments can differ from\n those used in the MMM. For example, the MMM counterfactual is zero spend,\n whereas some experiments might have a different counterfactual, such as\n reduced spend.\n\n- **Population differences:** The population targeted in the experiment might\n not be the same as the population considered in the MMM.\n\nWe recommend setting the custom priors based on your belief in the\neffectiveness of a channel. A prior belief can be informed by many things,\nincluding experiments or other reliable analyses. Use the strength in that\nprior belief to inform the standard deviation of the prior:\n\n- If you have a strong belief in the effectiveness of a channel,\n you can apply an adjustment factor to the standard deviation of the prior to\n reflect your confidence. For example, suppose you have conducted several\n experiments for a particular channel and all the experiments yielded similar\n ROI point estimates, or you have historical data from previous MMM analyses\n that support the effectiveness of this channel. In this case, you could set a\n smaller standard deviation for the prior so that the distribution won't vary\n widely. This tighter distribution indicates your strong confidence in the\n experimental results.\n\n- Conversely, the experiment might not necessarily translate to the MMM,\n considering some of the nuances listed earlier. In this case, you might choose\n to apply an adjustment factor to standard deviation of the prior distribution.\n For example, you could set a larger standard deviation for the prior,\n depending on your level of skepticism.\n\nYou should consider using the `roi_calibration_period` argument in\n`ModelSpec`. For more information, see\n[Set the ROI calibration period](/meridian/docs/user-guide/configure-model#set-roi-calibration-period).\n\nWhen setting the prior, the `LogNormal` distribution is a common\none to use. The following sample code can be used to transform experiment's\nmean and standard error to the `LogNormal` prior\ndistribution: \n\n import numpy as np\n\n def estimate_lognormal_dist(mean, std):\n \"\"\"Reparameterization of lognormal distribution in terms of its mean and std.\"\"\"\n mu_log = np.log(mean) - 0.5 * np.log((std/mean)**2 + 1)\n std_log = np.sqrt(np.log((std/mean)**2 + 1))\n return [mu_log, std_log]\n\nHowever, if the results from previous experiments are near zero, you should\nconsider whether your prior beliefs are accurately represented by a\nnon-negative distribution, such as the `LogNormal` distribution. We\nhighly recommend plotting the prior distribution to confirm it matches\nyour prior intuitions before proceeding with the analysis. The following\nsample code shows how to get reparameterized `LogNormal`\nparameters, define the distribution, and draw samples from it. \n\n import tensorflow as tf\n import tensorflow_probability as tfp\n\n # Get reparameterized LogNormal distribution parameters\n mu_log, std_log = estimate_lognormal_dist(mean, std)\n mu_log = tf.convert_to_tensor(mu_log, dtype=tf.float32)\n std_log = tf.convert_to_tensor(std_log, dtype=tf.float32)\n # Define the LogNormal distribution\n lognormal_dist = tfp.distributions.LogNormal(mu_log, std_log)\n # Draw 10,000 samples\n lognormal_samples = lognormal_dist.sample(10000).numpy()"]]