设置 knots

跳转到:

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 个。权重函数决定了时间段的组合方式。

为模型中的时间效应选择结数

在考虑如何设置 ModelSpecknots 时,不妨考虑两种极端情况:结数可以是 1 到时间段数量 (n_times) 之间的任意值。当 knots = n_times 时,系统不会进行降维,每个时间段都有自己的形参。在地理位置级模型中,如果结数与时间段数量相等,那么模型是可识别的,因为每个时间段都有多个地理位置,也就会有多个观测值。当 knots = 1 时,系统会使用单个形参来衡量所有时间段,也就是说时间不会产生任何效应。这种无效应的情况会成为所有时间段的共同截距。

1 < knots < n_times 时,结数介于这两个极值之间。您可以尝试符合条件的值范围内的各种值。如需了解如何选择这两个极值之间的值,请参阅偏差与方差之间的权衡

建议您尝试以下方法:

  • 地理位置级模型应从默认值 (knots = n_times) 开始。如果发现过拟合程度过高或媒体效应估算值不切实际,请考虑减少结数。随着每个时间点的地理位置数量减少,您可能更有必要减少结数。

  • 国家级模型应从默认的 1 个结开始,并在此基础上增加结数。您可以继续增加结数,直到过拟合程度过高或媒体效应估算值变得不切实际。

  • 结的数量相近时,系统可能会返回类似的结果,例如 knots = 10knots = 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,从技术上来讲,您可能会获得可识别的模型。不过,其可识别性可能仍然较低,会导致问题。鉴于在国家级模型中估算时间效应方面的顾虑,在国家级模型中使用优质控制变量比在地理位置级模型中使用更为重要。如需详细了解优质控制变量,请参阅选择控制变量

选择结或二元虚拟变量

这一部分将指导您将结用于季节性效应以及将二元虚拟变量用于特定活动,例如节日活动和体育赛事。用户经常会想知道,在这类情况下是否可以或应该同时使用结和二元虚拟变量。

在决定要使用什么时,请考虑以下两点:

  • ModelSpecknots 也可以用于设置结的位置。通常情况下,这比在控制变量上设置二元虚拟变量更可取。

  • InputDatacontrols 实参中使用二元虚拟变量将获得地理位置层次结构,而结不会获得地理位置层次结构。对于可能在效应方面存在显著地理位置差异的节日或活动,这种做法可能很有用。例如,特定类型的体育赛事在某些地理位置可能更具影响力。