![]() |
Zawiera rozkłady wstępne dla każdego parametru modelu.
meridian.model.prior_distribution.PriorDistribution(
*,
knot_values: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Normal(0.0, \n 5.0, name=constants.KNOT_VALUES)),
tau_g_excl_baseline: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Normal(0.0, \n 5.0, name=constants.TAU_G_EXCL_BASELINE)),
beta_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.BETA_M)),
beta_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.BETA_RF)),
beta_om: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.BETA_OM)),
beta_orf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.BETA_ORF)),
eta_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(1.0,\n name=constants.ETA_M)),
eta_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(1.0,\n name=constants.ETA_RF)),
eta_om: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(1.0,\n name=constants.ETA_OM)),
eta_orf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(1.0,\n name=constants.ETA_ORF)),
gamma_c: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Normal(0.0, \n 5.0, name=constants.GAMMA_C)),
gamma_n: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Normal(0.0, \n 5.0, name=constants.GAMMA_N)),
xi_c: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.XI_C)),
xi_n: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.XI_N)),
alpha_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Uniform(0.0, \n 1.0, name=constants.ALPHA_M)),
alpha_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Uniform(0.0, \n 1.0, name=constants.ALPHA_RF)),
alpha_om: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Uniform(0.0, \n 1.0, name=constants.ALPHA_OM)),
alpha_orf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Uniform(0.0, \n 1.0, name=constants.ALPHA_ORF)),
ec_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.\n TruncatedNormal(0.8, 0.8, 0.1, 10, name=constants.EC_M)),
ec_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.\n TransformedDistribution(tfp.distributions.LogNormal(0.7, 0.4), tfp.\n bijectors.Shift(0.1), name=constants.EC_RF)),
ec_om: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.\n TruncatedNormal(0.8, 0.8, 0.1, 10, name=constants.EC_OM)),
ec_orf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.\n TransformedDistribution(tfp.distributions.LogNormal(0.7, 0.4), tfp.\n bijectors.Shift(0.1), name=constants.EC_ORF)),
slope_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Deterministic(\n 1.0, name=constants.SLOPE_M)),
slope_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.7,\n 0.4, name=constants.SLOPE_RF)),
slope_om: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Deterministic(\n 1.0, name=constants.SLOPE_OM)),
slope_orf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.7,\n 0.4, name=constants.SLOPE_ORF)),
sigma: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.SIGMA)),
roi_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.2,\n 0.9, name=constants.ROI_M)),
roi_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.2,\n 0.9, name=constants.ROI_RF))
)
PriorDistribution to klasa pomocnicza dla Meridian. Wymagane kształty argumentów funkcji PriorDistribution
zależą od opcji modelowania i kształtów danych przekazywanych do Meridian. Na przykład ec_m
to parametr, który reprezentuje połowę nasycenia w przypadku każdego kanału medialnego. Argument ec_m
musi zawierać wartość batch_shape=[]
lub batch_shape
równą liczbie kanałów medialnych. W przypadku pierwszego każdy kanał medialny ma ten sam priorytet.
Podczas tworzenia osi meridianu pojawia się błąd, jeśli jakakolwiek wcześniejsza dystrybucja ma kształt, którego nie można rozszerzyć do kształtu określonego przez specyfikację modelu.
Parametry zbiorcze mają następujące kształty:
Parametr | Kształt wsad |
---|---|
knot_values |
n_knots |
tau_g_excl_baseline |
n_geos - 1 |
beta_m |
n_media_channels |
beta_rf |
n_rf_channels |
beta_om |
n_organic_media_channels |
beta_orf |
n_organic_rf_channels |
eta_m |
n_media_channels |
eta_rf |
n_rf_channels |
eta_om |
n_organic_media_channels |
eta_orf |
n_organic_rf_channels |
gamma_c |
n_controls |
gamma_n |
n_non_media_channels |
xi_c |
n_controls |
xi_n |
n_non_media_channels |
alpha_m |
n_media_channels |
alpha_rf |
n_rf_channels |
alpha_om |
n_organic_media_channels |
alpha_orf |
n_organic_rf_channels |
ec_m |
n_media_channels |
ec_rf |
n_rf_channels |
ec_om |
n_organic_media_channels |
ec_orf |
n_organic_rf_channels |
slope_m |
n_media_channels |
slope_rf |
n_rf_channels |
slope_om |
n_organic_media_channels |
slope_orf |
n_organic_rf_channels |
sigma |
(σ) |
roi_m |
n_media_channels |
roi_rf |
n_rf_channels |
(σ) n_geos
, jeśli unique_sigma_for_each_geo
, w przeciwnym razie 1
Atrybuty | |
---|---|
knot_values
|
Rozkład a priori węzłów dla efektów czasowych. Domyślna dystrybucja to Normal(0.0, 5.0) .
|
tau_g_excl_baseline
|
Poprzednia dystrybucja efektów geograficznych, która przedstawia średnie KPI każdego regionu w porównaniu z regionem docelowym. Ten parametr jest nadawany do wektora o długości n_geos - 1 , zachowując kolejność geograficzną i wykluczając baseline_geo . Po próbkowaniu parametr Meridian.inference_data zawiera zmodyfikowaną wersję tego parametru o nazwie tau_g , która ma długość n_geos i zawiera zero w pozycji odpowiadającej baseline_geo . Meridian ignoruje tę dystrybucję, jeśli n_geos = 1 .
Domyślna dystrybucja to Normal(0.0, 5.0) .
|
beta_m
|
Poprzednia dystrybucja parametru dla dystrybucji hierarchicznej efektów mediów na poziomie geograficznym dla kanałów mediów wyświetleń (beta_gm ). Gdy parametr media_effects_dist ma wartość 'normal' , jest to średnia hierarchiczna.
Gdy parametr media_effects_dist ma wartość 'log_normal' , jest to parametr hierarchiczny średniej wartości podstawowej rozkładu Normal , który został przekształcony do postaci logarytmicznej. Meridian ignoruje tę dystrybucję, jeśli paid_media_prior_type to 'roi' lub 'mroi' , i zamiast niej używa wartości roi_m . Domyślna dystrybucja to HalfNormal(5.0) .
|
beta_rf
|
Rozkład wstępny parametru dla rozkładu hierarchicznego efektów mediów na poziomie geograficznym w przypadku kanałów mediów dotyczących zasięgu i częstotliwości (beta_grf ). Gdy parametr media_effects_dist ma wartość 'normal' , jest to średnia hierarchiczna. Gdy parametr media_effects_dist ma wartość 'log_normal' , jest to parametr hierarchiczny średniej wartości rozkładu Normal , który jest przekształcony logarytmicznie. Meridian ignoruje tę dystrybucję, jeśli paid_media_prior_type to 'roi' lub 'mroi' , i zamiast niej używa priorytetu roi_m . Domyślna dystrybucja to HalfNormal(5.0) .
|
beta_om
|
Poprzednia dystrybucja parametru dla dystrybucji hierarchicznej efektów mediów na poziomie geograficznym w przypadku bezpłatnych kanałów mediów (beta_gom ). Gdy parametr media_effects_dist ma wartość 'normal' , jest to średnia hierarchiczna.
Gdy opcja media_effects_dist ma wartość 'log_normal' , jest to parametr hierarchiczny średniej wartości średniej dystrybucji Normal , która jest przekształcona logarytmicznie. Meridian zignoruje tę dystrybucję, jeśli use_roi_prior jest równe True , i zamiast niej użyje roi_om . Domyślna dystrybucja to HalfNormal(5.0) .
|
beta_orf
|
Rozkład poprzedni na parametr dla hierarchicznej dystrybucji efektów mediów na poziomie geograficznym w przypadku bezpłatnego zasięgu i częstości kanałów mediów (beta_gorf ). Gdy parametr media_effects_dist ma wartość 'normal' , jest to średnia hierarchiczna. Gdy parametr media_effects_dist ma wartość 'log_normal' , jest to parametr hierarchiczny średniej wartości przekształconej logarytmicznie rozkładu Normal . Meridian ignoruje tę dystrybucję, jeśli use_roi_prior = True , i zamiast niej używa dystrybucji roi_orf . Domyślna dystrybucja to HalfNormal(5.0) .
|
eta_m
|
Rozkład poprzedni na parametr dla rozkładu hierarchicznego efektów mediów na poziomie geograficznym dla kanałów mediów wyświetleń (beta_gm ). Gdy parametr media_effects_dist ma wartość 'normal' , jest to odchylenie standardowe na poziomie hierarchicznym. Gdy opcja media_effects_dist ma wartość 'log_normal' , jest to parametr hierarchiczny odchylenia standardowego dla rozkładu Normal , który jest podstawą przekształcenia logarytmicznego. Domyślna dystrybucja to HalfNormal(1.0) .
|
eta_rf
|
Wstępna dystrybucja parametru dla dystrybucji hierarchicznej efektów mediów na poziomie geograficznym dla kanałów mediów RF (beta_grf ). Gdy parametr media_effects_dist ma wartość 'normal' , jest to odchylenie standardowe na poziomie hierarchicznym. Gdy opcja media_effects_dist ma wartość 'log_normal' , jest to parametr hierarchiczny odchylenia standardowego dla rozkładu Normal , który jest podstawą przekształcenia logarytmicznego. Domyślna dystrybucja to HalfNormal(1.0) .
|
eta_om
|
Poprzednia dystrybucja parametru dla dystrybucji hierarchicznej efektów mediów na poziomie geograficznym w przypadku bezpłatnych kanałów mediów (beta_gom ). Gdy parametr media_effects_dist ma wartość 'normal' , jest to odchylenie standardowe na poziomie hierarchicznym. Gdy opcja media_effects_dist ma wartość 'log_normal' , jest to parametr hierarchiczny odchylenia standardowego dla rozkładu Normal , który jest podstawą przekształcenia logarytmicznego. Domyślna dystrybucja to HalfNormal(1.0) .
|
eta_orf
|
Rozkład wstępny parametru dla rozkładu hierarchicznego efektów mediów na poziomie geograficznym w przypadku bezpłatnych kanałów mediów RF (beta_gorf ). Gdy parametr media_effects_dist ma wartość 'normal' , jest to odchylenie standardowe na poziomie hierarchicznym. Gdy parametr media_effects_dist ma wartość 'log_normal' , jest to parametr hierarchiczny odchylenia standardowego rozkładu podstawowego Normal , który został przekształcony do postaci logarytmicznej. Domyślny rozkład to HalfNormal(1.0) .
|
gamma_c
|
Prawdopodobieństwo a priori średniej hierarchicznej gamma_gc , która jest współczynnikiem w kontroli c dla geo g . Hierarchia jest definiowana na podstawie geo. Domyślny rozkład to Normal(0.0, 5.0) .
|
gamma_n
|
Rozkład wstępny na średniej hierarchicznej gamma_gn , która jest współczynnikiem na niemedialny kanał n dla lokalizacji g . Hierarchia jest definiowana na podstawie obszarów geograficznych. Domyślna dystrybucja to Normal(0.0, 5.0) .
|
xi_c
|
Prawdopodobieństwo a priori odchylenia standardowego hierarchicznego gamma_gc , które jest współczynnikiem w kontroli c dla geo g . Hierarchia jest definiowana na podstawie lokalizacji geograficznych. Domyślna dystrybucja to HalfNormal(5.0) .
|
xi_n
|
Rozkład wstępny odchylenia standardowego hierarchicznego gamma_gn , który jest współczynnikiem na niemedialny kanał n dla geografii g .
Hierarchia jest definiowana na podstawie danych geograficznych. Domyślna dystrybucja to HalfNormal(5.0) .
|
alpha_m
|
Poprzedni rozkład parametru geometric decay Adstock dla danych wejściowych dotyczących mediów. Domyślna dystrybucja to Uniform(0.0, 1.0) .
|
alpha_rf
|
Rozkład gęstości prawdopodobieństwa parametru geometric decay „Adstock” dla danych wejściowych RF. Domyślna dystrybucja to Uniform(0.0, 1.0) .
|
alpha_om
|
Poprzednia dystrybucja parametru geometric decay Adstock dla danych wejściowych z bezpłatnych mediów. Domyślna dystrybucja to Uniform(0.0, 1.0) .
|
alpha_orf
|
Poprzednia dystrybucja parametru geometric decay Adstock dla organicznego RF input. Domyślna dystrybucja to Uniform(0.0, 1.0) .
|
ec_m
|
Rozkład a priori parametru half-saturation Hilla dla danych wejściowych media. Domyślna dystrybucja to TruncatedNormal(0.8, 0.8, 0.1, 10) .
|
ec_rf
|
Rozkład a priori parametru half-saturation Hilla dla wejścia RF. Domyślna dystrybucja to TransformedDistribution(LogNormal(0.7,
0.4), Shift(0.1)) .
|
ec_om
|
Rozkład a priori parametru half-saturation Hilla dla danych wejściowych dotyczących mediów bezpłatnych. Domyślna dystrybucja to TruncatedNormal(0.8, 0.8,
0.1, 10) .
|
ec_orf
|
Rozkład a priori parametru Hilla half-saturation dla wejścia RF dla organicznego RF. Domyślna dystrybucja to TransformedDistribution(
LogNormal(0.7, 0.4), Shift(0.1)) .
|
slope_m
|
Rozkład a priori parametru slope Hilla dla danych wejściowych dotyczących mediów.
Domyślna dystrybucja to Deterministic(1.0) .
|
slope_rf
|
Rozkład a priori parametru slope Hilla dla danych wejściowych RF.
Domyślna dystrybucja to LogNormal(0.7, 0.4) .
|
slope_om
|
Rozkład a priori parametru slope Hill dla danych wejściowych dotyczących bezpłatnych wyników wyszukiwania. Domyślna dystrybucja to Deterministic(1.0) .
|
slope_orf
|
Rozkład a priori parametru slope Hilla dla danych wejściowych dotyczących bezpłatnego RF. Domyślna dystrybucja to LogNormal(0.7, 0.4) .
|
sigma
|
Rozkład a priori odchylenia standardowego szumu. Domyślna dystrybucja to HalfNormal(5.0) .
|
roi_m
|
Poprzednia dystrybucja na podstawie ROI lub mROI (w zależności od wartości paid_media_prior_type ) każdego kanału medialnego. Meridian zignoruje tę dystrybucję, jeśli paid_media_prior_type = 'coefficient' , i zamiast niej użyje beta_m . Jeśli paid_media_prior_type to 'roi' lub 'mroi' , to beta_m jest obliczana jako funkcja deterministyczna roi_m , alpha_m , ec_m , slope_m oraz wydatków związanych z każdym kanałem komunikacji.
Domyślna dystrybucja to LogNormal(0.2, 0.9) , gdy paid_media_prior_type
== "roi" , i LogNormal(0.0, 0.5) , gdy paid_media_prior_type ==
"mroi" . Jeśli kpi_type to 'non_revenue' , a wartość revenue_per_kpi nie jest podana, ROI jest interpretowane jako dodatkowe jednostki KPI na jednostkę monetarną wydatków. W tym przypadku: 1) jeśli paid_media_prior_type='roi' , domyślna wartość roi_m i roi_rf zostanie zignorowana, a wspólny ROI prior zostanie przypisany do wszystkich kanałów, aby osiągnąć średnią docelową i odchylenie standardowe całkowitego udziału mediów; 2) wartość paid_media_prior_type='mroi' nie jest obsługiwana.
|
roi_rf
|
Rozkład wcześniejszy na podstawie zwrotu z inwestycji lub mROI (w zależności od wartości paid_media_prior_type ) w przypadku każdego kanału w ramach funkcji Zasięg i częstotliwość. Meridian ignoruje tę dystrybucję, jeśli paid_media_prior_type = 'coefficient' , i zamiast niej używa beta_rf . Jeśli paid_media_prior_type = 'roi' lub 'mroi' , wartość beta_rf jest obliczana jako funkcja deterministyczna funkcji roi_rf , alpha_rf , ec_rf , slope_rf oraz wydatków związanych z każdym kanałem komunikacji. Domyślna dystrybucja to LogNormal(0.2, 0.9) , gdy paid_media_prior_type == "roi" , i LogNormal(0.0, 0.5) , gdy paid_media_prior_type == "mroi" . Jeśli wartość kpi_type to 'non_revenue' , a wartość revenue_per_kpi nie jest podana, ROI jest interpretowany jako dodatkowe jednostki KPI na jednostkę wydatków. W tym przypadku: 1) jeśli paid_media_prior_type='roi' , wartość domyślna dla roi_m i roi_rf zostanie zignorowana, a wspólny zwrot z inwestycji będzie przypisany do wszystkich kanałów, aby osiągnąć średnią docelową i odchylenie standardowe całkowitego udziału mediów; 2) wartość paid_media_prior_type='mroi' nie jest obsługiwana.
|
Metody
broadcast
broadcast(
n_geos: int,
n_media_channels: int,
n_rf_channels: int,
n_organic_media_channels: int,
n_organic_rf_channels: int,
n_controls: int,
n_non_media_channels: int,
sigma_shape: int,
n_knots: int,
is_national: bool,
paid_media_prior_type: str,
set_roi_prior: bool,
kpi: float,
total_spend: np.ndarray
) -> PriorDistribution
Zwraca nowy obiekt PriorDistribution
z atrybutami rozpowszechniania transmisji.
Argumenty | |
---|---|
n_geos
|
Liczba obszarów geograficznych. |
n_media_channels
|
Liczba wykorzystanych kanałów komunikacji. |
n_rf_channels
|
Liczba używanych kanałów zasięgu i częstotliwości. |
n_organic_media_channels
|
Liczba wykorzystanych kanałów bezpłatnych. |
n_organic_rf_channels
|
Liczba kanałów bezpłatnego zasięgu i częstotliwości, które zostały wykorzystane. |
n_controls
|
Liczba użytych elementów sterujących. |
n_non_media_channels
|
Liczba wykorzystanych kanałów niemedialnych. |
sigma_shape
|
Liczba określająca kształt parametru sigma. Może to być 1 (jeśli sigma_for_each_geo=False ) lub n_geos (jeśli sigma_for_each_geo=True ). Więcej informacji znajdziesz w artykule ModelSpec .
|
n_knots
|
Liczba użytych węzłów. |
is_national
|
Wartość logiczna wskazująca, czy wcześniejsza dystrybucja zostanie dostosowana do modelu krajowego. |
paid_media_prior_type
|
Ciąg znaków określający poprzedni typ współczynników mediów. |
set_roi_prior
|
Wskaźnik wartości logicznej określający, czy należy ustawić priorytet ROI. |
kpi
|
Suma wszystkich danych KPI w przypadku wszystkich regionów i okresów. Wymagane, jeśli set_roi_prior=True .
|
total_spend
|
Wydatki na kanał komunikacji zsumowane według lokalizacji i okresu. Wymagany, jeśli set_roi_prior=True .
|
Zwroty | |
---|---|
Nowa transmisja PriorDistribution z tej wcześniejszej dystrybucji, zgodnie z podanym wymiarem danych.
|
Podwyżki | |
---|---|
ValueError
|
Jeśli niestandardowe priorytety nie są ustawione w przypadku wszystkich kanałów. |
has_deterministic_param
has_deterministic_param(
param: tfp.distributions.Distribution
) -> bool
__eq__
__eq__(
other
)
Zwraca wartość self==value.