Узагальнені моделі добавок (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 забезпечує, що гладка функція помножується на [ковариант, заданий в аргументі "на"]. Тож чи не повинні Моделі 5 та 6 бути еквівалентними?

Моделі 7 і 8 використовують один з предикторів як лінійний термін. Це має для мене інтуїтивний сенс, оскільки вони просто роблять те, що робитиме ГЛМ з цими прогнозами, а потім додають ефект до решти моделі.

Нарешті, Модель 9 така ж, як і модель 5, за винятком того, що xвона згладжена "на" w2(що є w + 1). Для мене тут дивно, що відсутність нулів у w2надзвичайно різному впливає на взаємодію "від".

Отже, мої запитання такі:

  • Чим відрізняються технічні характеристики в моделях 3 і 4? Чи є якийсь інший приклад, який би чіткіше зрозумів різницю?
  • Що, саме, "тут" роблять? Багато з того, що я читав у книзі Вуда та на цьому веб-сайті, говорить про те, що "від" дає мультиплікативний ефект, але у мене виникають труднощі зрозуміти його інтуїцію.
  • Чому могла бути така помітна різниця між Моделями 5 та 9?

Представляємо далі, написане Р.

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)

Тут мало антисоціальних людей, щоб використовувати пакет підрядів як залежність від репрексу; Я використовую досить багато цих пакетів, і все ж мені потрібен був встановити fest просто для запуску вашого коду. Мінімальний , тобто перелік лише необхідних пакетів, був би кориснішим. Це сказав, дякую за репрекс; Я зараз його запускаю
Відновіть Моніку - Г. Сімпсон

Відповіді:


11

Q1 Яка різниця між моделями 3 та 4?

Модель 3 - суто адитивна модель

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

αxw

Модель 4 - це плавна взаємодія двох безперервних змінних

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

wxxwf1(x)predict()xwtype = 'terms'predict()s(x)

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)+ε

f3xwf3

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()Модель містить тільки два параметри гладкості, один на граничній основі.

www2

Q2 Що саме тут робиться "за допомогою"?

bybybywwx

y=α+f1(x)w+ε

xβ1wwxx

Q3 Чому може існувати така помітна різниця між моделями 5 та 9?

f1(x)wf1(x)×0=0f1(x)×1=f1(x)wf1(x)w

www


Це корисна відповідь на Q1, дякую! Вибір суми 1D гладких або однієї двовимірної гладкої здається приблизно (знову ж таки, приблизно ) аналогічним основним ефектам порівняно з взаємодіями в стандартному лінійному моделюванні. Але це робить існування byпараметра ще більш неприємним.
jdobres

Зараз я додав щось у Q2, що, сподіваємось, пояснює, чим займаються ці моделі. Я зараз погляну на Q3.
Відновіть Моніку - Г. Сімпсон

Я думаю, що відповідь на Q3 - це просто просте питання про арифметику, яка взаємодіє з тим, яка частина коефіцієнтів змінюється в моделях у 5 та 9.
Відновіть Моніку - Г. Сімпсон

Дуже корисний! Щоб уточнити Q2, ви хочете сказати, що передбачений в аргументі "за" прогноз по суті стає додатковим коефіцієнтом для результату згладженого прогноктора? Я підозрюю, що моя інтуїція неправильна, тому що це повинно призвести до того, що модель 5 виглядає схоже на модель 2.
jdobres

α+f1(w)α+f1(x)wwwxwwxw
Відновіть Моніку - Г. Сімпсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.