mgcv工具箱中的大多数额外平滑实际上是用于专业应用程序的——对于一般 GAM,您可以在很大程度上忽略它们,尤其是单变量平滑(您不需要随机效应样条曲线、球体上的样条曲线、马尔可夫随机场,例如,如果您有单变量数据,则使用肥皂膜平滑剂。)
如果您可以承担设置成本,请使用薄板回归样条 (TPRS)。
这些样条在渐近 MSE 意义上是最优的,但每次观察需要一个基函数。Simon 在mgcv中所做的是通过获取完整的 TPRS 基础并对其进行特征分解来生成标准 TPRS 的低阶版本。这创建了一个新的基,其中k
新空间中的第一个基函数保留了原始基中的大部分信号,但基函数少得多。这就是mgcv设法获得仅使用指定数量的基函数而不是每次观察一个的 TPRS 的方式。这种特征分解保留了经典 TPRS 基的大部分最优性,但对大型数据集的计算工作量很大。
如果您无法承担 TPRS 的设置成本,请使用三次回归样条 (CRS)
这是生成的快速基础,因此适用于处理大量数据的问题。然而,它是基于结的,因此在某种程度上,用户现在需要选择这些结的放置位置。对于大多数问题,超出默认节点位置(在数据边界处并且在数据之间均匀间隔)几乎没有什么好处,但是如果您在协变量范围内的采样特别不均匀,您可以选择放置节点例如,协变量的均匀分布的样本分位数。
mgcv中的每个其他平滑都是特殊的,用于您想要各向同性平滑或两个或多个协变量,或用于空间平滑,或实现收缩,或随机效应和随机样条,或协变量是循环的,或摆动变化超过协变量的范围。如果您遇到需要特殊处理的问题,您只需要冒险进入平滑工具箱。
收缩
mgcv中有 TPRS 和 CRS 的收缩版本。这些实现了一个样条曲线,其中基础的完美平滑部分也受到平滑度惩罚。这允许平滑度选择过程将平滑度缩小到甚至超过线性函数,基本上为零。这允许平滑度惩罚也执行特征选择。
Duchon 样条、P 样条和 B 样条
这些样条可用于需要分别指定基阶和罚阶的专业应用。Duchon 样条概括了 TPRS。我的印象是 P 样条被添加到mgcv以允许与其他基于惩罚似然的方法进行比较,并且因为它们是 Eilers 和马克思在 1996 年的论文中使用的样条,这激发了 GAM 的许多后续工作。P 样条线也可用作其他样条线的基础,例如具有形状约束的样条线和自适应样条线。
在mgcv中实现的 B 样条在设置样条的罚分和结时具有很大的灵活性,这可以允许在观察数据范围之外进行一些外推。
循环样条
如果可以将协变量的值范围视为一个圆圈,其中范围的端点实际上应该相等(一年中的月份或日期、运动角度、方面、风向),则可以将这个约束施加在基础。如果你有这样的协变量,那么施加这个约束是有意义的。
自适应平滑器
自适应样条曲线不是在协变量的各个部分中拟合单独的 GAM,而是使用加权惩罚矩阵,其中允许权重在协变量的范围内平滑变化。例如,对于 TPRS 和 CRS 样条,它们假定在协变量范围内具有相同程度的平滑度。如果您的关系不是这种情况,那么您最终可以使用比预期更多的自由度,以允许样条曲线适应摆动和非摆动部分。平滑文献中的一个经典例子是
library('ggplot2')
theme_set(theme_bw())
library('mgcv')
data(mcycle, package = 'MASS')
pdata <- with(mcycle,
data.frame(times = seq(min(times), max(times), length = 500)))
ggplot(mcycle, aes(x = times, y = accel)) + geom_point()
这些数据清楚地展示了不同平滑度的时期——系列的第一部分实际上为零,在冲击期间很多,之后减少。
如果我们对这些数据拟合标准 GAM,
m1 <- gam(accel ~ s(times, k = 20), data = mcycle, method = 'REML')
我们得到了一个合理的拟合,但在开始和结束的范围内有一些额外的摆动,times
并且使用了 ~14 自由度的拟合
plot(m1, scheme = 1, residuals = TRUE, pch= 16)
为了适应变化的摆动,自适应样条曲线使用加权惩罚矩阵,权重随协变量平滑变化。在这里,我用相同的基础维度(k = 20)重新拟合了原始模型,但现在我们有 5 个平滑度参数(默认为m = 5
)而不是原始模型的 1 个。
m2 <- gam(accel ~ s(times, k = 20, bs = 'ad'), data = mcycle, method = 'REML')
请注意,该模型使用的自由度要少得多(~8),并且拟合的平滑在末端的摆动要小得多,同时仍然能够充分适应撞击期间头部加速度的巨大变化。
这里实际发生的是样条曲线具有平滑的基础和惩罚的基础(允许权重随着协变量平滑变化)。默认情况下,这两个都是 P 样条,但您也可以使用 CRS 基类型(bs
只能是'ps'
, 'cr'
, 'cc'
,之一'cs'
)
如此处所示,是否进行自适应的选择实际上取决于问题。如果您有一个假设函数形式是平滑的关系,但平滑度在关系中协变量的范围内变化,则自适应样条曲线可能有意义。如果您的系列有快速变化的时期和较低或更平缓的变化时期,这可能表明可能需要自适应平滑。