加入新推出的
Discord 社区,展开实时讨论,获得同行支持,并直接与 Meridian 团队互动!
Ustawianie niestandardowych priorytetów zwrotu z inwestycji na podstawie wcześniejszych eksperymentów
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Meridian wymaga kalibracji pod kątem ROI. Chociaż ustawienie
na podstawie wyników poprzednich eksperymentów.
należy wziąć pod uwagę wiele niuansów. Na przykład:
Czas eksperymentu w odniesieniu do przedziału czasowego modelu MMM:
Jeśli eksperyment przeprowadzono albo przed oknem czasowym MMM, albo po nim,
wyniki mogą nie mieć zastosowania.
Czas trwania eksperymentu: krótki czas trwania eksperymentu może
nie pozwalają na uchwycenie długoterminowych efektów skuteczności marketingu.
Złożoność eksperymentu: jeśli eksperyment obejmuje mieszankę czynników.
kanałów, wyniki mogą nie dawać jasnych informacji na temat skuteczności
poszczególnych kanałów.
Różnice szacunkowe: wartości szacunkowe używane w eksperymentach mogą się różnić od
stosowane w modelowaniu marketing miksu. Na przykład kontrfaktyczny kontrfaktyczny model marketing miksu to zero wydatków,
a niektóre eksperymenty mogą mieć inny kontrfakt, np.
niższych wydatków.
Różnice populacyjne: populacja objęta eksperymentem może
nie musi być taka sama jak populacja brana pod uwagę w modelowaniu marketing miksu.
Zalecamy ustawienie niestandardowego progu na podstawie swojego przekonania
do efektywności kanału. Powszechne przekonanie może wynikać z wielu czynników,
w tym eksperymentów
i innych wiarygodnych analiz. Wykorzystaj w tym celu
wcześniejsze przekonanie, aby podawać odchylenie standardowe poprzedniej wartości:
Jeśli mocno wierzysz w skuteczność kanału,
możesz zastosować współczynnik korygujący do odchylenia standardowego przed
odzwierciedlają Twoją pewność. Załóżmy np., że wykonaliście kilka
eksperymentów dotyczących konkretnego kanału, a wszystkie dały podobne wyniki,
szacunkowa liczba punktów ROI lub dysponujesz danymi historycznymi z poprzednich analiz modelowania marketing miksu.
które wspierają efektywność tego kanału. W takim przypadku możesz ustawić parametr
mniejsze odchylenie standardowe dla poprzedniej wartości, aby nie zmieniała się rozkład
bardzo szeroko. Taki węższy rozkład wskazuje na Twoje silniejsze zaufanie do
wyniki eksperymentu.
I na odwrót: eksperyment nie zawsze przekłada się na modelowanie marketing miksu,
biorąc pod uwagę niektóre wymienione wcześniej niuanse. W takim przypadku możesz wybrać
aby zastosować współczynnik korygujący do odchylenia standardowego poprzedniego rozkładu.
Możesz na przykład ustawić większe odchylenie standardowe dla poprzedniej wartości,
w zależności od Twojego sceptycyzmu.
Rozważ użycie argumentu roi_calibration_period
w:
ModelSpec
Więcej informacji:
Ustaw okres kalibracji ROI.
W przypadku wcześniejszego ustawienia rozkład LogNormal
jest powszechny
tylko jedną z nich. Ten przykładowy kod można wykorzystać do przekształcenia
błąd średni i standardowy do LogNormal
wcześniejszych
rozkład:
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]
Jeśli jednak wyniki poprzednich eksperymentów są bliskie zera, należy
zastanów się, czy Twoje wcześniejsze przekonania są wiernie odzwierciedlane przez
rozkład nieujemny, np. rozkład LogNormal
. Śr
zdecydowanie zalecamy przedstawienie wcześniejszego rozkładu na wykresie, aby potwierdzić jego dopasowanie.
dotychczasowych intuicji przed kontynuowaniem analizy. Poniżej
przykładowy kod pokazuje, jak zmienić parametry parametru LogNormal
parametry, zdefiniować rozkład i na ich podstawie narysować próbkę.
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()
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-12-22 UTC.
[null,null,["Ostatnia aktualizacja: 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()"]]