Большинство дополнительных сглаживаний в наборе инструментов mgcv действительно предназначены для специализированных приложений - вы можете в значительной степени игнорировать их для общих GAM, особенно одномерных сглаживаний (вам не нужен сплайн со случайным эффектом, сплайн на сфере, марковское случайное поле, или мыльная пленка более гладкая, если у вас есть, например, одномерные данные.)
Если вы можете нести стоимость установки, используйте сплайны регрессии тонких пластин (TPRS).
Эти сплайны являются оптимальными в асимптотическом смысле MSE, но требуют одной базисной функции на наблюдение. То, что делает Саймон в mgcv, это генерирует низкоранговую версию стандартной TPRS, взяв полную основу TPRS и подвергнув ее собственному разложению. Это создает новый базис, где первая k
базисная функция в новом пространстве сохраняет большую часть сигнала в исходном базисе, но во многих меньших базисных функциях. Вот как mgcv удается получить TPRS, который использует только определенное количество базовых функций, а не одну на наблюдение. Это собственное разложение сохраняет большую часть оптимальности классического базиса TPRS, но при значительных вычислительных затратах для больших наборов данных.
Если вы не можете нести стоимость установки TPRS, используйте сплайны кубической регрессии (CRS)
Это быстрое основание для создания и, следовательно, подходит для проблем с большим количеством данных. Однако он основан на узлах, поэтому в некоторой степени пользователю теперь необходимо выбрать, где эти узлы должны быть размещены. Для большинства проблем мало что можно получить, выходя за пределы расположения узлов по умолчанию (на границе данных и равномерно распределенных между ними), но если у вас особенно неравномерная выборка в диапазоне ковариации, вы можете выбрать размещение узлов например, равномерно распределенные выборочные квантили ковариат.
Любое другое сглаживание в mgcv является особым, используется там, где вам нужны изотропные сглаживания, или два или более ковариат, или для пространственного сглаживания, или которые реализуют сжатие, или случайные эффекты и случайные сплайны, или где ковариаты циклические, или волнистость меняется в зависимости от диапазон ковариации. Вам нужно только углубиться в гладкий набор инструментов, если у вас есть проблема, требующая особого обращения.
усадка
Существуют версии усадки как TPRS, так и CRS в mgcv . Они реализуют сплайн, где идеально гладкая часть основания также подвергается штрафу за гладкость. Это позволяет процессу выбора плавности сжимать сглаженную спину за пределы даже линейной функции практически до нуля. Это позволяет штрафу за гладкость также выполнять выбор функции.
Сплайны Дюшона, сплайны P и сплайны B
Эти сплайны доступны для специализированных приложений, в которых необходимо отдельно указать базовый порядок и порядок штрафов. Сплайны Дюшона обобщают TPRS. У меня складывается впечатление, что сплайны P были добавлены в mgcv, чтобы позволить сравнение с другими наказанными подходами, основанными на вероятности, и потому что они являются сплайнами, использованными Eilers & Marx в их статье 1996 года, которая стимулировала большую часть последующей работы в GAM. Сплайны P также полезны в качестве основы для других сплайнов, таких как сплайны с ограничениями формы и адаптивные сплайны.
Сплайны B, реализованные в mgcv, обеспечивают большую гибкость при настройке штрафа и узлов для сплайнов, что может позволить некоторую экстраполяцию за пределы диапазона наблюдаемых данных.
Циклические сплайны
Если диапазон значений для ковариаты можно рассматривать как круг, где конечные точки диапазона должны фактически быть эквивалентными (месяц или день года, угол движения, аспект, направление ветра), это ограничение может быть наложено на основа. Если у вас есть такие ковариаты, то имеет смысл наложить это ограничение.
Адаптивные сглаживатели
Вместо того, чтобы помещать отдельную 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'
.)
Как показано здесь, выбор того, идти ли адаптивно или нет, зависит от проблемы; если у вас есть отношение, для которого вы предполагаете, что функциональная форма является гладкой, но степень гладкости варьируется в диапазоне ковариат в отношении, тогда может иметь смысл адаптивный сплайн. Если в вашей серии были периоды быстрых изменений и периоды низких или более постепенных изменений, это может указывать на необходимость адаптивного сглаживания.