Вы неправильно понимаете, что делает select = TRUE
;здесь действительно только одна модель.
В стандартном GAM, установленном на mgcv , волнистость каждого сглаживания в модели определяется во время подбора, оценивая параметры, чтобы минимизировать штрафной критерий вероятности.Наказание (я) для каждого сглаживания может налагать штрафы на волнистость (как правило, на кривизну сглаживателя через штраф на квадрат второй производной), но они не могут налагать штраф на любые функции в базисе сплайна, которые являются совершенно гладкими (то есть прямая линия илилинейная функция ковариаты).Это потому, что идеально гладкий компонент не имеет кривизны, наклон не меняется.Говорят, что такие функции находятся в пустом пространстве штрафа.
То, что показали Марра и Вуд (2011), было двумя способами добавления дополнительных штрафов к каждому сглаживанию, так чтобы штраф применялся как к волнистым функциям, так и к функциям внулевое пространство.select = TRUE
- это один из этих двух вариантов.
То, что у вас есть, - это модель, в которой штрафы смещают сглаживание к линейной функции и смещают линейную функцию к 0 (плоская функция).Другими словами, мы говорим, что сглаживание сокращается до 0.
При select = TRUE
процесс выбора модели, таким образом, больше похож на подход выбора модели, известный как LASSO.
Пока я говорю тамэто одна модель, на самом деле существует бесконечное количество моделей, так как вы получаете другую модель для всех комбинаций значений параметров «гладкости», которые управляют тем, насколько штраф (шаткость или пустое пространство) влияет на наказуемую вероятность.Но это то же самое, что сказать, что существует бесконечное количество моделей наименьших квадратов (линейная регрессия), потому что параметры этой модели могут принимать любое реальное значение.Эти параметры, как и штрафы за сглаживание в GAM, обновляются во время подгонки, чтобы прийти к модели.Просто так получается, что конкретная форма штрафов за пустое пространство, подразумеваемое с помощью select = TRUE
, в итоге делает выбор модели для вас.
Обратите внимание, что вы платите цену за то, что не знаете, должна ли переменная быть в моделиили нет;контрольные степени свободы (столбец Ref.df
в выводе summary(model)
) - это любое значение k
, установленное в сглаживании.Т.е. вы платите полную стоимость, не зная, использует ли гладкое k
базисные функции или ~ 0 (когда термин сокращен из модели) или где-то посередине;Вы всегда оплачиваете k
базовых функций.