![]() |
Berisi distribusi sebelumnya untuk setiap parameter model.
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 adalah class utilitas untuk Meridian. Bentuk argumen yang diperlukan
untuk PriorDistribution
bergantung pada opsi pemodelan dan bentuk
data yang diteruskan ke Meridian. Misalnya, ec_m
adalah parameter yang mewakili
kejenuhan setengah untuk setiap saluran media. Argumen ec_m
harus memiliki
batch_shape=[]
atau batch_shape
yang sama dengan jumlah saluran
media. Dalam kasus yang pertama, setiap saluran media mendapatkan prioritas yang sama.
Error akan muncul setelah konstruksi Meridian jika distribusi sebelumnya memiliki bentuk yang tidak dapat disiarkan ke bentuk yang ditetapkan oleh spesifikasi model.
Bentuk batch parameter adalah sebagai berikut:
Parameter | Bentuk batch |
---|---|
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
jika unique_sigma_for_each_geo
, jika tidak, ini adalah 1
Atribut | |
---|---|
knot_values
|
Distribusi prior pada knot untuk efek waktu. Distribusi
default adalah Normal(0.0, 5.0) .
|
tau_g_excl_baseline
|
Distribusi sebelumnya pada efek geografis, yang mewakili
KPI rata-rata setiap geo relatif terhadap geo dasar pengukuran. Parameter ini
dikirim ke vektor dengan panjang n_geos - 1 , yang mempertahankan urutan geografis dan
mengecualikan baseline_geo . Setelah sampling, Meridian.inference_data
menyertakan versi parameter ini yang dimodifikasi yang disebut tau_g , yang memiliki
panjang n_geos dan berisi nol di posisi yang sesuai dengan
baseline_geo . Meridian mengabaikan distribusi ini jika n_geos = 1 .
Distribusi default-nya adalah Normal(0.0, 5.0) .
|
beta_m
|
Distribusi sebelumnya pada parameter untuk distribusi hierarkis
dampak media tingkat geografis untuk saluran media tayangan (beta_gm ). Jika
media_effects_dist ditetapkan ke 'normal' , nilai ini adalah nilai tengah hierarkis.
Jika media_effects_dist ditetapkan ke 'log_normal' , parameter ini adalah parameter hierarkis
untuk rata-rata distribusi Normal
yang mendasari dan ditransformasi log. Meridian mengabaikan distribusi ini jika
paid_media_prior_type adalah 'roi' atau 'mroi' , dan menggunakan roi_m
sebelumnya. Distribusi default-nya adalah HalfNormal(5.0) .
|
beta_rf
|
Distribusi sebelumnya pada parameter untuk distribusi hierarkis
efek media tingkat geografis untuk saluran media jangkauan dan frekuensi
(beta_grf ). Jika media_effects_dist ditetapkan ke 'normal' , nilai ini adalah
rata-rata hierarkis. Jika media_effects_dist ditetapkan ke 'log_normal' , parameter ini
adalah parameter hierarki untuk rata-rata distribusi Normal yang mendasarinya,
yang ditransformasi log. Meridian mengabaikan distribusi ini
jika paid_media_prior_type adalah 'roi' atau 'mroi' , dan menggunakan roi_m
sebelumnya. Distribusi default-nya adalah HalfNormal(5.0) .
|
beta_om
|
Distribusi sebelumnya pada parameter untuk distribusi hierarkis
efek media tingkat geografis untuk saluran media organik (beta_gom ). Jika
media_effects_dist ditetapkan ke 'normal' , nilai ini adalah nilai tengah hierarkis.
Jika media_effects_dist ditetapkan ke 'log_normal' , parameter ini adalah parameter hierarkis
untuk rata-rata distribusi Normal
yang mendasari dan ditransformasi log. Meridian mengabaikan distribusi ini jika use_roi_prior adalah
True dan menggunakan roi_om sebelumnya. Distribusi default-nya adalah
HalfNormal(5.0) .
|
beta_orf
|
Distribusi sebelumnya pada parameter untuk distribusi hierarkis
efek media tingkat geografis untuk saluran media frekuensi dan jangkauan
organik (beta_gorf ). Jika media_effects_dist ditetapkan ke
'normal' , nilai ini adalah nilai tengah hierarkis. Jika media_effects_dist ditetapkan
ke 'log_normal' , parameter ini adalah parameter hierarkis untuk rata-rata
distribusi Normal yang mendasari dan ditransformasi log. Meridian mengabaikan
distribusi ini jika use_roi_prior adalah True dan menggunakan roi_orf sebelumnya. Distribusi default-nya adalah HalfNormal(5.0) .
|
eta_m
|
Distribusi sebelumnya pada parameter untuk distribusi hierarkis
efek media tingkat geografis untuk saluran media tayangan (beta_gm ). Jika
media_effects_dist ditetapkan ke 'normal' , ini adalah deviasi standar
hierarkis. Jika media_effects_dist ditetapkan ke 'log_normal' , parameter ini adalah
parameter hierarkis untuk simpangan baku distribusi Normal yang mendasari, yang ditransformasi log. Distribusi default-nya adalah
HalfNormal(1.0) .
|
eta_rf
|
Distribusi sebelumnya pada parameter untuk distribusi hierarkis
dampak media tingkat geografis untuk saluran media RF (beta_grf ). Jika
media_effects_dist disetel ke 'normal' , ini adalah deviasi standar
hierarkis. Jika media_effects_dist ditetapkan ke 'log_normal' , parameter ini adalah
parameter hierarkis untuk simpangan baku distribusi Normal yang mendasari, yang ditransformasi log. Distribusi default-nya adalah
HalfNormal(1.0) .
|
eta_om
|
Distribusi sebelumnya pada parameter untuk distribusi hierarkis
efek media tingkat geografis untuk saluran media organik (beta_gom ). Jika
media_effects_dist disetel ke 'normal' , ini adalah deviasi standar
hierarkis. Jika media_effects_dist ditetapkan ke 'log_normal' , parameter ini adalah
parameter hierarkis untuk simpangan baku distribusi Normal yang mendasari, yang ditransformasi log. Distribusi default-nya adalah
HalfNormal(1.0) .
|
eta_orf
|
Distribusi sebelumnya pada parameter untuk distribusi hierarkis
efek media tingkat geografis untuk saluran media RF organik (beta_gorf ).
Jika media_effects_dist ditetapkan ke 'normal' , ini adalah deviasi standar
hierarkis. Jika media_effects_dist ditetapkan ke 'log_normal' , parameter tersebut
adalah parameter hierarkis untuk simpangan baku
distribusi Normal yang mendasari dan ditransformasi log. Distribusi default
adalah HalfNormal(1.0) .
|
gamma_c
|
Distribusi prior pada nilai rata-rata hierarkis gamma_gc yang merupakan koefisien pada kontrol c untuk geo g . Hierarki ditentukan di atas geografis. Distribusi default-nya adalah Normal(0.0, 5.0) .
|
gamma_n
|
Distribusi sebelumnya pada nilai rata-rata hierarkis gamma_gn yang merupakan
koefisien pada saluran non-media n untuk geo g . Hierarki ditentukan
di atas geo. Distribusi default-nya adalah Normal(0.0, 5.0) .
|
xi_c
|
Distribusi sebelumnya pada standar deviasi hierarkis
gamma_gc yang merupakan koefisien pada kontrol c untuk geo g . Hierarki ditentukan berdasarkan geo. Distribusi default-nya adalah HalfNormal(5.0) .
|
xi_n
|
Distribusi sebelumnya pada standar deviasi hierarkis
gamma_gn yang merupakan koefisien pada saluran non-media n untuk geo g .
Hierarki ditentukan berdasarkan geo. Distribusi default-nya adalah HalfNormal(5.0) .
|
alpha_m
|
Distribusi sebelumnya pada parameter Adstock geometric decay untuk
input media. Distribusi default-nya adalah Uniform(0.0, 1.0) .
|
alpha_rf
|
Distribusi sebelumnya pada parameter Adstock geometric decay untuk
input RF. Distribusi default-nya adalah Uniform(0.0, 1.0) .
|
alpha_om
|
Distribusi sebelumnya pada parameter Adstock geometric decay untuk
input media organik. Distribusi default-nya adalah Uniform(0.0, 1.0) .
|
alpha_orf
|
Distribusi sebelumnya pada parameter Adstock geometric decay untuk
input RF organik. Distribusi default-nya adalah Uniform(0.0, 1.0) .
|
ec_m
|
Distribusi prior pada parameter Hill half-saturation untuk input
media. Distribusi default-nya adalah TruncatedNormal(0.8, 0.8, 0.1, 10) .
|
ec_rf
|
Distribusi prior pada parameter Hill half-saturation untuk input
RF. Distribusi default-nya adalah TransformedDistribution(LogNormal(0.7,
0.4), Shift(0.1)) .
|
ec_om
|
Distribusi sebelumnya pada parameter Hill half-saturation untuk
input media organik. Distribusi default-nya adalah TruncatedNormal(0.8, 0.8,
0.1, 10) .
|
ec_orf
|
Distribusi sebelumnya pada parameter Hill half-saturation untuk
input RF organik. Distribusi default-nya adalah TransformedDistribution(
LogNormal(0.7, 0.4), Shift(0.1)) .
|
slope_m
|
Distribusi prior pada parameter Hill slope untuk input media.
Distribusi default-nya adalah Deterministic(1.0) .
|
slope_rf
|
Distribusi sebelumnya pada parameter Hill slope untuk input RF.
Distribusi default-nya adalah LogNormal(0.7, 0.4) .
|
slope_om
|
Distribusi prior pada parameter Hill slope untuk input media
organik. Distribusi default-nya adalah Deterministic(1.0) .
|
slope_orf
|
Distribusi sebelumnya pada parameter Hill slope untuk input RF
organik. Distribusi default-nya adalah LogNormal(0.7, 0.4) .
|
sigma
|
Distribusi prior pada simpangan baku derau. Distribusi
default adalah HalfNormal(5.0) .
|
roi_m
|
Distribusi sebelumnya pada ROI atau mROI (bergantung pada nilai
paid_media_prior_type ) dari setiap saluran media. Meridian mengabaikan
distribusi ini jika paid_media_prior_type adalah 'coefficient' dan menggunakan
beta_m sebagai gantinya. Jika paid_media_prior_type adalah 'roi' atau 'mroi' ,
beta_m akan dihitung sebagai fungsi deterministik dari roi_m , alpha_m ,
ec_m , slope_m , dan pembelanjaan yang terkait dengan setiap saluran media.
Distribusi default adalah LogNormal(0.2, 0.9) jika paid_media_prior_type
== "roi" dan LogNormal(0.0, 0.5) jika paid_media_prior_type ==
"mroi" . Jika kpi_type adalah 'non_revenue' dan revenue_per_kpi tidak
disediakan, ROI akan ditafsirkan sebagai unit KPI inkremental per unit moneter
yang dibelanjakan. Dalam hal ini: 1) jika paid_media_prior_type='roi' , nilai default untuk roi_m dan roi_rf akan diabaikan dan ROI umum sebelumnya akan ditetapkan ke semua saluran untuk mencapai rata-rata target dan deviasi standar pada total kontribusi media, dan 2) paid_media_prior_type='mroi' tidak didukung.
|
roi_rf
|
Distribusi sebelumnya pada ROI atau mROI (bergantung pada nilai
paid_media_prior_type ) dari setiap saluran Jangkauan & Frekuensi. Meridian
akan mengabaikan distribusi ini jika paid_media_prior_type adalah 'coefficient'
dan menggunakan beta_rf sebagai gantinya. Jika paid_media_prior_type adalah 'roi' atau
'mroi' , beta_rf dihitung sebagai fungsi deterministik dari
roi_rf , alpha_rf , ec_rf , slope_rf , dan pembelanjaan yang terkait dengan
setiap saluran media. Distribusi default adalah LogNormal(0.2, 0.9) saat
paid_media_prior_type == "roi" dan LogNormal(0.0, 0.5) saat
paid_media_prior_type == "mroi" . Jika kpi_type adalah 'non_revenue' dan
revenue_per_kpi tidak diberikan, ROI akan ditafsirkan sebagai unit KPI tambahan
per unit moneter yang dibelanjakan. Dalam hal
ini: 1) jika paid_media_prior_type='roi' , nilai default untuk roi_m
dan roi_rf akan diabaikan dan ROI umum sebelumnya akan ditetapkan ke
semua saluran untuk mencapai rata-rata target dan deviasi standar pada
total kontribusi media, dan 2) paid_media_prior_type='mroi' tidak
didukung.
|
Metode
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
Menampilkan PriorDistribution
baru dengan atribut distribusi siaran.
Args | |
---|---|
n_geos
|
Jumlah geo. |
n_media_channels
|
Jumlah saluran media yang digunakan. |
n_rf_channels
|
Jumlah saluran jangkauan dan frekuensi yang digunakan. |
n_organic_media_channels
|
Jumlah saluran media organik yang digunakan. |
n_organic_rf_channels
|
Jumlah saluran jangkauan dan frekuensi organik yang digunakan. |
n_controls
|
Jumlah kontrol yang digunakan. |
n_non_media_channels
|
Jumlah saluran non-media yang digunakan. |
sigma_shape
|
Angka yang menjelaskan bentuk parameter sigma. Nilainya
adalah 1 (jika sigma_for_each_geo=False ) atau n_geos (jika
sigma_for_each_geo=True ). Untuk informasi selengkapnya, lihat ModelSpec .
|
n_knots
|
Jumlah knot yang digunakan. |
is_national
|
Indikator boolean apakah distribusi sebelumnya akan disesuaikan untuk model nasional. |
paid_media_prior_type
|
String yang menentukan jenis sebelumnya untuk koefisien media. |
set_roi_prior
|
Indikator boolean apakah ROI sebelumnya harus ditetapkan. |
kpi
|
Jumlah seluruh KPI di seluruh wilayah geografis dan waktu. Wajib jika
set_roi_prior=True .
|
total_spend
|
Pembelanjaan per saluran media yang dijumlahkan di seluruh wilayah geografis dan waktu. Wajib diisi
jika set_roi_prior=True .
|
Hasil | |
---|---|
Siaran PriorDistribution baru dari distribusi sebelumnya ini,
sesuai dengan dimensi data yang diberikan.
|
Memunculkan | |
---|---|
ValueError
|
Jika prioritas kustom tidak ditetapkan untuk semua saluran. |
has_deterministic_param
has_deterministic_param(
param: tfp.distributions.Distribution
) -> bool
__eq__
__eq__(
other
)
Menampilkan self==value.