GitHub 上のソースを見る
|
各モデル パラメータの事前分布が含まれています。
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 は 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 |
mroi_m |
n_media_channels |
mroi_rf |
n_rf_channels |
(σ) unique_sigma_for_each_geo の場合は n_geos、それ以外の場合は 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 に対応する位置にゼロが含まれます。n_geos = 1 の場合、Meridian はこの分布を無視します。デフォルトの分布は Normal(0.0, 5.0) です。 |
beta_m
|
インプレッションのメディア チャネル(beta_gm)の地域レベルのメディア効果の階層分布に対するパラメータの事前分布。media_effects_dist が 'normal' に設定されている場合は階層平均になります。media_effects_dist が 'log_normal' に設定されている場合は、基盤になる対数変換された Normal 分布の平均の階層パラメータになります。paid_media_prior_type が 'roi' または 'mroi' の場合、Meridian はこの分布を無視し、代わりに事前分布 roi_m または mroi_m を使用します。デフォルトの分布は HalfNormal(5.0) です。 |
beta_rf
|
リーチとフリークエンシーのメディア チャネル(beta_grf)の地域レベルのメディア効果の階層分布に対するパラメータの事前分布。media_effects_dist が 'normal' に設定されている場合は階層平均になります。media_effects_dist が 'log_normal' に設定されている場合は、基盤になる対数変換された Normal 分布の平均の階層パラメータになります。paid_media_prior_type が 'roi' または 'mroi' の場合、Meridian はこの分布を無視し、代わりに事前分布 roi_m または mroi_rf を使用します。デフォルトの分布は HalfNormal(5.0) です。 |
beta_om
|
オーガニック メディア チャネル(beta_gom)の地域レベルのメディア効果の階層分布に対するパラメータの事前分布。media_effects_dist が 'normal' に設定されている場合は階層平均になります。media_effects_dist が 'log_normal' に設定されている場合は、基盤になる対数変換された Normal 分布の平均の階層パラメータになります。デフォルトの分布は HalfNormal(5.0) です。 |
beta_orf
|
オーガニック リーチとフリークエンシー データを使用するメディア チャネル(beta_gorf)の地域レベルのメディア効果の階層分布に対するパラメータの事前分布。media_effects_dist が 'normal' に設定されている場合は階層平均になります。media_effects_dist が 'log_normal' に設定されている場合は、基盤になる対数変換された Normal 分布の平均の階層パラメータになります。デフォルトの分布は HalfNormal(5.0) です。 |
eta_m
|
インプレッションのメディア チャネル(beta_gm)の地域レベルのメディア効果の階層分布に対するパラメータの事前分布。media_effects_dist が 'normal' に設定されている場合は階層標準偏差になります。media_effects_dist が 'log_normal' に設定されている場合は、基盤となる対数変換された Normal 分布の標準偏差に対する階層パラメータとなります。デフォルトの分布は HalfNormal(1.0) です。 |
eta_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
|
オーガニックのリーチとフリークエンシーのメディア チャネル(beta_gorf)の地域レベルのメディア効果の階層分布に対するパラメータの事前分布。media_effects_dist が 'normal' に設定されている場合は階層標準偏差になります。media_effects_dist が 'log_normal' に設定されている場合は、基盤となる対数変換された Normal 分布の標準偏差に対する階層パラメータとなります。デフォルトの分布は HalfNormal(1.0) です。 |
gamma_c
|
gamma_gc の階層平均に関する事前分布。これは、地域 g のコントロール c の係数となります。階層は地域を通じて定義されます。デフォルトの分布は Normal(0.0, 5.0) です。 |
gamma_n
|
gamma_gn の階層平均に関する事前分布。これは、地域 g のメディア以外のチャネル n の係数となります。階層は地域を通じて定義されます。デフォルトの分布は Normal(0.0, 5.0) です。 |
xi_c
|
gamma_gc の階層標準偏差の予測分布。これは、地域 g のコントロール c の係数となります。階層は地域を通じて定義されます。デフォルトの分布は HalfNormal(5.0) です。 |
xi_n
|
gamma_gn の階層標準偏差に関する事前分布。これは、地域 g のメディア以外のチャネル n の係数となります。階層は地域を通じて定義されます。デフォルトの分布は HalfNormal(5.0) です。 |
alpha_m
|
メディア入力の Adstock パラメータ geometric decay の事前分布。デフォルトの分布は Uniform(0.0, 1.0) です。 |
alpha_rf
|
リーチとフリークエンシーの入力の Adstock パラメータ geometric decay の事前分布。デフォルトの分布は Uniform(0.0, 1.0) です。 |
alpha_om
|
オーガニック メディア入力の Adstock パラメータ geometric decay に関する事前分布。デフォルトの分布は Uniform(0.0, 1.0) です。 |
alpha_orf
|
オーガニックのリーチとフリークエンシーの入力の Adstock パラメータ geometric decay に関する事前分布。デフォルトの分布は Uniform(0.0, 1.0) です。 |
ec_m
|
メディア入力の Hill パラメータ half-saturation の事前分布。デフォルトの分布は TruncatedNormal(0.8, 0.8, 0.1, 10) です。 |
ec_rf
|
リーチとフリークエンシーの入力の Hill パラメータ half-saturation の事前分布。デフォルトの分布は 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 に関する事前分布。デフォルトの分布は TransformedDistribution(
LogNormal(0.7, 0.4), Shift(0.1)) です。 |
slope_m
|
メディア入力の Hill パラメータ slope の事前分布。デフォルトの分布は Deterministic(1.0) です。 |
slope_rf
|
リーチとフリークエンシーの入力の Hill パラメータ slope の事前分布。デフォルトの分布は LogNormal(0.7, 0.4) です。 |
slope_om
|
オーガニック メディア入力の Hill パラメータ slope に関する事前分布。デフォルトの分布は Deterministic(1.0) です。 |
slope_orf
|
オーガニックのリーチとフリークエンシーの入力の Hill パラメータ slope に関する事前分布。デフォルトの分布は LogNormal(0.7, 0.4) です。 |
sigma
|
ノイズの標準偏差の事前分布。デフォルトの分布は HalfNormal(5.0) です。 |
roi_m
|
各メディア チャネルの ROI の事前分布。このパラメータは、paid_media_prior_type が 'roi' の場合にのみ使用されます。この場合、beta_m は roi_rf、alpha_rf、ec_rf、slope_rf、および各メディア チャネルに関連付けられた費用の決定的関数として計算されます。デフォルトの分布は LogNormal(0.2, 0.9) です。kpi_type が 'non_revenue' で、revenue_per_kpi が指定されていない場合、ROI は費用あたりの増分 KPI 単位として解釈されます。この場合、roi_m と roi_rf のデフォルト値は無視され、メディア総貢献度の目標平均標準偏差を達成するために、すべてのチャネルに共通の ROI 事前分布が割り当てられます。 |
roi_rf
|
各リーチとフリークエンシー チャネルの ROI の事前分布。このパラメータは、paid_media_prior_type が 'roi' の場合にのみ使用されます。この場合、beta_rf は roi_rf、alpha_rf、ec_rf、slope_rf、および各 RF チャネルに関連付けられた費用の決定的関数として計算されます。デフォルトの分布は LogNormal(0.2, 0.9) です。kpi_type が 'non_revenue' で、revenue_per_kpi が指定されていない場合、ROI は費用あたりの増分 KPI 単位として解釈されます。この場合、roi_m と roi_rf のデフォルト値は無視され、メディア総貢献度の目標平均標準偏差を達成するために、すべてのチャネルに共通の ROI 事前分布が割り当てられます。 |
mroi_m
|
各メディア チャネルの mROI の事前分布。このパラメータは、paid_media_prior_type が 'mroi' の場合にのみ使用されます。この場合、beta_m は mroi_m、alpha_m、ec_m、slope_m、および各メディア チャネルに関連付けられた費用の決定的関数として計算されます。デフォルトの分布は LogNormal(0.0, 0.5) です。kpi_type が 'non_revenue' で、revenue_per_kpi が指定されていない場合、mROI は費用あたりの限界増分 KPI 単位として解釈されます。この場合、デフォルトの分布は指定されていないため、ユーザーが指定する必要があります。 |
mroi_rf
|
各リーチとフリークエンシー チャネルの mROI の事前分布。このパラメータは、paid_media_prior_type が 'mroi' の場合にのみ使用されます。この場合、beta_rf は mroi_rf、alpha_rf、ec_rf、slope_rf、および各メディア チャネルに関連付けられた費用の決定的関数として計算されます。デフォルトの分布は LogNormal(0.0, 0.5) です。kpi_type が 'non_revenue' で、revenue_per_kpi が指定されていない場合、mROI は費用あたりの限界増分 KPI 単位として解釈されます。この場合、デフォルトの分布は指定されていないため、ユーザーが指定する必要があります。 |
メソッド
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
ブロードキャストの分布属性を含む新しい PriorDistribution を返します。
| 引数 | |
|---|---|
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
|
事前分布を全国モデルに合わせて調整するかどうかを示すブール値。 |
set_total_media_contribution_prior
|
目標の平均と分散でメディアの合計貢献度の事前分布を達成するために、ROI 事前分布を設定すべきかどうかを示すブール値。 |
kpi
|
地域と時間を通じた全 KPI の合計。set_total_media_contribution_prior=True の場合は必須。 |
total_spend
|
地域と時間を通じて集計されたメディア チャネルあたりの費用。set_total_media_contribution_prior=True の場合は必須。 |
| 戻り値 | |
|---|---|
指定されたデータの次元に即して、この事前分布からブロードキャストされる新しい PriorDistribution。 |
| 発生するエラー | |
|---|---|
ValueError
|
カスタムの事前分布が設定されていないチャネルがある場合。 |
has_deterministic_param
has_deterministic_param(
param: tfp.distributions.Distribution
) -> bool
__eq__
__eq__(
other
)
self==value を返します。
GitHub 上のソースを見る