Обобщенные аддитивные модели (GAM), взаимодействия и ковариаты


12

Я исследовал ряд инструментов для прогнозирования и обнаружил, что Обобщенные аддитивные модели (GAM) обладают наибольшим потенциалом для этой цели. ГАМ - это здорово! Они позволяют указывать сложные модели очень кратко. Однако та же краткость вызывает у меня некоторую путаницу, особенно в отношении того, как GAM представляют себе термины взаимодействия и ковариаты.

Рассмотрим примерный набор данных (воспроизводимый код в конце поста), в котором yесть монотонная функция, возмущенная парой гауссианов, плюс некоторый шум:

введите описание изображения здесь

Набор данных имеет несколько переменных-предикторов:

  • x: Индекс данных (1-100).
  • w: Вторичная особенность, которая выделяет участки, yгде присутствует гауссиан. wимеет значения 1-20, где xнаходится от 11 до 30, и от 51 до 70. В противном случае wравно 0.
  • w2: w + 1, так что нет 0 значений.

mgcvПакет R позволяет легко определить ряд возможных моделей для этих данных:

введите описание изображения здесь

Модели 1 и 2 довольно интуитивно понятны. Прогнозирование yтолько по значению индекса xпри гладкости по умолчанию дает что-то неопределенно правильное, но слишком гладкое. Прогнозирование yтолько на основе wрезультатов в модели «среднего гауссова», присутствующего в нем y, и отсутствие «осведомленности» о других точках данных, все из которых имеют wзначение 0.

Модель 3 использует как сглаживание, так xи w1D, обеспечивая хорошее прилегание. Модель 4 использует xи wв 2D гладкой, а также дает хорошую посадку. Эти две модели очень похожи, но не идентичны.

Модель 5 моделей x"мимо" w. Модель 6 делает наоборот. mgcvДокументация гласит, что «аргумент by гарантирует, что функция сглаживания умножается на [ковариату, заданную в аргументе« by »]». Так не должны ли модели 5 и 6 быть эквивалентными?

Модели 7 и 8 используют один из предикторов в качестве линейного члена. Они имеют для меня интуитивный смысл, поскольку они просто делают то, что GLM делает с этими предикторами, а затем добавляют эффект к остальной части модели.

Наконец, модель 9 такая же, как модель 5, за исключением того, что xсглаживается «по» w2(то есть w + 1). Что для меня странно, так это то, что отсутствие нулей w2приводит к совершенно другому эффекту в «побочном» взаимодействии.

Итак, мои вопросы таковы:

  • В чем разница между спецификациями в моделях 3 и 4? Есть ли какой-то другой пример, который бы более четко обозначил разницу?
  • Что именно "здесь" делает? Многое из того, что я прочитал в книге Вуда и на этом сайте, говорит о том, что «by» производит мультипликативный эффект, но мне трудно понять его интуицию.
  • Почему между моделями 5 и 9 такая заметная разница?

Представлять следует, написано в R.

library(magrittr)
library(tidyverse)
library(mgcv)

set.seed(1222)
data.ex <- tibble(
  x = 1:100,
  w = c(rep(0, 10), 1:20, rep(0, 20), 1:20, rep(0, 30)),
  w2 = w + 1,
  y = dnorm(x, mean = rep(c(20, 60), each = 50), sd = 3) + (seq(0, 1, length = 100)^2) / 2 + rnorm(100, sd = 0.01)
)

models <- tibble(
  model = 1:9,
  formula = c('y ~ s(x)', 'y ~ s(w)', 'y ~ s(x) + s(w)', 'y ~ s(x, w)', 'y ~ s(x, by = w)', 'y ~ s(w, by = x)', 'y ~ x + s(w)', 'y ~ w + s(x)', 'y ~ s(x, by = w2)'),
  gam = map(formula, function(x) gam(as.formula(x), data = data.ex)),
  data.to.plot = map(gam, function(x) cbind(data.ex, predicted = predict(x)))
)

plot.models <- unnest(models, data.to.plot) %>%
  mutate(facet = sprintf('%i: %s', model, formula)) %>%
  ggplot(data = ., aes(x = x, y = y)) +
  geom_point() +
  geom_line(aes(y = predicted), color = 'red') +
  facet_wrap(facets = ~facet)
print(plot.models)

Это немного антисоциально для людей, использующих пакет tidyverse в качестве зависимости от представительства; Я использую довольно много таких пакетов, и все же мне потребовался инсталляционный фестиваль, чтобы запустить ваш код. Минимальный , то есть список только необходимых пакетов, был бы более полезным. Тем не менее, спасибо за репре; Я просто запускаю его сейчас
Восстановите Монику - Дж. Симпсон

Ответы:


11

Q1 В чем разница между моделями 3 и 4?

Модель 3 является чисто аддитивной моделью

y=α+f1(x)+f2(w)+ε

таким образом, у нас есть константа плюс эффект сглаживания плюс эффект сглаживания .αxw

Модель 4 - это гладкое взаимодействие двух непрерывных переменных

y=α+f1(x,w)+ε

