Да; это уже разрешено в основе адаптивного сплайна в mgcv.
Базой по умолчанию в адаптивном сплайне является P-сплайн. Вы можете переключиться на циклическую версию этого типа сплайна или использовать циклический кубический сплайн.
Чтобы это сработало, вы должны передать информацию аргументу xt
функции сглаживания, оставив bs = "ad"
для адаптивного базиса.
Для циклического P-сплайна вы бы сделали
y ~ s(x, bs = "ad", xt = list(bs = "cp"))
а для циклического кубического сплайна вы должны использовать
y ~ s(x, bs = "ad", xt = list(bs = "cc"))
Аргумент xt
часто используется для такого рода вещей, когда у базиса есть другие параметры, которые можно настроить. Базис fs
аналогичен, где xt
позволяет вам управлять базисом, используемым для случайного сглаживания.
Другой аргумент, на который следует обратить внимание, - это m
; где k
указывает базовый размер для фактического сглаживания, вы можете использовать m
, чтобы установить основу для адаптивной части, причем более высокое m
указывает на большее возможное изменение штрафа в диапазоне x
, так же как k
допускает большую волнистость в сглаживании более x
.
Эти детали обсуждаются в ?smooth.construct.ad.smooth.spec
(или ?adaptive.smooth
как более простой ярлык для этой страницы.)
person
Gavin Simpson
schedule
16.09.2020