跳转到:
knots
实参的运作方式
Meridian 采用时变截距方法将时间效应纳入模型中(样条函数 [数学],维基百科。Ng、Wang 和 Dai。2021 年)。此方法将 \(T\)个时间段中每个时间段的时间效应 \(\mu = [\mu_1, \dots, \mu_T]\) 都纳入模型中(三年的每周 MMM 数据有 \(52 \times 3\) 个时间段)。系统会通过以下关系式将 \(T\) 个时间效应纳入模型中,使用的形参可能少于 \(T\)个:
\[\mu = W \ast b\]
其中:
\(\mu\) 为 \(1 \times T\) ,表示每个时间段 \(t=1, \dots ,T\)的效应; \(W\) 为 \(T \times K\) 确定性权重矩阵
\(b\) (在 Meridian 中称为
knot_values
)为 \(K \times 1\),其中 \(K \leq T\)。
系统会对 \(b\)进行贝叶斯后验推理,并根据权重矩阵 \(W\)将其转换为用\(\mu\) 表示的形式。结数 \(K\)通过用户输入确定。权重矩阵 \(W\) 通过一个时间段与两个相邻结之间的 L1 距离确定。
为了阐明 L1 距离如何确定权重矩阵,我们以时间段\(9\)为例,它的两个相邻的结分别位于 \(6\) 和 \(11\)。时间段 \(9\) 和结 \(11\) 之间的 L1 距离为 \(2\)。时间段 \(9\) 和结 \(6\) 之间的 L1 距离为 \(3\)。因此,位于 \(6\)的结的权重为 \(0.4 = 1 - \frac{3}{2+3} \) ,位于 \(11\) 的结的权重为\(0.6 = 1 - \frac{2}{2+3} \)。这两个相邻结的加权平均值就确定了 \(\mu_9\)的值。
请注意,当 knots < n_times
时,系统会进行一定程度的降维。n_times
个时间段在纳入模型中时使用的形参数量不到 n_times
个。权重函数决定了时间段的组合方式。
为模型中的时间效应选择结数
在考虑如何设置 ModelSpec
的 knots
时,不妨考虑两种极端情况:结数可以是 1 到时间段数量 (n_times
) 之间的任意值。当 knots = n_times
时,系统不会进行降维,每个时间段都有自己的形参。在地理位置级模型中,如果结数与时间段数量相等,那么模型是可识别的,因为每个时间段都有多个地理位置,也就会有多个观测值。当 knots = 1
时,系统会使用单个形参来衡量所有时间段,也就是说时间不会产生任何效应。这种无效应的情况会成为所有时间段的共同截距。
当 1 < knots < n_times
时,结数介于这两个极值之间。您可以尝试符合条件的值范围内的各种值。如需了解如何选择这两个极值之间的值,请参阅偏差与方差之间的权衡。
建议您尝试以下方法:
地理位置级模型应从默认值 (
knots = n_times
) 开始。如果发现过拟合程度过高或媒体效应估算值不切实际,请考虑减少结数。随着每个时间点的地理位置数量减少,您可能更有必要减少结数。国家级模型应从默认的
1
个结开始,并在此基础上增加结数。您可以继续增加结数,直到过拟合程度过高或媒体效应估算值变得不切实际。结的数量相近时,系统可能会返回类似的结果,例如
knots = 10
和knots = 11
,因此最好尝试相差较大的值。
如需了解可能有助于您开发结选择算法的信息,请参阅 Wiley 在线资源库中的“Knot selection in sparse Gaussian processes with a variational objective function”(《借助变分目标函数在稀疏高斯过程中进行结选择》)一文。
偏差与方差之间的权衡
建议将节数设置视为偏差与方差之间的权衡。当 knots = n_times
时,每个时间段都会获得自己的形参,因此可以仅使用给定时间段的数据来估算该时间段的效应。不过,由于给定时间段内可用的数据点较少,knots = n_times
的方差较大。
当 knots < n_times
时,系统会使用邻近时间段的数据来估算每个结,时间段越接近,获得的权重就越高。由于最邻近的两个结决定了对特定时间段的推理,因此给定时间段的效应是根据该时间段的数据和邻近时间段的数据估算的。随着结数减少,邻近时间点对特定时间点的推理产生的影响越来越大,时间点越接近,获得的权重就越高。这会减少方差,因为越来越多的时间点会用于估算给定时间段的效应。然而,数据并非来自给定时间段,因此会增加偏差。
总而言之,结数越多,时间效应估算值的偏差就越小;结数越少,时间效应估算值的方差就越小。作为分析师,您可以根据需要在偏差与方差之间权衡取舍。如果时间是媒体与 KPI 之间的重要混杂变量,那么估算时间效应时的偏差与方差权衡将转换为估算媒体因果效应时的偏差与方差权衡。
此外,您可以选择针对不同的时间区域进行不同的偏差与方差权衡。为此,您可以将 knots
设置为一个列表,用于指定结的位置。在您希望降低估算值偏差的时间区域(例如节日季),结的位置可以相对密集;在您希望降低估算值方差的时间区域(例如非节日季),结的位置可以相对稀疏。
何时应考虑使用较少的结
在设置结数时,建议考虑时间段对媒体执行的影响。控制变量应是同时影响媒体执行和 KPI 的混杂变量。如需详细了解控制变量,请参阅选择控制变量。
类似的逻辑也适用于时间。如果时间段不是媒体执行的一个要素,那么时间就不是真正的混杂变量,您可以避免在将结数较多的时间纳入模型中时提供过多的自由度。广告客户需要考虑时间段在媒体执行规划中是否发挥了作用。例如,旅游品牌的媒体规划可能取决于时间段。零食品牌在各个时间段的媒体规划可能更加一致。此外,还要考虑时间是否真的是重要的混杂变量,或者时间是否是可直接纳入模型中的其他变量的代理(自由度可能较低)。例如,时间是否真的是推动媒体执行的混杂变量?还是说,真正的混杂变量是全国的新冠病例数量?广告客户了解自己的媒体规划策略,并对这些主题有深入的了解。
何时必须使用 knots < n_times
在某些情况下,您必须设置 knots < n_times
,例如,当国家级模型中的每个时间段没有多个观测值,并且每个时间段没有足够的自由度来获取自己的形参时。请注意,必须进行一定程度的降维。
另一个示例是,当您必须添加国家级媒体或国家级控制变量时。根据定义,国家级变量会随时间变化,但不会随地理位置变化。此类变量与时间完全共线,因此对于每个时间段都有形参的模型来说是多余的。如果您将 knots
设置为接近 n_times
,从技术上来讲,您可能会获得可识别的模型。不过,其可识别性可能仍然较低,会导致问题。鉴于在国家级模型中估算时间效应方面的顾虑,在国家级模型中使用优质控制变量比在地理位置级模型中使用更为重要。如需详细了解优质控制变量,请参阅选择控制变量。
用于对时间效应进行建模的其他方法:二元指标和周期性函数
您可以创建并输入二元指标或周期性函数作为控制变量,以便在 Meridian 中对时间效应进行建模。每种方法在某些情况下都有其优势。
二元指标
当满足条件时,二元指标的值为 1;当不满足条件时,二元指标的值为 0。例如,值为 1 表示 12 月的所有时间段,值为 0 表示其他时间段。在 Meridian 中,二元指标可用作控制变量,以对一组时间段内保持一致且可选择按地理位置变化的时间效应进行建模。结和二元指标可以一起使用,但请注意用于对时间效应进行建模的形参总数。
效应一致
二元指标可以涵盖多个时间段,这假设 KPI 效应(地理位置模型中的人均效应)在所有时间段内保持一致。二元指标使用多个时间段来估计一致的效应,从而提高估计值的准确性并高效利用自由度,前提是“效应一致”这一假设大致正确。
该指标对指示的时间段之外的任何时间段均无影响,而将结放置在特定时间段会影响相邻的时间段,直至下一个相邻的结。
对于国家级模型,将时间效应建模为在一段时间内保持一致可能很有吸引力,因为施加结构有助于稳定估计值。对于地理位置级模型,通常最好使用多个结,以提高灵活性。
地理位置差异
在地理位置级模型中,如果将二元指标用作控制变量,则系统会估计该变量具有地理位置相关效应。这非常适合预期影响因地区而异的活动,例如超级碗在举办城市的影响更大。相比之下,结用于估计与地理位置无关的时间效应。结可创建灵活的样条函数,以捕获所有地理位置共有的基于时间的模式。如果您不希望出现与地理位置相关的时间效应,那么这些变量的参数效率会更高。
针对二元指标关闭地理位置差异
有人可能希望使用不含地理位置相关时间效应的二元指标。为此,您可以将其分层方差 xi_c
的先验设置为零处的点质量。在这种情况下,二元指标的每个地理位置特定系数都将相同。如需针对所有控制变量关闭地理位置效应,请将其方差先验设置为确定性值 0:
xi_c = tfp.distributions.Deterministic(0)
如需仅针对一个特定的控制变量关闭地理位置效应,您可以将其先验的 scale
设置为零。例如,如果您有 4 个控制变量,并希望针对第一个控制变量关闭与地理位置相关的效应,请执行以下操作:
xi_c = tfp.distributions.HalfNormal(scale=[0, 5, 5, 5])
周期性函数
另一种方法是将周期性函数(例如傅里叶级数)添加为控制变量。周期性函数可以作为结的一种有吸引力的替代方案,尤其是在国家级模型中。
周期性函数将时间效应建模为对 KPI(地理位置模型中的人均 KPI)具有平滑的周期性模式。周期性函数是一种关于时间如何影响 KPI 的强参数化假设。这可能适用于国家级模型,因为施加结构有助于获得稳定的季节性估计值。对于地理位置级模型,通常最好使用多个结,以提高灵活性,因为它不会强制对 KPI 采用平滑的周期性模式。
实用建议
建议取决于模型是地理位置级模型还是国家级模型。
地理位置级模型
在地理位置级模型中,可以使用二元指标对与地理位置相关的时间效应进行建模。结和二元指标可以一起使用,但请注意用于对时间效应进行建模的形参总数。
- 对于与地理位置无关的时间效应,请使用结:如果您想对在不同地理位置之间保持一致的时间模式进行建模,结可提供灵活性,而不会有过度形参化的风险。
- 对于与地理位置相关的时间效应,请使用二元指标:如果您强烈假设某个事件的影响因地理位置而异,则最好将二元指标用作控制变量。
国家级模型
国家级模型尤其受益于简约性,这可以通过二元指标、周期性函数或少量精心放置的结来实现。这些工具可以一起使用,但鉴于国家级模型中简约的重要性,请特别注意形参总数。如果假设大致正确,那么这些工具中的每一个都可以提高估计值的准确性并高效利用自由度。下面总结了每种假设:
- 周期性函数将时间效应建模为对 KPI 具有平滑的周期性模式。
- 二元指标将时间效应建模为在受影响的时间段内保持一致。
- 结将时间效应建模为随时间变化的分段线性趋势。