В практическом смысле Модель 3 говорит, что независимо от того, каково влияние , влияние на ответ одинаково; если мы фиксируем при некотором известном значении и изменяем в некотором диапазоне, вклад в подобранную модель остается неизменным. Проверьте это, если хотите, используя -3 из модели 3 для фиксированного значения и нескольких различных значений, и используйте аргумент метода. Вы увидите постоянный вклад в подогнанные / прогнозируемые значения для .wxxwf1(x)predict()xwtype = 'terms'predict()s(x)

Это не относится к модели 4; эта модель говорит, что эффект сглаживания плавно меняется в зависимости от значения и наоборот.xw

Обратите внимание, что если и находятся в одних и тех же единицах или мы не ожидаем одинаковую волнистость в обеих переменных, вы должны использовать их для соответствия взаимодействия.xwte()

m4a <- gam(y ~ te(x, w), data = data.ex, method = 'REML')

pdata <- mutate(data.ex, Fittedm4a = predict(m4a))
ggplot(pdata, aes(x = x, y = y)) +
  geom_point() +
  geom_line(aes(y = Fittedm4a), col = 'red')

введите описание изображения здесь

В каком-то смысле модель 4 подходит

y=α+f1(x)+f2(w)+f3(x,w)+ε

где - чистое гладкое взаимодействие «основных» гладких эффектов и , которые были удалены, для удобства идентификации, из основы . Вы можете получить эту модель через xf3xwf3

m4b <- gam(y ~ ti(x) + ti(w) + ti(x, w), data = data.ex, method = 'REML')

но учтите это оценивает 4 параметра гладкости:

  1. тот, который связан с основным гладким эффектомx
  2. тот, который связан с основным гладким эффектомw
  3. тот, который связан с маргинальной гладкостью в гладком тензорном произведении взаимодействияx
  4. тот, который связан с маргинальной гладкостью в гладком тензорном произведении взаимодействияw

te()Модель содержит только два параметра гладкости, один на предельной основе.

Основная проблема всех этих моделей заключается в том, что эффект не является строго гладким; есть разрыв, где эффект падает до 0 (или 1 в ). Это проявляется на ваших графиках (и на том, что я подробно показываю здесь).www2

Q2 Что именно "здесь" делает?

byПеременные сглаживания могут делать разные вещи в зависимости от того, что вы передаете byаргументу. В ваших примерах byпеременная непрерывна. В том случае, что вы получаете модель с переменным коэффициентом. Это модель, в которой линейный эффект плавно меняется с . В терминах уравнения это то, что делает ваша, скажем, модель 5wwx

y=α+f1(x)w+ε

Если это не сразу понятно (это было не для меня, когда я впервые посмотрел на эти модели), для некоторых заданных значений мы оцениваем гладкую функцию при этом значении, и это затем становится эквивалентом ; другими словами, это линейный эффект при данном значении , и эти линейные эффекты плавно меняются вместе с . См. Раздел 7.5.3 во втором издании книги Саймона для конкретного примера, где линейный эффект ковариации изменяет гладкую функцию пространства (широту и долготу).xβ1wwxx

Q3 Почему между моделями 5 и 9 такая заметная разница?

Разница между моделями 5 и 9, я думаю, заключается просто в умножении на 0 или умножении на 1. В первом случае эффект единственного члена в модели равен 0, потому что . В модели 9 у вас есть в тех областях, где нет вклада гауссианцев . Поскольку - экспоненциальная функция, вы получаете это наложение на общий эффект от .f1(x)wf1(x)×0=0f1(x)×1=f1(x)wf1(x)w

Другими словами, модель 5 содержит нулевой тренд везде, где равно 0, но модель 9 включает экспоненциальный тренд везде, где равен 0 (1), на который накладывается эффект переменного коэффициента .w wwww


Это полезный ответ на вопрос 1, спасибо! Выбор сумм 1D-сглаживания или одного 2D-сглаживания выглядит примерно (опять же, приблизительно ) аналогично основным эффектам и взаимодействиям в стандартном линейном моделировании. Но это делает существование byпараметра еще более озадачивающим.
JDobres

Сейчас я добавил кое-что в Q2, которое, надеюсь, объясняет, что делают эти модели. Я сейчас посмотрю на Q3.
Восстановить Монику - Г. Симпсон

Я думаю, что ответ на вопрос 3 - это просто вопрос арифметического взаимодействия с частью моделей с переменным коэффициентом в 5 и 9.
Восстановите Монику - Г. Симпсон

Очень полезно! Чтобы прояснить вопрос Q2, вы говорите, что предиктор, представленный в аргументе «по», по существу становится дополнительным коэффициентом для результата сглаженного предиктора? Я подозреваю, что моя интуиция неверна, так как это должно привести к тому, что Модель 5 будет похожа на Модель 2.
jdobres

В M2 у вас есть а в M5 у вас есть , первый из которых является гладким от , а второй говорит, что линейный эффект изменяется как гладкая функция от . Это совсем другое; Обратите внимание, что в 5 эффект является линейным (при > 10 уменьшение не происходит ), но линейность изменяется плавно через . В M2 у вас плавный эффект . α + f 1 ( x ) w w w x w w x wα+f1(w)α+f1(x)wwwxwwxw
Восстановить Монику - Г. Симпсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.