Quelle auf GitHub anzeigen
|
Enthält Prior-Verteilungen für die einzelnen Modellparameter.
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)),
mroi_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.0,\n 0.5, name=constants.MROI_M)),
mroi_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.0,\n 0.5, name=constants.MROI_RF))
)
„PriorDistribution“ ist eine Dienstprogrammklasse für Meridian. Die erforderlichen Formen der Argumente für PriorDistribution hängen von den Modellierungsoptionen und Datenformen ab, die an Meridian übergeben werden. ec_m ist beispielsweise ein Parameter, der die Halbsättigung für jeden Media-Channel darstellt. Das Argument ec_m muss entweder batch_shape=[] oder batch_shape sein und der Anzahl der Media-Channels entsprechen. Im ersten Fall erhält jeder Media-Channel denselben Prior.
Ein Fehler wird beim Erstellen des Meridian-Modells ausgelöst, wenn eine Prior-Verteilung eine Form hat, die nicht auf die Form, die durch die Modellspezifikation festgelegt ist, übertragen werden kann.
Batchformen für Parameter:
| Parameter | Batchform |
|---|---|
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 |
mroi_m |
n_media_channels |
mroi_rf |
n_rf_channels |
(σ) n_geos, wenn unique_sigma_for_each_geo, andernfalls 1
Attribute | |
|---|---|
knot_values
|
Prior-Verteilung für Knoten für Zeiteffekte. Die Standardverteilung ist Normal(0.0, 5.0).
|
tau_g_excl_baseline
|
Die Prior-Verteilung der geografischen Effekte, die den durchschnittlichen KPI jeder geografischen Einheit im Vergleich zur geografischen Baseline-Einheit darstellt. Dieser Parameter wird an einen Vektor mit der Länge n_geos - 1 gesendet. Dabei wird die geografische Reihenfolge beibehalten und die baseline_geo wird ausgeschlossen. Nach der Stichprobenerhebung enthält Meridian.inference_data eine geänderte Version dieses Parameters namens tau_g. Diese hat die Länge n_geos und enthält an der Position, die baseline_geo entspricht, eine Null. Meridian ignoriert diese Verteilung, wenn n_geos = 1.
Die Standardverteilung ist Normal(0.0, 5.0).
|
beta_m
|
Die Prior-Verteilung für einen Parameter für die hierarchische Verteilung von Media-Effekten auf geografischer Ebene für Media-Channels mit Impressionsdaten (beta_gm). Wenn
media_effects_dist auf 'normal' festgelegt ist, entspricht dies dem hierarchischen Mittelwert.
Wenn media_effects_dist auf 'log_normal' festgelegt ist, ist es der hierarchische Parameter für den Mittelwert der zugrunde liegenden, logarithmisch transformierten Normal-Verteilung. Meridian ignoriert diese Verteilung, wenn paid_media_prior_type auf 'roi' oder 'mroi' gesetzt ist, und verwendet stattdessen den roi_m- oder mroi_m-Prior. Die Standardverteilung ist HalfNormal(5.0).
|
beta_rf
|
Die Prior-Verteilung für einen Parameter für die hierarchische Verteilung von Media-Effekten auf geografischer Ebene für Media-Channels für Reichweite und Häufigkeit (beta_grf). Wenn media_effects_dist auf 'normal' festgelegt ist, entspricht dies dem hierarchischen Mittelwert. Wenn media_effects_dist auf 'log_normal' festgelegt ist, ist es der hierarchische Parameter für den Mittelwert der zugrunde liegenden, logarithmisch transformierten Normal-Verteilung. Meridian ignoriert diese Verteilung, wenn paid_media_prior_type auf 'roi' oder 'mroi' gesetzt ist, und verwendet stattdessen den roi_m- oder mroi_rf-Prior. Die Standardverteilung ist HalfNormal(5.0).
|
beta_om
|
Die Prior-Verteilung für einen Parameter für die hierarchische Verteilung von Media-Effekten auf geografischer Ebene für organische Media-Channels (beta_gom). Wenn media_effects_dist auf 'normal' festgelegt ist, entspricht das dem hierarchischen Mittelwert.
Wenn media_effects_dist auf 'log_normal' festgelegt ist, ist es der hierarchische Parameter für den Mittelwert der zugrunde liegenden, logarithmisch transformierten Normal-Verteilung. Die Standardverteilung ist HalfNormal(5.0).
|
beta_orf
|
Die Prior-Verteilung für einen Parameter für die hierarchische Verteilung der Media-Effekte auf geografischer Ebene für organische Media-Channels für Reichweite und Häufigkeit (beta_gorf). Wenn media_effects_dist auf 'normal' festgelegt ist, ist es der hierarchische Mittelwert. Wenn media_effects_dist auf 'log_normal' festgelegt ist, ist es der hierarchische Parameter für den Mittelwert der zugrunde liegenden, logarithmisch transformierten Normal-Verteilung. Die Standardverteilung ist HalfNormal(5.0).
|
eta_m
|
Die Prior-Verteilung für einen Parameter für die hierarchische Verteilung von Media-Effekten auf geografischer Ebene für Media-Channels mit Impressionen (beta_gm). Wenn media_effects_dist auf 'normal' festgelegt ist, entspricht dies der hierarchischen Standardabweichung. Wenn media_effects_dist auf 'log_normal' gesetzt ist, ist dies der hierarchische Parameter für die Standardabweichung der zugrunde liegenden, logarithmisch transformierten Normal-Verteilung. Die Standardverteilung ist
HalfNormal(1.0).
|
eta_rf
|
Die Prior-Verteilung für einen Parameter für die hierarchische Verteilung der Media-Effekte auf geografischer Ebene für Media-Channels für Reichweite und Häufigkeit (beta_grf). Wenn media_effects_dist auf 'normal' festgelegt ist, handelt es sich um die hierarchische Standardabweichung. Wenn media_effects_dist auf 'log_normal' gesetzt ist, ist dies der hierarchische Parameter für die Standardabweichung der zugrunde liegenden, logarithmisch transformierten Normal-Verteilung. Die Standardverteilung ist HalfNormal(1.0).
|
eta_om
|
Die Prior-Verteilung für einen Parameter für die hierarchische Verteilung der Media-Auswirkungen auf geografischer Ebene für Media-Channels für Reichweite und Häufigkeit (beta_gom). Wenn media_effects_dist auf 'normal' festgelegt ist, ist es die hierarchische Standardabweichung. Wenn media_effects_dist auf 'log_normal' gesetzt ist, ist das der hierarchische Parameter für die Standardabweichung der zugrunde liegenden, logarithmisch transformierten Normal-Verteilung. Die Standardverteilung ist HalfNormal(1.0).
|
eta_orf
|
Die Prior-Verteilung für einen Parameter für die hierarchische Verteilung der Media-Auswirkungen auf geografischer Ebene für Media-Channels für organische Reichweite und Häufigkeit (beta_gorf). Wenn media_effects_dist auf 'normal' festgelegt ist, ist das die hierarchische Standardabweichung. Wenn media_effects_dist auf 'log_normal' gesetzt ist, ist das der hierarchische Parameter für die Standardabweichung der zugrunde liegenden, logarithmisch transformierten Normal-Verteilung. Die Standardverteilung ist HalfNormal(1.0).
|
gamma_c
|
Die Prior-Verteilung für den hierarchischen Mittelwert von gamma_gc, also der Koeffizient für die Kontrollvariable c für die geografische Einheit g. Die Hierarchie wird über geografische Einheiten definiert. Die Standardverteilung ist Normal(0.0, 5.0).
|
gamma_n
|
Die Prior-Verteilung für den hierarchischen Mittelwert von gamma_gn, also der Koeffizient für den nicht mediabezogenen Channel n für die geografische Einheit g. Die Hierarchie wird über geografische Einheiten definiert. Die Standardverteilung ist Normal(0.0, 5.0).
|
xi_c
|
Die Prior-Verteilung für die hierarchische Standardabweichung von
gamma_gc, dem Koeffizienten für die Kontrollvariable c für die geografische Einheit g. Die Hierarchie wird über geografische Einheiten definiert. Die Standardverteilung ist HalfNormal(5.0).
|
xi_n
|
Die Prior-Verteilung für die hierarchische Standardabweichung von gamma_gn, dem Koeffizienten für den nicht mediabezogenen Channel n für die geografische Einheit g.
Die Hierarchie wird über geografische Einheiten definiert. Die Standardverteilung ist HalfNormal(5.0).
|
alpha_m
|
Prior-Verteilung für den Adstock-Parameter geometric decay für die Media-Eingabe. Die Standardverteilung ist Uniform(0.0, 1.0).
|
alpha_rf
|
Die Prior-Verteilung für den Adstock-Parameter geometric decay für die Eingabe von Reichweite und Häufigkeit. Die Standardverteilung ist Uniform(0.0, 1.0).
|
alpha_om
|
Prior-Verteilung für den Adstock-Parameter geometric decay für die organische Media-Eingabe. Die Standardverteilung ist Uniform(0.0, 1.0).
|
alpha_orf
|
Die Prior-Verteilung für den Adstock-Parameter geometric decay für die Eingabe der organischen Reichweite und Häufigkeit. Die Standardverteilung ist Uniform(0.0, 1.0).
|
ec_m
|
Die Prior-Verteilung für den Hill-Parameter half-saturation für die Media-Eingabe. Die Standardverteilung ist TruncatedNormal(0.8, 0.8, 0.1, 10).
|
ec_rf
|
Die Prior-Verteilung für den Hill-Parameter half-saturation für die Eingabe von Reichweite und Häufigkeit. Die Standardverteilung ist TransformedDistribution(LogNormal(0.7,
0.4), Shift(0.1)).
|
ec_om
|
Die Prior-Verteilung für den Hill-Parameter half-saturation für die organische Media-Eingabe. Die Standardverteilung ist TruncatedNormal(0.8, 0.8,
0.1, 10).
|
ec_orf
|
Die Prior-Verteilung für den Hill-Parameter half-saturation für die Eingabe der organischen Reichweite und Häufigkeit. Die Standardverteilung ist TransformedDistribution(
LogNormal(0.7, 0.4), Shift(0.1)).
|
slope_m
|
Die Prior-Verteilung für den Hill-Parameter slope für die Media-Eingabe.
Die Standardverteilung ist Deterministic(1.0).
|
slope_rf
|
Die Prior-Verteilung für den Hill-Parameter slope für die Eingabe von Reichweite und Häufigkeit.
Die Standardverteilung ist LogNormal(0.7, 0.4).
|
slope_om
|
Die Prior-Verteilung für den Hill-Parameter slope für die organische Media-Eingabe. Die Standardverteilung ist Deterministic(1.0).
|
slope_orf
|
Die Prior-Verteilung für den Hill-Parameter slope für die Eingabe der organischen Reichweite und Häufigkeit. Die Standardverteilung ist LogNormal(0.7, 0.4).
|
sigma
|
Die Prior-Verteilung der Standardabweichung des Rauschens. Die Standardverteilung ist HalfNormal(5.0).
|
roi_m
|
Die Prior-Verteilung für den ROI der einzelnen Media-Channels. Dieser Parameter wird nur verwendet, wenn paid_media_prior_type = 'roi' ist, sodass beta_m als deterministische Funktion von roi_rf, alpha_rf, ec_rf, slope_rf und den Ausgaben für die einzelnen Media-Channels berechnet wird. Die Standardverteilung ist LogNormal(0.2, 0.9). Wenn kpi_type = 'non_revenue' und revenue_per_kpi nicht angegeben ist, wird der ROI als zusätzliche KPI-Einheiten pro ausgegebener Währungseinheit interpretiert. In diesem Fall wird der Standardwert für roi_m und roi_rf ignoriert und allen Channels ein gemeinsamer ROI-Prior zugewiesen, um einen Zielmittelwert und eine Zielstandardabweichung für den Gesamtbeitrag von Media zu erreichen.
|
roi_rf
|
Die Prior-Verteilung für den ROI der einzelnen Channels für Reichweite und Häufigkeit.
Dieser Parameter wird nur verwendet, wenn paid_media_prior_type = 'roi' ist, sodass beta_rf als deterministische Funktion von roi_rf, alpha_rf, ec_rf, slope_rf und den Ausgaben für die einzelnen Channels für Reichweite und Häufigkeit berechnet wird. Die Standardverteilung ist LogNormal(0.2, 0.9). Wenn kpi_type = 'non_revenue' und revenue_per_kpi nicht angegeben ist, wird der ROI als zusätzliche KPI-Einheiten pro ausgegebener Währungseinheit interpretiert. In diesem Fall wird der Standardwert für roi_m und roi_rf ignoriert und allen Channels ein gemeinsamer ROI-Prior zugewiesen, um einen Zielmittelwert und eine Zielstandardabweichung für den Gesamtbeitrag von Media zu erreichen.
|
mroi_m
|
Die Prior-Verteilung für den Grenz-ROI der einzelnen Media-Channels. Dieser Parameter wird nur verwendet, wenn paid_media_prior_type = 'mroi' ist, sodass beta_m als deterministische Funktion von mroi_m, alpha_m, ec_m, slope_m und den Ausgaben für die einzelnen Media-Channels berechnet wird.
Die Standardverteilung ist LogNormal(0.0, 0.5). Wenn kpi_type = 'non_revenue' und revenue_per_kpi nicht angegeben ist, wird der Grenz-ROI als zusätzliche Grenz-KPI-Einheiten pro ausgegebener Währungseinheit interpretiert. In diesem Fall wird keine Standardverteilung bereitgestellt, sodass der Nutzer sie angeben muss.
|
mroi_rf
|
Die Prior-Verteilung für den Grenz-ROI der einzelnen Channels für Reichweite und Häufigkeit.
Dieser Parameter wird nur verwendet, wenn paid_media_prior_type = 'mroi' ist, sodass beta_rf als deterministische Funktion von mroi_rf, alpha_rf, ec_rf, slope_rf und den Ausgaben für die einzelnen Media-Channels berechnet wird. Die Standardverteilung ist LogNormal(0.0, 0.5). Wenn kpi_type = 'non_revenue' und revenue_per_kpi nicht angegeben ist, wird der Grenz-ROI als zusätzliche Grenz-KPI-Einheiten pro ausgegebener Währungseinheit interpretiert. In diesem Fall wird keine Standardverteilung bereitgestellt, sodass der Nutzer sie angeben muss.
|
Methoden
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,
set_total_media_contribution_prior: bool,
kpi: float,
total_spend: np.ndarray
) -> PriorDistribution
Gibt eine neue PriorDistribution mit übertragenen Verteilungsattributen zurück.
| Argumente | |
|---|---|
n_geos
|
Anzahl der geografischen Einheiten. |
n_media_channels
|
Anzahl der verwendeten Media-Channels. |
n_rf_channels
|
Anzahl der verwendeten Channels für Reichweite und Häufigkeit. |
n_organic_media_channels
|
Anzahl der verwendeten organischen Media-Channels. |
n_organic_rf_channels
|
Anzahl der verwendeten Channels für organische Reichweite und Häufigkeit. |
n_controls
|
Anzahl der verwendeten Kontrollvariablen. |
n_non_media_channels
|
Anzahl der verwendeten nicht mediabezogenen Channels. |
sigma_shape
|
Eine Zahl, die die Form des Sigma-Parameters beschreibt. Das ist entweder 1 (wenn sigma_for_each_geo=False) oder n_geos (wenn
sigma_for_each_geo=True). Weitere Informationen finden Sie in der ModelSpec.
|
n_knots
|
Anzahl der verwendeten Knoten. |
is_national
|
Ein boolescher Wert, der angibt, ob die Prior-Verteilung für ein länderspezifisches Modell angepasst wird. |
set_total_media_contribution_prior
|
Ein boolescher Wert, der angibt, ob die ROI-Priors festgelegt werden sollen, um einen Prior für den Gesamtbeitrag von Media mit Zielmittelwert und Zielvarianz zu erreichen. |
kpi
|
Summe des gesamten KPI über alle geografischen Regionen und Zeiträume hinweg. Erforderlich, wenn set_total_media_contribution_prior=True.
|
total_spend
|
Ausgaben pro Media-Channel, summiert über alle geografischen Regionen und Zeiträume. Erforderlich, wenn set_total_media_contribution_prior=True.
|
| Ausgabe | |
|---|---|
Eine neue PriorDistribution-Ausgabe aus dieser Prior-Verteilung gemäß der angegebenen Datendimensionalität.
|
| Löst aus | |
|---|---|
ValueError
|
Wenn keine benutzerdefinierten Priors für alle Channels festgelegt sind. |
has_deterministic_param
has_deterministic_param(
param: tfp.distributions.Distribution
) -> bool
__eq__
__eq__(
other
)
Gibt zurück, ob „self==value“.
Quelle auf GitHub anzeigen