加入新推出的
Discord 社区,展开实时讨论,获得同行支持,并直接与 Meridian 团队互动!
Impostare prior del ROI personalizzati utilizzando gli esperimenti precedenti
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Meridian richiede il passaggio delle distribuzioni per la calibrazione del ROI. Sebbene l'impostazione
le distribuzioni a priori personalizzate basate sui risultati degli esperimenti precedenti sono un approccio valido,
ci sono molti aspetti da considerare prima di procedere. Ad esempio:
La tempistica dell'esperimento rispetto alla finestra temporale del Marketing Mix Modeling:
Se l'esperimento è stato condotto prima o dopo la finestra temporale di MMM,
i risultati potrebbero non essere direttamente applicabili.
La durata dell'esperimento:un esperimento di breve durata potrebbe
non riuscire a cogliere in modo efficace gli effetti a lungo termine dell'efficacia del marketing.
La complessità dell'esperimento: se l'esperimento prevedeva una miscela
dei canali, i risultati potrebbero non fornire informazioni chiare sul rendimento
dei singoli canali.
Differenze nelle stime:le stime utilizzate negli esperimenti possono differire da
a quelle usate nell'MMM. Ad esempio, il valore controfattuale dell'MMM è pari a zero,
mentre alcuni esperimenti potrebbero avere un valore controfattuale, come
una spesa ridotta.
Differenze nella popolazione: la popolazione target dell'esperimento potrebbe
non coincidere con la popolazione considerata nel Marketing Mix Modeling.
Ti consigliamo di impostare le distribuzioni a priori personalizzate in base alla tua convinzione nei
l'efficacia di un canale. Una convinzione precedente può essere basata su molti fattori,
inclusi esperimenti o altre analisi affidabili. Usa la forza in questo
precedente per informare la deviazione standard della distribuzione a priori:
Se credi fermamente nell'efficacia di un canale,
puoi applicare un fattore di aggiustamento alla deviazione standard della
riflettono la tua sicurezza. Ad esempio, supponiamo che tu abbia condotto diversi
esperimenti per un determinato canale e tutti gli esperimenti hanno dato un risultato simile
Stime in punti ROI o disponi di dati storici di precedenti analisi MMM
che supportano l'efficacia di questo canale. In questo caso, potresti impostare
deviazione standard più piccola per la distribuzione a priori, in modo che la distribuzione non varierà
ampiamente. Questa distribuzione più ristretta indica una forte fiducia nel
risultati sperimentali.
Al contrario, l'esperimento potrebbe non essere necessariamente
considerando alcune delle sfumature
elencate in precedenza. In questo caso, potresti scegliere
applicare un fattore di aggiustamento alla deviazione standard della distribuzione precedente.
Ad esempio, potresti impostare una deviazione standard più grande per la distribuzione
a seconda del tuo livello di scetticismo.
Ti consigliamo di utilizzare l'argomento roi_calibration_period
in
ModelSpec
. Per ulteriori informazioni, vedi
Imposta il periodo di calibrazione del ROI.
Quando imposti la distribuzione a priori, la distribuzione di LogNormal
è un comportamento comune
uno da utilizzare. Il seguente codice di esempio può essere utilizzato per trasformare
medio ed errore standard al LogNormal
precedente
distribuzione:
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]
Tuttavia, se i risultati degli esperimenti precedenti sono vicini allo zero, devi
valuta se le tue convinzioni precedenti sono rappresentate con precisione da un
distribuzione non negativa, come la distribuzione LogNormal
. Me
consigliamo vivamente di tracciare la distribuzione precedente per verificare che corrisponda
le tue conoscenze precedenti prima di procedere con l'analisi. Le seguenti
il codice campione mostra come ridefinire i parametri LogNormal
parametri, definire la distribuzione e ricavare campioni.
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 quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-22 UTC.
[null,null,["Ultimo aggiornamento 2024-12-22 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()"]]