gam () в R: это сплайн-модель с автоматическим выбором узлов? - PullRequest
0 голосов
/ 05 февраля 2020

Я запускаю анализ, где мне нужно построить нелинейную связь между двумя переменными. Я читал о регрессии сплайна, где одна задача - найти количество и положение узлов. Поэтому я был рад прочитать в этой книге , что обобщенные аддитивные модели (GAM) соответствуют " сплайн-моделям с автоматическим выбором узлов ". Таким образом, я начал читать, как выполнять анализ GAM в R, и был удивлен, увидев, что функция gam() имеет аргумент knots.

Теперь я запутался. Функция gam() в R запускает GAM, который автоматически находит лучшие узлы? Если так, почему мы должны предоставить аргумент узлов? Кроме того, документация гласит: «Если они не предоставлены, то узлы сплайна распределяются равномерно по всем ковариатным значениям, к которым относится термин. Например, если подгонка данных 101 со сплайном 11 узлов x тогда на каждом десятом (упорядоченном) значении х будет узел ". Это не похоже на очень сложный алгоритм выбора узлов.

Я не смог найти другой источник, подтверждающий утверждение, что GAM - это сплайн-модель с автоматическим выбором узлов. Так является ли функция gam() такой же, как pspline(), где степень равна 3 (куб. c) с той разницей, что gam() устанавливает некоторое значение по умолчанию для аргумента df?

1 Ответ

1 голос
/ 06 февраля 2020

Термин GAM охватывает широкий набор моделей и подходов для решения проблемы выбора гладкости.

mgcv использует штрафованные сплайн-базы регрессии со штрафом за волнистость для выбора сложности установлены гладкие (ые). Таким образом, он не выбирает количество узлов как часть выбора гладкости.

По сути, вы, как пользователь, выбираете, какой размер использовать для каждой гладкой функции (устанавливая аргумент k в функции s(), te(), et c, используемые в формуле модели). Значения для k устанавливают верхний предел на волнистость функции (-ий) сглаживания. Штраф измеряет волнистость функции (обычно это квадрат второй производной от сглаживания, суммируемого в диапазоне ковариации). Затем модель оценивает значения коэффициентов для базисных функций, представляющих каждое сглаживание, и выбирает параметр (ы) сглаживания путем максимизации наказанного критерия логарифмического правдоподобия. Штрафная логарифмическая вероятность - это логарифмическая вероятность плюс некоторая сумма штрафа за волнистость для каждого сглаживания.

По сути, вы устанавливаете верхний предел ожидаемой сложности (шаткость) для каждого сглаживания, а при подборе модели - штраф (и) сжимают коэффициенты за каждым сглаживанием, чтобы лишняя волнистость удалялась из подгонки.

Таким образом, параметры сглаживания контролируют, насколько происходит усадка и, следовательно, насколько сложна (волниста) каждая подобранная сглаженность.

Этот подход позволяет избежать проблем с выбором места размещения узлов.

Это не означает, что базы, используемые для представления сглаживания, не имеют узлов. В упомянутом вами базисе сплайна регрессии cubi c значение, которое вы задаете для k, задает размерность базиса, что подразумевает определенное количество узлов. Эти узлы размещаются на границах ковариаты, участвующей в сглаживании, а затем равномерно по всему диапазону ковариаты, если пользователь не предоставит другой набор местоположений узлов. Однако, как только количество узлов и их расположение установлены, таким образом, формируя основу, они фиксируются, причем волнистость сглаживания контролируется штрафом за волнистость, а не путем изменения количества узлов.

You должны быть очень осторожными также с R, так как есть два пакета, обеспечивающие функцию gam(). Оригинальный пакет gam предоставляет R версию программного обеспечения и подход, описанный в оригинальной книге GAM Хаста ie и Тибширани. Этот пакет не подходит для GAM, использующих штрафные сплайны регрессии, как я описал выше.

R поставляется с пакетом mgcv , который подходит для GAM, использующим штрафные сплайны регрессии, как я обрисовал выше. Вы управляете размером (размерностью) основы для каждого сглаживания, используя аргумент k. Там нет аргументов df.

Как я уже сказал, ГАМы - это широкая церковь, и есть много способов соответствовать им. Важно знать, какое программное обеспечение вы используете и какие методы использует это программное обеспечение для оценки GAM. Как только у вас будет эта информация, вы сможете найти материал c для этого конкретного подхода к оценке GAM. В этом случае вам следует взглянуть на книгу Саймона Вуда GAM: введение в R , поскольку оно описывает пакет mgcv и написано автором mgcv пакет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...