Modelos aditivos generalizados (GAM), interacciones y covariables

12

He estado explorando una serie de herramientas para pronosticar, y he encontrado que los Modelos Aditivos Generalizados (GAM) tienen el mayor potencial para este propósito. ¡Los GAM son geniales! Permiten especificar modelos complejos de manera muy sucinta. Sin embargo, esa misma brevedad me está causando cierta confusión, específicamente con respecto a cómo los GAM conciben términos de interacción y covariables.

Considere un conjunto de datos de ejemplo (código reproducible al final de la publicación) en el que yes una función monotónica perturbada por un par de gaussianos, más algo de ruido:

ingrese la descripción de la imagen aquí

El conjunto de datos tiene algunas variables predictoras:

  • x: El índice de los datos (1-100).
  • w: Una característica secundaria que marca las secciones de ydonde está presente un gaussiano. wtiene valores de 1-20 donde xestá entre 11 y 30, y 51 a 70. De lo contrario, wes 0.
  • w2: w + 1para que no haya valores 0.

El mgcvpaquete de R facilita la especificación de una serie de modelos posibles para estos datos:

ingrese la descripción de la imagen aquí

Los modelos 1 y 2 son bastante intuitivos. Predecir ysolo a partir del valor del índice en la xsuavidad predeterminada produce algo vagamente correcto, pero demasiado suave. Predecir ysolo a partir de los wresultados en un modelo del "promedio gaussiano" presente en y, y sin "conocimiento" de los otros puntos de datos, todos los cuales tienen un wvalor de 0.

El modelo 3 usa ambos xy wcomo suaviza 1D, produciendo un buen ajuste. El modelo 4 utiliza xy wen un 2D suave, también dando un buen ajuste. Estos dos modelos son muy similares, aunque no idénticos.

Modelo 5 modelos x"por" w. El modelo 6 hace lo contrario. mgcvLa documentación indica que "el argumento by asegura que la función suave se multiplique por [la covariable dada en el argumento 'by']". Entonces, ¿no deberían ser equivalentes los modelos 5 y 6?

Los modelos 7 y 8 usan uno de los predictores como un término lineal. Estos tienen un sentido intuitivo para mí, ya que simplemente están haciendo lo que un GLM haría con estos predictores, y luego agregan el efecto al resto del modelo.

Por último, el Modelo 9 es el mismo que el Modelo 5, excepto que xse suaviza "por" w2(que es w + 1). Lo que me resulta extraño aquí es que la ausencia de ceros en w2produce un efecto notablemente diferente en la interacción "por".

Entonces, mis preguntas son estas:

  • ¿Cuál es la diferencia entre las especificaciones en los modelos 3 y 4? ¿Hay algún otro ejemplo que destaque la diferencia más claramente?
  • ¿Qué es exactamente "haciendo" aquí? Gran parte de lo que he leído en el libro de Wood y en este sitio web sugiere que "por" produce un efecto multiplicador, pero tengo problemas para comprender su intuición.
  • ¿Por qué habría una diferencia tan notable entre los modelos 5 y 9?

Reprex sigue, escrito en 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)
jdobres
fuente
Es un poco antisocial para la gente aquí usar el paquete tidyverse como una dependencia del reprex; Utilizo bastantes de esos paquetes y aún así requería un festival de instalación solo para ejecutar su código. Mínimo , es decir, enumerar solo los paquetes necesarios, habría sido más útil. Dicho esto, gracias por el reprex; Solo lo estoy ejecutando ahora
Vuelva a instalar a Monica - G. Simpson el

Respuestas:

11

Q1 ¿Cuál es la diferencia entre los modelos 3 y 4?

El modelo 3 es un modelo puramente aditivo.

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

αxw

El modelo 4 es una interacción fluida de dos variables continuas.

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')

ingrese la descripción de la imagen aquí

En cierto sentido, el modelo 4 se ajusta

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

f3xwf3

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

pero tenga en cuenta que esto estima 4 parámetros de suavidad:

  1. x
  2. w
  3. x
  4. w

El te()modelo contiene solo dos parámetros de suavidad, uno por base marginal.

www2

Q2 ¿Qué es exactamente "haciendo" aquí?

bybybywwx

y=α+f1(x)w+ε

xβ1wwxx

Q3 ¿Por qué habría una diferencia tan notable entre los modelos 5 y 9?

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

www

Restablece a Mónica - G. Simpson
fuente
Esa es una respuesta útil para Q1, ¡gracias! La elección de sumas de suavizados 1D o un suavizado 2D simple parece más o menos análogamente a los efectos principales frente a las interacciones en el modelado lineal estándar. Pero esto hace que la existencia del byparámetro sea aún más desconcertante.
jdobres
Agregué algo en el segundo trimestre ahora, que con suerte explica lo que están haciendo esos modelos. Veré la Q3 ahora.
Restablecer Monica - G. Simpson
Creo que la respuesta a Q3 es solo un simple problema de interacción aritmética con la parte de coeficiente variable de los modelos en 5 y 9.
Reinstalar a Monica - G. Simpson
¡Muy útil! Para aclarar Q2, ¿está diciendo que el predictor proporcionado en el argumento "por" se convierte esencialmente en un coeficiente adicional para el resultado del predictor suavizado? Sospecho que mi intuición es incorrecta, ya que debería llevar al Modelo 5 a parecerse al Modelo 2.
jdobres
α+f1(w)α+f1(x)wwwxwwxw
Reinstale a Monica - G. Simpson el