Я исследовал ряд инструментов для прогнозирования и обнаружил, что Обобщенные аддитивные модели (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
и w
1D, обеспечивая хорошее прилегание. Модель 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)
Ответы:
Q1 В чем разница между моделями 3 и 4?
Модель 3 является чисто аддитивной моделью
таким образом, у нас есть константа плюс эффект сглаживания плюс эффект сглаживания .α Икс вес
Модель 4 - это гладкое взаимодействие двух непрерывных переменных
В практическом смысле Модель 3 говорит, что независимо от того, каково влияние , влияние на ответ одинаково; если мы фиксируем при некотором известном значении и изменяем в некотором диапазоне, вклад в подобранную модель остается неизменным. Проверьте это, если хотите, используя -3 из модели 3 для фиксированного значения и нескольких различных значений, и используйте аргумент метода. Вы увидите постоянный вклад в подогнанные / прогнозируемые значения для .вес Икс x w f1(x)
predict()
x
w
type = 'terms'
predict()
s(x)
Это не относится к модели 4; эта модель говорит, что эффект сглаживания плавно меняется в зависимости от значения и наоборот.x w
Обратите внимание, что если и находятся в одних и тех же единицах или мы не ожидаем одинаковую волнистость в обеих переменных, вы должны использовать их для соответствия взаимодействия.x w
te()
В каком-то смысле модель 4 подходит
где - чистое гладкое взаимодействие «основных» гладких эффектов и , которые были удалены, для удобства идентификации, из основы . Вы можете получить эту модель через xf3 x w f3
но учтите это оценивает 4 параметра гладкости:
te()
Модель содержит только два параметра гладкости, один на предельной основе.Основная проблема всех этих моделей заключается в том, что эффект не является строго гладким; есть разрыв, где эффект падает до 0 (или 1 в ). Это проявляется на ваших графиках (и на том, что я подробно показываю здесь).w w
w2
Q2 Что именно "здесь" делает?
by
Переменные сглаживания могут делать разные вещи в зависимости от того, что вы передаетеby
аргументу. В ваших примерахby
переменная непрерывна. В том случае, что вы получаете модель с переменным коэффициентом. Это модель, в которой линейный эффект плавно меняется с . В терминах уравнения это то, что делает ваша, скажем, модель 5Если это не сразу понятно (это было не для меня, когда я впервые посмотрел на эти модели), для некоторых заданных значений мы оцениваем гладкую функцию при этом значении, и это затем становится эквивалентом ; другими словами, это линейный эффект при данном значении , и эти линейные эффекты плавно меняются вместе с . См. Раздел 7.5.3 во втором издании книги Саймона для конкретного примера, где линейный эффект ковариации изменяет гладкую функцию пространства (широту и долготу).x β1w w x x
Q3 Почему между моделями 5 и 9 такая заметная разница?
Разница между моделями 5 и 9, я думаю, заключается просто в умножении на 0 или умножении на 1. В первом случае эффект единственного члена в модели равен 0, потому что . В модели 9 у вас есть в тех областях, где нет вклада гауссианцев . Поскольку - экспоненциальная функция, вы получаете это наложение на общий эффект от .f1(x)w f1(x)×0=0 f1(x)×1=f1(x) w f1(x) w
Другими словами, модель 5 содержит нулевой тренд везде, где равно 0, но модель 9 включает экспоненциальный тренд везде, где равен 0 (1), на который накладывается эффект переменного коэффициента .w ww w w
источник
by
параметра еще более озадачивающим.