问题描述
我想将GAM拟合到具有循环预测变量的数据中,并且在周期的特定部分中大部分摆动。
有什么方法可以使循环样条曲线(bs ='cc'或'cp')自适应? ...或等效地使一个自适应样条(bs ='ad')循环吗?
解决方法
是;在 mgcv 中的自适应样条基础中已经允许这样做。
自适应样条曲线的默认基础是P样条曲线。您可以切换到该样条曲线的循环版本,也可以使用循环三次样条。
要使其正常工作,您必须将信息传递给平滑函数的xt
参数,同时保留bs = "ad"
作为自适应基础。
对于循环P样条曲线,您会这样做
y ~ s(x,bs = "ad",xt = list(bs = "cp"))
对于循环三次样条曲线,您将使用
y ~ s(x,xt = list(bs = "cc"))
xt
参数通常用于这种情况,其中基础具有可以配置的其他选项。 fs
的基础类似,其中xt
允许您控制用于随机平滑的基础。
要查看的另一个参数是m
;其中k
指定实际平滑的基础尺寸,可以使用m
设置自适应部分的基础,其中m
越高,表示惩罚范围内潜在的变化越大。 x
,就像k
允许在x
上顺利滚动一样。
这些详细信息在?smooth.construct.ad.smooth.spec
(或?adaptive.smooth
中作为该页面的更简单快捷方式)中进行了讨论。