Modelli di additivi generalizzati (GAM), interazioni e covariate


12

Ho esplorato una serie di strumenti per le previsioni e ho scoperto che i modelli di additivi generalizzati (GAM) hanno il massimo potenziale per questo scopo. I GAM sono fantastici! Consentono di specificare in modo molto succinto modelli complessi. Tuttavia, quella stessa sintonia mi sta creando confusione, in particolare per quanto riguarda il modo in cui i GAM concepiscono termini di interazione e covariate.

Considera un set di dati di esempio (codice riproducibile alla fine del post) in cui yè una funzione monotonica perturbata da un paio di gaussiani, oltre ad alcuni rumori:

inserisci qui la descrizione dell'immagine

Il set di dati ha alcune variabili predittive:

  • x: L'indice dei dati (1-100).
  • w: Una funzione secondaria che segna le sezioni in ycui è presente un gaussiano. wha valori compresi tra 1 xe 20, compresi tra 11 e 30 e tra 51 e 70. Altrimenti, wè 0.
  • w2: w + 1, in modo che non ci siano 0 valori.

Il mgcvpacchetto di R rende semplice specificare un numero di possibili modelli per questi dati:

inserisci qui la descrizione dell'immagine

I modelli 1 e 2 sono abbastanza intuitivi. La previsione ysolo dal valore dell'indice nella xlevigatezza predefinita produce qualcosa di vagamente corretto, ma troppo regolare. Prevedere ysolo dai wrisultati in un modello del "gaussiano medio" presente ye nessuna "consapevolezza" degli altri punti dati, che hanno tutti un wvalore di 0.

Il modello 3 usa entrambi xe wcome smooth 1D, producendo una buona vestibilità. Il modello 4 utilizza xe win un 2D liscio, dando anche una buona vestibilità. Questi due modelli sono molto simili, sebbene non identici.

Modelli modello 5 x"by" w. Il modello 6 fa il contrario. mgcvLa documentazione afferma che "l'argomento by assicura che la funzione smooth venga moltiplicata per [la covariata fornita nell'argomento 'by']". Quindi i modelli 5 e 6 non dovrebbero essere equivalenti?

I modelli 7 e 8 usano uno dei predittori come termine lineare. Questi hanno un senso intuitivo per me, poiché stanno semplicemente facendo ciò che un GLM farebbe con questi predittori, e quindi aggiungendo l'effetto al resto del modello.

Infine, il Modello 9 è uguale al Modello 5, tranne per il fatto che xviene smussato "da" w2(che è w + 1). La cosa strana per me qui è che l'assenza di zeri in w2produce un effetto notevolmente diverso nell'interazione "by".

Quindi, le mie domande sono queste:

  • Qual è la differenza tra le specifiche nei modelli 3 e 4? C'è qualche altro esempio che evidenzierebbe la differenza più chiaramente?
  • Cosa sta facendo esattamente "by" qui? Gran parte di ciò che ho letto nel libro di Wood e in questo sito web suggerisce che "by" produce un effetto moltiplicativo, ma ho difficoltà a comprenderne l'intuizione.
  • Perché ci sarebbe una differenza così notevole tra i modelli 5 e 9?

Segue Reprex, scritto in 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)

È un po 'anti-sociale per la gente qui usare il pacchetto tidyverse come dipendenza del reprex; Uso parecchi di questi pacchetti e ho ancora bisogno di un fest di installazione solo per eseguire il tuo codice. Minimo , ovvero elencare solo i pacchetti necessari, sarebbe stato più utile. Detto questo, grazie per il reprex; Lo sto eseguendo ora
Reinstate Monica - G. Simpson l'

Risposte:


11

Q1 Qual è la differenza tra i modelli 3 e 4?

Il modello 3 è un modello puramente additivo

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

αxw

Il modello 4 è un'interazione regolare di due variabili continue

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

inserisci qui la descrizione dell'immagine

In un certo senso, il modello 4 è adatto

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

f3xwf3

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

ma nota questo stima 4 parametri di scorrevolezza:

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

Il te()modello contiene solo due parametri di levigatezza, uno per base marginale.

www2

Q2 Cosa sta facendo esattamente "by" qui?

bybybywwx

y=α+f1(x)w+ε

xβ1wwxx

Q3 Perché ci sarebbe una differenza così notevole tra i modelli 5 e 9?

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

www


Questa è una risposta utile a Q1, grazie! La scelta di somme di smooth 1D o di single smooth 2D sembra approssimativamente (di nuovo, approssimativamente ) analoga agli effetti principali rispetto alle interazioni nella modellazione lineare standard. Ma ciò rende byancora più sconcertante l'esistenza del parametro.
jdobres,

Ho aggiunto qualcosa su Q2 ora, che si spera spieghi cosa stanno facendo quei modelli. Adesso guarderò al terzo trimestre.
Ripristina Monica - G. Simpson,

Penso che la risposta a Q3 sia solo una semplice questione di interazione aritmetica con ciò che la parte a coefficiente variabile dei modelli in 5 e 9.
Reinstate Monica - G. Simpson,

Molto utile! Per chiarire Q2, stai dicendo che il predittore fornito nell'argomento "by" diventa essenzialmente un coefficiente aggiuntivo per il risultato del predittore livellato? Ho il sospetto che la mia intuizione sia sbagliata, poiché dovrebbe portare la Model 5 ad assomigliare alla Model 2.
jdobres,

α+f1(w)α+f1(x)wwwxwwxw
Ripristina Monica - G. Simpson l'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.