![]() |
מכיל הפצות קודמות לכל פרמטר של מודל.
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 הוא סוג שימושי של Meridian. הצורות הנדרשות של הארגומנטים ל-PriorDistribution
תלויות באפשרויות הבנייה ובצורות הנתונים שהועברו ל-Meridian. לדוגמה, ec_m
הוא פרמטר שמייצג את רמת הרוויה החציונית לכל ערוץ מדיה. הארגומנט ec_m
חייב לכלול את הערך batch_shape=[]
או batch_shape
שווה למספר ערוצי המדיה. במקרה הראשון, לכל ערוץ מדיה מוקצה אותו עדיפות.
מתרחשת שגיאה במהלך היצירה של Meridian אם לחלוקה קודמת יש צורה שלא ניתן לשדר לצורה שצוינה במפרט המודל.
אלה הצורות של רצפי הפרמטרים:
פרמטר | צורת האצווה |
---|---|
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
אם unique_sigma_for_each_geo
, אחרת 1
מאפיינים | |
---|---|
knot_values
|
התפלגות פריורית בצמתים של השפעות זמן. חלוקת ברירת המחדל היא Normal(0.0, 5.0) .
|
tau_g_excl_baseline
|
חלוקה קודמת של ההשפעות הגיאוגרפיות, שמייצגת את מדדי ה-KPI הממוצעים של כל אזור גיאוגרפי ביחס לאזור הבקרה. הפרמטר הזה מופץ ווקטור באורך n_geos - 1 , תוך שמירה על הסדר הגיאוגרפי והחרגת baseline_geo . אחרי הדגימה, המאפיין Meridian.inference_data כולל גרסה שונה של הפרמטר הזה שנקראת tau_g , באורך n_geos , שמכילה אפס במיקום התואם ל-baseline_geo . Meridian מתעלמת מההפצה הזו אם n_geos = 1 .
חלוקת ברירת המחדל היא Normal(0.0, 5.0) .
|
beta_m
|
חלוקה קודמת של פרמטר להפצה ההיררכית של השפעות המדיה ברמת המיקום הגיאוגרפי על ערוצי מדיה שמניבים חשיפות (beta_gm ). כשmedia_effects_dist מוגדר כ-'normal' , הוא הממוצע ההיררכי.
כשהערך של media_effects_dist מוגדר כ-'log_normal' , הוא הפרמטר ההיררכי של הממוצע של התפלגות Normal הבסיסית שעברה טרנספורמציה לוגריתמית. Meridian מתעלמת מההפצה הזו אם הערך של paid_media_prior_type הוא 'roi' או 'mroi' , ובמקום זאת משתמשת ב-roi_m הקודם. חלוקת ברירת המחדל היא HalfNormal(5.0) .
|
beta_rf
|
חלוקה קודמת של פרמטר להתפלגות היררכית של השפעות המדיה ברמת המיקום הגיאוגרפי על ערוצי מדיה של פוטנציאל חשיפה ותדירות (beta_grf ). כשהערך של media_effects_dist מוגדר כ-'normal' , הוא הממוצע ההיררכי. כשהערך של media_effects_dist מוגדר כ-'log_normal' , הוא הפרמטר ההיררכי של הממוצע של התפלגות Normal הבסיסית שעברה טרנספורמציה לוגריתמית. Meridian מתעלמת מההפצה הזו אם הערך של paid_media_prior_type הוא 'roi' או 'mroi' , ובמקום זאת משתמשת ב-roi_m הקודם. חלוקת ברירת המחדל היא HalfNormal(5.0) .
|
beta_om
|
חלוקה קודמת של פרמטר להפצה ההיררכית של השפעות המדיה ברמת המיקום הגיאוגרפי בערוצי מדיה אורגניים (beta_gom ). כשmedia_effects_dist מוגדר כ-'normal' , הוא הממוצע ההיררכי.
כשהערך של media_effects_dist מוגדר כ-'log_normal' , הוא הפרמטר ההיררכי של הממוצע של התפלגות Normal הבסיסית שעברה טרנספורמציה לוגריתמית. Meridian מתעלמת מההפצה הזו אם הערך של use_roi_prior הוא True , ובמקום זאת משתמשת ב-prior של roi_om . חלוקת ברירת המחדל היא HalfNormal(5.0) .
|
beta_orf
|
חלוקה קודמת של פרמטר להפצה ההיררכית של השפעות המדיה ברמת המיקום הגיאוגרפי על פוטנציאל החשיפה האורגני ועל תדירות הצפייה בערוצי המדיה (beta_gorf ). כשהערך של media_effects_dist מוגדר כ-'normal' , הוא הממוצע ההיררכי. כשהערך של media_effects_dist מוגדר כ-'log_normal' , הוא הפרמטר ההיררכי של הממוצע של התפלגות Normal הבסיסית שעברה טרנספורמציה לוגריתמית. Meridian מתעלמת מההפצה הזו אם הערך של use_roi_prior הוא True , ובמקום זאת משתמשת ב-roi_orf הקודם. חלוקת ברירת המחדל היא HalfNormal(5.0) .
|
eta_m
|
התפלגות קודמת של פרמטר להתפלגות היררכית של השפעות מדיה ברמת המיקום הגיאוגרפי בערוצי מדיה שמניבים חשיפות (beta_gm ). כשהערך של media_effects_dist מוגדר כ-'normal' , הוא מייצג את סטיית התקן ההיררכית. כשהערך של media_effects_dist מוגדר כ-'log_normal' , הוא הפרמטר ההיררכי של סטיית התקן של ההתפלגות הבסיסית Normal שעברה טרנספורמציה לוגריתמית. חלוקת ברירת המחדל היא HalfNormal(1.0) .
|
eta_rf
|
התפלגות קודמת של פרמטר להתפלגות היררכית של השפעות מדיה ברמת המיקום הגיאוגרפי בערוצי מדיה של RF (beta_grf ). כשהערך של media_effects_dist מוגדר כ-'normal' , הוא מייצג את סטיית התקן ההיררכית. כשהערך של media_effects_dist מוגדר כ-'log_normal' , הוא הפרמטר ההיררכי של סטיית התקן של ההתפלגות הבסיסית Normal שעברה טרנספורמציה לוגריתמית. חלוקת ברירת המחדל היא HalfNormal(1.0) .
|
eta_om
|
התפלגות קודמת של פרמטר להתפלגות היררכית של השפעות המדיה ברמת המיקום הגיאוגרפי בערוצי מדיה אורגניים (beta_gom ). כשהערך של media_effects_dist מוגדר כ-'normal' , מדובר בסטיית התקן ההיררכית. כשהערך של media_effects_dist מוגדר כ-'log_normal' , הוא הפרמטר ההיררכי של סטיית התקן של ההתפלגות הבסיסית Normal שעברה טרנספורמציה לוגריתמית. חלוקת ברירת המחדל היא HalfNormal(1.0) .
|
eta_orf
|
חלוקה קודמת של פרמטר להפצה ההיררכית של השפעות המדיה ברמת המיקום הגיאוגרפי בערוצי מדיה אורגניים של RF (beta_gorf ). כשהערך של media_effects_dist מוגדר כ-'normal' , הוא מייצג את סטיית התקן ההיררכית. כשהערך של media_effects_dist מוגדר כ-'log_normal' , הוא הפרמטר ההיררכי של סטיית התקן של ההתפלגות הבסיסית Normal שעברה טרנספורמציה לוגריתמית. חלוקת ברירת המחדל היא HalfNormal(1.0) .
|
gamma_c
|
התפלגות פריורית על הממוצע ההיררכי של gamma_gc , שהוא המכפיל של אמצעי הבקרה c לאזור הגיאוגרפי g . ההיררכיה מוגדרת לפי אזורים גיאוגרפיים. חלוקת ברירת המחדל היא Normal(0.0, 5.0) .
|
gamma_n
|
התפלגות פריורירית על הממוצע ההיררכי של gamma_gn , שהוא המכפיל בערוץ שאינו מדיה n לאזור הגיאוגרפי g . ההיררכיה מוגדרת לפי מיקומים גיאוגרפיים. חלוקת ברירת המחדל היא Normal(0.0, 5.0) .
|
xi_c
|
התפלגות קודמת של סטיית התקן ההיררכית של gamma_gc , שהיא המכפיל של אמצעי הבקרה c עבור המיקום הגיאוגרפי g . ההיררכיה מוגדרת לפי מיקומים גיאוגרפיים. חלוקת ברירת המחדל היא HalfNormal(5.0) .
|
xi_n
|
חלוקה קודמת של סטיית התקן ההיררכית של gamma_gn , שהיא המכפיל בערוץ שאינו מדיה n לאזור הגיאוגרפי g .
ההיררכיה מוגדרת לפי אזורים גיאוגרפיים. חלוקת ברירת המחדל היא HalfNormal(5.0) .
|
alpha_m
|
חלוקה קודמת של הפרמטר geometric decay Adstock לקלט מדיה. חלוקת ברירת המחדל היא Uniform(0.0, 1.0) .
|
alpha_rf
|
התפלגות קודמת של הפרמטר geometric decay Adstock לקלט RF. חלוקת ברירת המחדל היא Uniform(0.0, 1.0) .
|
alpha_om
|
התפלגות פריורית של הפרמטר geometric decay Adstock לקלט של מדיה אורגנית. חלוקת ברירת המחדל היא Uniform(0.0, 1.0) .
|
alpha_orf
|
חלוקה קודמת של הפרמטר Adstock geometric decay לקלט RF אורגני. חלוקת ברירת המחדל היא Uniform(0.0, 1.0) .
|
ec_m
|
התפלגות פריורית של פרמטר Hill half-saturation להזנת מדיה. חלוקת ברירת המחדל היא TruncatedNormal(0.8, 0.8, 0.1, 10) .
|
ec_rf
|
התפלגות פריורית של פרמטר Hill half-saturation להזנת RF. חלוקת ברירת המחדל היא TransformedDistribution(LogNormal(0.7,
0.4), Shift(0.1)) .
|
ec_om
|
התפלגות פריורית של פרמטר Hill half-saturation לקלט של מדיה אורגנית. חלוקת ברירת המחדל היא TruncatedNormal(0.8, 0.8,
0.1, 10) .
|
ec_orf
|
התפלגות פריורית של פרמטר Hill half-saturation לקלט RF אורגני. חלוקת ברירת המחדל היא TransformedDistribution(
LogNormal(0.7, 0.4), Shift(0.1)) .
|
slope_m
|
התפלגות פריורית של פרמטר Hill slope להזנת מדיה.
חלוקת ברירת המחדל היא Deterministic(1.0) .
|
slope_rf
|
התפלגות פריורית על פרמטר Hill slope לקלט RF.
חלוקת ברירת המחדל היא LogNormal(0.7, 0.4) .
|
slope_om
|
התפלגות פריורית של פרמטר Hill slope להזנת מדיה אורגנית. חלוקת ברירת המחדל היא Deterministic(1.0) .
|
slope_orf
|
התפלגות פריורית של פרמטר Hill slope להזנת RF אורגני. חלוקת ברירת המחדל היא LogNormal(0.7, 0.4) .
|
sigma
|
התפלגות פריורית של סטיית התקן של הרעש. חלוקת ברירת המחדל היא HalfNormal(5.0) .
|
roi_m
|
התפלגות קודמת של החזר ה-ROI או של החזר ה-ROI הממוצע (בהתאם לערך של paid_media_prior_type ) של כל ערוץ מדיה. Meridian מתעלמת מההפצה הזו אם הערך של paid_media_prior_type הוא 'coefficient' , ומשתמשת ב-beta_m במקום זאת. כשהערך של paid_media_prior_type הוא 'roi' או 'mroi' , הערך של beta_m מחושב כפונקציה גורמית של roi_m , alpha_m , ec_m , slope_m וההוצאה המשויכת לכל ערוץ מדיה.
חלוקת ברירת המחדל היא LogNormal(0.2, 0.9) כש-paid_media_prior_type
== "roi" ו-LogNormal(0.0, 0.5) כש-paid_media_prior_type ==
"mroi" . כשהערך של kpi_type הוא 'non_revenue' והערך של revenue_per_kpi לא צוין, ההחזר על ההוצאה מפורש כיחידות של מדדי ה-KPI המצטברים לכל יחידה כספית שהושקעה. במקרה כזה: 1) אם paid_media_prior_type='roi' , הערך שמוגדר כברירת מחדל ל-roi_m ול-roi_rf יתעלם ויוקצה לכל הערוצים ערך ROI מקדים משותף כדי להשיג את הממוצע היעד ואת סטיית התקן היעד של התרומה הכוללת של המדיה, ו-2) לא ניתן להשתמש ב-paid_media_prior_type='mroi' .
|
roi_rf
|
התפלגות קודמת של החזר ה-ROI או החזר ה-ROI הממוצע (בהתאם לערך של paid_media_prior_type ) של כל ערוץ של פוטנציאל החשיפה והתדירות. Meridian מתעלמת מההפצה הזו אם הערך של paid_media_prior_type הוא 'coefficient' , ובמקום זאת משתמשת ב-beta_rf . כשהערך של paid_media_prior_type הוא 'roi' או 'mroi' , הערך של beta_rf מחושב כפונקציה גורמית של roi_rf , alpha_rf , ec_rf , slope_rf וההוצאות שמשויכות לכל ערוץ מדיה. חלוקת ברירת המחדל היא LogNormal(0.2, 0.9) כש-paid_media_prior_type == "roi" ו-LogNormal(0.0, 0.5) כש-paid_media_prior_type == "mroi" . כשהערך של kpi_type הוא 'non_revenue' ולא צוין הערך של revenue_per_kpi , המערכת מפרשת את ההחזר על ההוצאות כמספר יחידות של מדדי ה-KPI המצטברים לכל יחידה כספית שהוציאתם. במקרה כזה: 1) אם paid_media_prior_type='roi' , ערך ברירת המחדל של roi_m ו-roi_rf יתעלם ויוקצה לכל הערוצים ערך ROI מקדים משותף כדי להשיג את הממוצע היעד ואת סטיית התקן היעד של התרומה הכוללת של המדיה, ו-2) לא תהיה תמיכה ב-paid_media_prior_type='mroi' .
|
Methods
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
הפונקציה מחזירה ערך PriorDistribution
חדש עם מאפייני הפצה של שידור.
Args | |
---|---|
n_geos
|
מספר המיקומים הגיאוגרפיים. |
n_media_channels
|
מספר ערוצי המדיה שבהם נעשה שימוש. |
n_rf_channels
|
מספר הערוצים של היקף החשיפה והתדירות שבהם נעשה שימוש. |
n_organic_media_channels
|
מספר ערוצי המדיה האורגניים שבהם נעשה שימוש. |
n_organic_rf_channels
|
מספר הערוצים האורגניים של היקף החשיפה והתדירות שבהם נעשה שימוש. |
n_controls
|
מספר אמצעי הבקרה שבהם נעשה שימוש. |
n_non_media_channels
|
מספר הערוצים שאינם ערוצי מדיה שבהם נעשה שימוש. |
sigma_shape
|
מספר שמתאר את הצורה של פרמטר הסיגמה. הערך הוא 1 (אם sigma_for_each_geo=False ) או n_geos (אם sigma_for_each_geo=True ). מידע נוסף זמין במאמר ModelSpec .
|
n_knots
|
מספר הקשרים שנעשה בהם שימוש. |
is_national
|
אינדיקטור בוליאני שמציין אם התפלגות קודמת תותאם למודל לאומי. |
paid_media_prior_type
|
מחרוזת שמציינת את הסוג הקודם של מקדמי המדיה. |
set_roi_prior
|
אינדיקטור בוליאני שמציין אם צריך להגדיר את ה-ROI מראש. |
kpi
|
הסכום הכולל של מדד ה-KPI לפי מיקומים גיאוגרפיים וזמני פעילות. חובה אם set_roi_prior=True .
|
total_spend
|
סכום ההוצאות לכל ערוץ מדיה, לפי מיקומים גיאוגרפיים ותקופות זמן. חובה אם set_roi_prior=True .
|
החזרות | |
---|---|
שידור חדש של PriorDistribution מההפצה הקודמת הזו, בהתאם למאפייני המימדים של הנתונים.
|
העלאות | |
---|---|
ValueError
|
אם לא מוגדרות תעדוף בהתאמה אישית לכל הערוצים. |
has_deterministic_param
has_deterministic_param(
param: tfp.distributions.Distribution
) -> bool
__eq__
__eq__(
other
)
הפונקציה מחזירה את הערך self==value.