So wählen Sie den Typ der GAM-Parameter

9

Ich habe begonnen, mit GAM in R zu arbeiten, und ich habe Simon Woods ausgezeichnetes Buch zum Thema ( "Generalisierte additive Modelle Eine Einführung mit R" ) erworben. Anhand eines seiner Beispiele betrachte ich Folgendes:

library(mgcv)
data(trees)
ct1<-gam(log(Volume) ~ Height + s(Girth), data=trees)

Ich habe zwei allgemeine Fragen zu diesem Beispiel:

  1. Wie entscheidet man, wann eine Variable in der Modellschätzung parametrisch sein soll (z. B. Höhe) oder wann sie glatt sein soll (z. B. Umfang)? Hat einer einen Vorteil gegenüber dem anderen und gibt es eine Möglichkeit zu bestimmen, welcher Typ für eine Variable optimal ist? Wenn jemand Literatur zu diesem Thema hat, würde ich mich freuen, davon zu erfahren.

  2. Sagen , dass ich bei den Gewichten der näher betrachten möchten ct1: ct1$coefficients. Kann ich sie verwenden, wenn das gamVerfahren sie ausgibt, oder muss ich sie transformieren, bevor ich sie analysiere, wenn ich dazu passe log(Volume)? Im letzteren Fall müsste ich wohl verwendenexp (ct1$coefficients)

Billy Jean
quelle
2
Wenn Sie von der wissenschaftlichen Theorie eine bestimmte parametrische Beziehung erwarten, verwenden Sie diese als Modell, andernfalls verwenden Sie ein nicht parametrisches Modell. Beachten Sie, dass mgcv Glätter auf eine lineare oder sogar konstante Beziehung verkleinern kann.
Roland
1
Nein, Sie potenzieren die Koeffizienten nicht. log (y) = a + bx -> y = exp (a) * exp (x) ^ b
Roland

Antworten:

9

Ich gehe davon aus, dass dies in der 2. Ausgabe von Simons Buch (die in ein paar Tagen erscheinen sollte) besser erklärt wird, da er und seine Schüler nur einen Teil der Theorie für diese Jahre ausgearbeitet haben, nachdem Simon sein Buch geschrieben hat.

Was Marra & Wood (2011) gezeigt hat, war, dass, wenn wir ein Modell mit glatten Begriffen auswählen möchten, ein sehr guter Ansatz darin besteht, allen glatten Begriffen eine zusätzliche Strafe hinzuzufügen. Diese zusätzliche Strafe arbeitet mit der Glättungsstrafe für diesen Begriff zusammen, um sowohl die Wackeligkeit des Begriffs als auch die Frage zu steuern, ob ein Begriff überhaupt im Modell enthalten sein sollte.

Wenn Sie also keine gute Theorie haben, um entweder glatte oder lineare / parametrische Formen / Effekte für die Kovariaten anzunehmen, können Sie sich dem Problem so nähern, dass Sie zwischen allen Modellen (darstellbar durch die additive Kombination linearer Kombinationen der Basisfunktionen) zwischen eins mit wählen Glättungen jeder Kovariate bis zu einem Modell, das nur einen Achsenabschnitt enthält.

Zum Beispiel:

library(mgcv)
data(trees)
ct1 <- gam(log(Volume) ~ s(Height) + s(Girth), data=trees, method = "REML", select = TRUE)

> summary(ct1)

Family: gaussian 
Link function: identity 

Formula:
log(Volume) ~ s(Height) + s(Girth)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.27273    0.01492   219.3   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Approximate significance of smooth terms:
            edf Ref.df      F  p-value    
s(Height) 0.967      9  3.249 3.51e-06 ***
s(Girth)  2.725      9 75.470  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

R-sq.(adj) =  0.975   Deviance explained = 97.8%
-REML = -23.681  Scale est. = 0.0069012  n = 31

Bei der Betrachtung der Ausgabe (insbesondere im Abschnitt Parametrische Koeffizienten ) stellen wir fest, dass beide Begriffe von hoher Bedeutung sind. Beachten Sie jedoch den effektiven Wert für die Freiheitsgrade für die Glättung von Height; es ist ~ 1. Was diese Tests bewirken, wird in Wood (2013) erklärt.

Dies legt mir nahe, dass Heightdas Modell als linearer parametrischer Term eingegeben werden sollte. Wir können dies bewerten, indem wir die angepasste Glatte zeichnen:

> plot(ct1, select = 1, shade = TRUE, scale = 0, seWithMean = TRUE)

was gibt:

Passend glatt

Dies zeigt deutlich, dass die ausgewählte Form des Effekts von Heightlinear ist.

Wenn Sie dies jedoch nicht im Voraus gewusst haben (und dies auch nicht, weil Sie die Frage sonst nicht gestellt hätten), können Sie das Modell jetzt nicht mit nur einem linearen Begriff für an diese Daten anpassen Height. Das würde Ihnen echte Probleme mit der Schlussfolgerung auf der ganzen Linie verursachen. Die Ausgabe in summary()hat die Tatsache berücksichtigt, dass Sie diese Auswahl getroffen haben. Wenn Sie das Modell mit einem linearen parametrischen Effekt von Heightumrüsten, würde die Ausgabe dies nicht wissen und Sie würden zu optimistische p-Werte erhalten.

Wie bei Frage 2, wie bereits in den Kommentaren erwähnt, nein, potenzieren Sie die Koeffizienten aus diesem Modell nicht. Tauchen Sie auch nicht in angepasste Modelle ein, da der Inhalt dieser Komponenten nicht immer den Erwartungen entspricht. Verwenden Sie stattdessen die Extraktionsfunktionen. in diesem Fall coef().

Später in diesem Buch, wenn Simon zu GLMs und GAMs gelangt, wird er diese Daten über ein Gamma-GLM modellieren:

ct1 <- gam(Volume ~ Height + s(Girth), data=trees, method = "REML",
           family = Gamma(link = "log"))

In diesem Modell könnten die Koeffizienten potenziert werden, um einen Teileffekt zu erzielen, da die Anpassung auf der Skala des linearen Prädiktors (auf der logarithmischen Skala) erfolgt. Sie sollten sie jedoch besser verwenden predict(ct1, ...., type = "response"), um angepasste Werte / Vorhersagen auf der Skala zurückzugewinnen Skala der Antwort (in m ^ 3).


Marra, G. & Wood, SN Praktische Variablenauswahl für verallgemeinerte additive Modelle. Comput. Stat. Daten Anal. 55, 2372–2387 (2011).

Wood, SN On p-Werte für glatte Komponenten eines erweiterten verallgemeinerten additiven Modells. Biometrika 100, 221–228 (2013).

Gavin Simpson
quelle
Wenn Sie sagen "Sie können das Modell jetzt nicht mit nur einem linearen Ausdruck für die Höhe an diese Daten anpassen", hängt dies mit Inferenzproblemen zusammen. Was ist, wenn Sie sich hauptsächlich mit Vorhersage befassen? Ist es aus rechnerischen Gründen sinnvoll, in diesem Fall einen linearen Begriff zu verwenden?
TAS
1
@TAS Ja, wenn Sie nur an Vorhersagen interessiert sind, können Sie diese einfach als lineares Modell umrüsten. Ich sollte hinzufügen, dass, wenn Sie die zusätzliche Strafe hinzugefügt haben, das Modell technisch nicht mit dem linearen Modell identisch ist, da der lineare Term im GAM bestraft / verkleinert wurde.
Gavin Simpson