本部分介绍 Meridian 模型的默认先验分布。所有先验分布都通过 prior_distribution
实参指定,该实参接受一个 PriorDistribution
对象。在 PriorDistribution
构造函数中,每个形参都有自己的实参,且联合先验分布假设所有先验都是独立的。
分布可以指定为向量(例如 tfp.distributions.Normal([1, 2, 3], [1, 1, 2])
)或标量(例如 tfp.distributions.Normal(1, 2)
)。所有标量分布都会广播到它们所代表的形参向量的长度。
knot_values
形参: \(b_k\)
默认先验:Normal(0, 5)
理由:
- 这是决定着多长时间能产生效应的无信息先验。
- 之所以是无信息先验,是因为您希望有一定的灵活性,让时间能产生强效应。
- 在每个时间段有多个地理位置的情况下,可以从数据中习得。如果结数较少,也可以为每个结指定多个时间段。
tau_g_excl_baseline
形参: \(\tau_g\)
默认先验:Normal(0, 5)
理由:
- 这是决定着地理位置差异性的无信息先验。
- 之所以是无信息先验,是因为您希望有一定的灵活性,让地理位置能产生强效应。
- 在每个地理位置有多个时间段的情况下,可以从数据中习得。
roi_m
和 roi_rf
形参: \(\text{ROI}_i^{[M]},\text{ROI}_{i}^{[RF]}\)
默认先验:LogNormal(0.2, 0.9)
理由:
- 此先验表示,根据先前的知识,每个渠道的平均投资回报率为 1.83,50% 的投资回报率大于 1.22,80% 的投资回报率介于 0.5 和 6.0 之间,95% 的投资回报率介于 0.25 和 9.0 之间,99% 的投资回报率小于 10.0。
- 如果 KPI 不是收入,并且“每个 KPI 的收入”数据不可用,则系统会针对所有渠道设置一个共同的投资回报率先验,使因所有付费媒体渠道而增加的 KPI 的比例的先验平均值为 40%,标准差为 20%(称为“付费媒体总贡献率先验”)。如需了解有关此默认项的更多注意事项,请参阅默认付费媒体总贡献率先验。
- 此默认分布严格为正值,当媒体系数随机效应是对数正态分布 (
media_effects_dist='log_normal'
) 时,需要使用这种分布。当随机效应是media_effects_dist='normal'
时,可以使用允许负值的先验,但通常不建议这样做,因为这可能会使后验方差虚增并导致 MCMC 采样收敛问题。
mroi_m
和 mroi_rf
形参: \(\text{mROI}_i^{[M]},\text{mROI}_{i}^{[RF]}\)
默认先验:LogNormal(0.0, 0.5)
理由:
- 此先验表示,根据先前的知识,每个渠道的平均 mROI 为 1.13,50% 的 mROI 大于 1.0,80% 的 mROI 介于 0.53 和 1.90 之间,95% 的 mROI 介于 0.33 和 2.66 之间,99% 的 mROI 小于 3.20。
- 默认情况下,每个渠道都分配了相同的 mROI 先验。
- 如果 KPI 不是收入,并且“每个 KPI 的收入”数据不可用,仍可以使用 mROI 先验,但您必须为
roi_m
和roi_rf
指定自定义分布。在这种情况下,系统会将边际投资回报率解读为“每支出单位的增量 KPI 单位”(归因于支出小幅增加)。
contribution_m
、contribution_rf
、contribution_om
和 contribution_orf
形参: \(\text{Contribution}_i^{[M]},\text{Contribution}_{i}^{[RF]}\), \(\text{Contribution}_i^{[OM]},\text{Contribution}_{i}^{[ORF]}\)
默认先验:Beta(1.0, 99.0)
理由:
- 此默认先验表示,根据先前的知识,每个渠道的平均贡献率为 1%,50% 的贡献率值大于 0.7%,80% 的贡献率值介于 0.1% 和 2.3% 之间,95% 的贡献率值介于 0.03% 和 3.7% 之间,99% 的贡献率值小于 4.5%。
- 此默认分布不允许任何单个渠道的贡献率超过 1.0(观测结果的 100%)。不过,这并不一定能防止多个渠道的总贡献率超过 100%。
- 此默认分布严格为正值,当媒体系数随机效应是对数正态分布 (
media_effects_dist='log_normal'
) 时,需要使用这种分布。当随机效应是media_effects_dist='normal'
时,可以使用允许负值的先验,但通常不建议这样做,因为这可能会使后验方差虚增并导致 MCMC 采样收敛问题。 - 默认分布具有良好的正则化作用,可缓解 MCMC 收敛问题和基准为负的问题。不妨考虑设置适合您的用例的自定义先验。
contribution_n
形参: \(\text{Contribution}_i^{[N]}\)
默认先验:TruncatedNormal(0.0, 0.1, -1.0, 1.0)
理由:
- 此默认先验表示,根据先前的知识,每个渠道的贡献率平均值和中位数为总观测结果的 0%,80% 的贡献率值介于 -12.8% 和 +12.8% 之间,95% 的贡献率值介于 -19.6% 和 +19.6% 之间,99% 的贡献率值介于 -25.8% 和 +25.8% 之间。
- 此默认先验允许负值,因为非媒体的贡献率可能为正或负,具体取决于处理变量是什么以及相应的基准处理变量值是什么。如果您有特定变量的贡献率严格为正或负的先验知识,应将其纳入先验。
beta_m
、beta_rf
、beta_om
和 beta_orf
形参: \(\beta_i^{[M]},\beta_{i}^{[RF]},\beta_{i}^{[OM]}, \beta_{i}^{[ORF]}\)
默认先验:HalfNormal(5)
理由:
- 对于展示自然媒体渠道以及覆盖面和频次付费媒体渠道 (
beta_gom; beta_gorf
),地理位置级媒体效应的分层分布形参的无信息先验分布。当media_effects_dist
设置为'normal'
时,它是分层平均值。当media_effects_dist
设置为'log_normal'
时,它是底层对数变换Normal
分布平均值的分层形参。 - 对于展示付费媒体渠道以及覆盖面和频次付费媒体渠道 (
beta_gm; beta_grf
),地理位置级媒体效应的分层分布形参的无信息先验分布。当media_effects_dist
设置为'normal'
时,它是分层平均值。当media_effects_dist
设置为'log_normal'
时,它是底层对数变换Normal
分布平均值的分层形参。 - 之所以是无信息先验,是因为
beta_m
、beta_rf
、beta_om
和beta_orf
的解释可能会因转换、缩放和媒体执行类型的不同而有很大差异。 - 默认情况下,Meridian 会针对付费媒体渠道使用投资回报率先验(
roi_m
和roi_rf
)。如需针对付费媒体使用beta_m
和beta_rf
先验,请设置media_prior_type='coefficient'
和rf_prior_type='coefficient'
。 默认情况下,Meridian 会针对自然媒体渠道使用贡献率先验(
contribution_om
和contribution_orf
)。若要针对自然媒体使用beta_om
和beta_orf
先验,请设置organic_media_prior_type='coefficient'
和organic_rf_prior_type='coefficient'
。[M]
表示具有展示次数的付费媒体渠道。[RF]
表示具有覆盖面和频次的付费媒体渠道。[OM]
表示具有展示次数的自然媒体渠道。[ORF]
表示具有覆盖面和频次的自然媒体渠道。
eta_m
、eta_rf
、eta_om
和 eta_orf
形参: \(\eta_i^{[M]},\eta_{i}^{[RF]},\eta_{i}^{[OM]}, \eta_{i}^{[ORF]}\)
默认先验:HalfNormal(1)
理由:
适度正则化有助于跨地理位置执行 pooling 操作。这将以增加偏差为代价来降低方差估计值,并使模型更高效地使用数据。
gamma_c
和 gamma_n
形参: \(\gamma_i^{[C]},\gamma_i^{[N]}\)
默认先验:Normal(0, 5)
理由:
- 之所以是无信息先验,是因为您可能会看到广泛的控制变量或非媒体处理变量。
- 默认情况下,Meridian 会针对非媒体处理渠道使用贡献率先验 (
contribution_n
)。若要针对非媒体处理变量使用gamma_n
先验,请设置non_media_treatments_prior_type='coefficient'
。
xi_c
和 xi_n
形参: \(\xi_i^{[C]},\xi_i^{[N]}\)
默认先验:HalfNormal(5)
理由:
- 之所以是无信息先验,是为了允许控制变量效应和非媒体处理变量效应中存在广泛的地理位置差异。
- 默认情况下,由于控制效应是简单的线性效应(没有 Hill 和 Adstock 转换这么复杂),因此控制效应和非媒体处理效应的 pooling 比媒体效应弱。
alpha_m
、alpha_rf
、alpha_om
和 alpha_orf
形参: \(\alpha_i^{[M]},\alpha_{i}^{[RF]},\alpha_{i}^{[OM]}, \alpha_{i}^{[ORF]}\)
默认先验:Uniform(0, 1)
理由:之所以是无信息先验,是为了允许根据数据确定衰减率。
ec_m
和 ec_om
形参: \(ec_i^{[M]}, ec_{i}^{[OM]}\)
默认先验:TruncatedNormal(0.8, 0.8, 0.1, 10)
。这是条件式分布 \(X|0.1 < X < 10\),其中 \(X \sim N(0.8,0.8)\)。
理由:
- 对数据进行了按比例调整,以便在 \(ec=1\)时,半饱和出现在不同地理位置和时间的人均非零媒体单位数的中位数处。\(ec=X\) 表示半饱和出现在不同地理位置和时间的人均非零媒体单位数的中位数值的 \(X\) 倍处。
- 此先验的均值接近 1,这是对半饱和出现位置的合理先验假设。
- 截断是为了使形参保持在合理的范围内,以确保其可识别性。
- 如果渠道严重欠饱和 (\(ec > 10\)) 或严重过饱和 (\(ec < 0.1\)),数据实际上并不包含有关半饱和点的信息。在这种情况下,
ec_m
形参决定了响应曲线的形状,但不应该被解读为半饱和的准确估计值。
ec_rf
和 ec_orf
形参: \(ec_{i}^{[RF]},ec_{i}^{[ORF]}\)
默认先验:LogNormal(0.7, 0.4) + 1
# Tensorflow Probability Syntax
tfp.distributions.TransformedDistribution(
tfp.distributions.LogNormal(0.7, 0.4),
tfp.bijectors.Shift(0.1)
)
理由:
- 信息量适中,以防止无法识别
slope_rf
。 - 结合
slope_rf
先验进行设置,使最佳频次的先验分布均值为 2.1,90% 置信区间为[1.0, 4.4]
。这被认为是最佳频次的合理范围。
slope_m
和 slope_om
形参: \(\text{slope}_i^{[M]},\text{slope}_{i}^{[OM]}\)
默认先验:Deterministic(1)
理由:
- 由于可识别性原因而难以学习。
Deterministic(1)
表示它仅限于 Hill 凹曲线。- 当 Hill 曲线呈凹形时,预算优化算法会生成全局最优解。更改此先验可能会导致产生 Hill 非凹曲线,并且预算优化算法无法再生成全局最优解。
slope_rf
和 slope_orf
形参: \(\text{slope}_{i}^{[RF]},\text{slope}_{i}^{[ORF]}\)
默认先验:LogNormal(0.7, 0.4)
理由:
- 信息量适中,以防止无法识别
ec_rf
。 结合
ec_rf
先验进行设置,使最佳频次的先验分布均值为 2.1,90% 置信区间为[1, 4.4]
,这是最佳频次的合理范围。[M]
表示具有展示次数的付费媒体渠道。[RF]
表示具有覆盖面和频次的付费媒体渠道。[OM]
表示具有展示次数的自然媒体渠道。[ORF]
表示具有覆盖面和频次的自然媒体渠道。
sigma
形参: \(\sigma_g\)
默认先验:HalfNormal(5)
理由:
之所以是无信息先验,是因为残差方差会因广告客户的不同而有很大差异。