Generalisierte additive Modelle (GAMs), Wechselwirkungen und Kovariaten

12

Ich habe eine Reihe von Prognosewerkzeugen untersucht und festgestellt, dass generalisierte additive Modelle (GAMs) für diesen Zweck das größte Potenzial haben. GAMs sind großartig! Sie ermöglichen es, komplexe Modelle sehr präzise zu spezifizieren. Diese Prägnanz führt jedoch zu einigen Verwirrungen, insbesondere in Bezug darauf, wie GAMs Interaktionsterme und Kovariaten auffassen.

Betrachten Sie einen Beispieldatensatz (reproduzierbarer Code am Ende des Beitrags), in dem yeine monotone Funktion enthalten ist, die von ein paar Gaußschen gestört wird, plus etwas Rauschen:

Bildbeschreibung hier eingeben

Der Datensatz enthält einige Prädiktorvariablen:

  • x: Der Index der Daten (1-100).
  • w: Ein sekundäres Merkmal, das die Abschnitte yangibt, in denen sich ein Gaußscher befindet. what Werte von 1-20, wobei xzwischen 11 und 30 und 51 bis 70 liegt. Andernfalls wist 0.
  • w2: w + 1, damit es keine 0-Werte gibt.

Das mgcvPaket von R macht es einfach, eine Reihe möglicher Modelle für diese Daten anzugeben:

Bildbeschreibung hier eingeben

Die Modelle 1 und 2 sind ziemlich intuitiv. Wenn Sie ynur anhand des Indexwerts in xder Standardglätte vorhersagen, wird etwas vage Richtiges, aber zu Glattes erzeugt. Das Vorhersagen erfolgt ynur anhand von wErgebnissen in einem Modell des "durchschnittlichen Gaußschen", das in vorhanden ist y, und ohne "Kenntnis" der anderen Datenpunkte, die alle den wWert 0 haben.

Modell 3 verwendet beides xund wals 1D-Glättung, was eine gute Passform ergibt. Modell 4 verwendet xund win einer 2D glatt, auch eine schöne Passform. Diese beiden Modelle sind sehr ähnlich, aber nicht identisch.

Modell 5 Modelle x"von" w. Modell 6 macht das Gegenteil. mgcvIn der Dokumentation heißt es: "Das Argument by stellt sicher, dass die Glättungsfunktion mit [der im Argument 'by' angegebenen Kovariate] multipliziert wird." Sollten die Modelle 5 und 6 nicht gleichwertig sein?

Die Modelle 7 und 8 verwenden einen der Prädiktoren als linearen Term. Diese machen für mich intuitiv Sinn, da sie einfach das tun, was ein GLM mit diesen Prädiktoren tun würde, und den Effekt dann dem Rest des Modells hinzufügen.

Schließlich ist Modell 9 dasselbe wie Modell 5, mit der Ausnahme, dass x"durch" geglättet wird w2(was ist w + 1). Was mir hier seltsam vorkommt, ist, dass das Fehlen von Nullen w2in der "by" -Interaktion einen bemerkenswert unterschiedlichen Effekt erzeugt.

Meine Fragen lauten also:

  • Was ist der Unterschied zwischen den Spezifikationen in den Modellen 3 und 4? Gibt es ein anderes Beispiel, das den Unterschied deutlicher macht?
  • Was genau macht "by" hier? Vieles von dem, was ich in Woods Buch und auf dieser Website gelesen habe, deutet darauf hin, dass "by" einen multiplikativen Effekt erzeugt, aber ich habe Probleme, die Intuition davon zu verstehen.
  • Warum gibt es einen so großen Unterschied zwischen den Modellen 5 und 9?

Es folgt Reprex, geschrieben 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)
jdobres
quelle
Es ist etwas unsozial für die Leute hier, das Tidyverse- Paket als Abhängigkeit vom Reprex zu verwenden. Ich verwende einige dieser Pakete und benötige trotzdem ein Installationsfest, um Ihren Code auszuführen. Minimal , also nur die benötigten Pakete aufzulisten, wäre sinnvoller gewesen. Das heißt, danke für das reprex; Ich
Wiedereinsetzung von Monica - G. Simpson

Antworten:

11

Q1 Was ist der Unterschied zwischen den Modellen 3 und 4?

Modell 3 ist ein rein additive Modell

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

αxw .

Modell 4 ist ein reibungsloses Zusammenspiel zweier stetiger Variablen

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

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

xw und umgekehrt.

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

Bildbeschreibung hier eingeben

In gewisser Hinsicht passt Modell 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')

Beachten Sie jedoch, dass dies 4 Glättungsparameter schätzt:

  1. x
  2. w
  3. diejenige, die mit der Randglättung von assoziiert istx
  4. derjenige, der mit dem Randglatt von assoziiert ist w

Das te()Modell enthält nur zwei Glättungsparameter, einen pro Randbasis.

www2

F2 Was genau macht "by" hier?

bybybywwx . In Gleichungsbegriffen ist es das, was Sie, sagen wir Modell 5, tun

y=α+f1(x)w+ε

xβ1wwxx

F3 Warum gibt es einen so großen Unterschied zwischen den Modellen 5 und 9?

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

www

Setzen Sie Monica - G. Simpson wieder ein
quelle
Das ist eine hilfreiche Antwort auf Q1, danke! Die Wahl der Summen von 1D-Glättungen oder einer einzelnen 2D-Glättung scheint ungefähr (wieder ungefähr ) analog zu den Haupteffekten gegenüber den Wechselwirkungen bei der linearen Standardmodellierung zu sein. Dies macht die Existenz des byParameters jedoch umso verwirrender.
jdobres
Ich habe jetzt etwas zu Q2 hinzugefügt, was hoffentlich erklärt, was diese Modelle tun. Ich werde jetzt auf Q3 schauen.
Setzen Sie Monica - G. Simpson
Ich denke, die Antwort auf Q3 ist nur eine einfache Frage der Arithmetik, die mit dem Teil der Modelle mit variierenden Koeffizienten in 5 und 9 interagiert.
Setzen Sie Monica - G. Simpson
Sehr hilfreich! Wollen Sie zur Verdeutlichung von Q2 sagen, dass der im Argument "by" angegebene Prädiktor im Wesentlichen zu einem zusätzlichen Koeffizienten für das Ergebnis des geglätteten Prädiktors wird? Ich vermute, dass meine Intuition falsch ist, da dies dazu führen sollte, dass Modell 5 ähnlich wie Modell 2
aussieht
α+f1(w)α+f1(x)wwwxwwxw
Setzen Sie Monica - G. Simpson wieder ein