Interpretation der Ergebnisse des Spielmodells

8

Ich passe einige verallgemeinerte additive Modelle mit dem mgcvPaket in R an und möchte zwischen zwei Modellen testen. ob ich einen Begriff entfernen kann oder nicht. Ich bekomme jedoch widersprüchliche Ergebnisse (soweit ich das beurteilen kann).

Ein Modell m1mit einem glatten Begriff für xhinzugefügt scheint eine bessere Anpassung in Bezug auf , AIC, erklärte Abweichung und beim Vergleich der Modelle unter Verwendung eines F-Tests zu ergeben. Die Bedeutung des glatten Terms ist jedoch nicht signifikant (und auch nicht, wenn ich dem Modell eine lineare Kovariate anstelle eines Splines hinzufüge).Radj2

Ist meine Interpretation der Tests mit glatten Begriffen korrekt? Soweit ich die Hilfeseite verstehen konnte, waren die Tests ungefähr, aber hier gibt es einen ziemlich großen Unterschied.

Das Modell gibt aus

m1 <- gam(out ~ s(x) + s(y) + s(z), data=dat)
> summary(m1)
# 
# Family: gaussian 
# Link function: identity 
# 
# Formula:
# out ~ s(x) + s(y) + s(z)
# 
# Parametric coefficients:
#               Estimate Std. Error t value Pr(>|t|)
# (Intercept) -7.502e-16  1.209e-01       0        1
# 
# Approximate significance of smooth terms:
#        edf Ref.df     F  p-value    
# s(x) 4.005  4.716 1.810    0.136    
# s(y) 8.799  8.951 4.032 4.01e-05 ***
# s(z) 7.612  8.526 5.649 4.83e-07 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# R-sq.(adj) =  0.213   Deviance explained = 24.8%
# GCV = 6.9741  Scale est. = 6.6459    n = 455

> AIC(m1)
#[1] 2175.898

> m2 <- gam(out ~ s(y) + s(z), data=dat)
> summary(m2)
# 
# Family: gaussian 
# Link function: identity 
# 
# Formula:
# out ~ s(y) + s(z)
# 
# Parametric coefficients:
#              Estimate Std. Error t value Pr(>|t|)
# (Intercept) 1.705e-15  1.228e-01       0        1
# 
# Approximate significance of smooth terms:
#        edf Ref.df     F  p-value    
# s(y) 8.726  8.968 5.137 6.78e-07 ***
# s(z) 8.110  8.793 5.827 1.55e-07 ***
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# R-sq.(adj) =  0.187   Deviance explained = 21.7%
# GCV =  7.144  Scale est. = 6.8639    n = 455

> AIC(m2)
#[1] 2187.168

> anova(m1, m2, test="F")
# Analysis of Deviance Table
# 
# Model 1: out ~ s(x) + s(y) + s(z)
# Model 2: out ~ s(y) + s(z)
#   Resid. Df Resid. Dev      Df Deviance      F    Pr(>F)    
# 1    433.58     2881.6                                      
# 2    437.16     3000.7 -3.5791   -119.1 5.0073 0.0009864 ***

BEARBEITEN : Modell aus Kommentaren hinzugefügt

> summary(m3 <- gam(out ~ s(x) + s(y) + s(z), data=dat, select=TRUE))

#Family: gaussian 
#Link function: identity 

#Formula:
#out ~ s(x) + s(y) + s(z)

#Parametric coefficients:
#              Estimate Std. Error t value Pr(>|t|)
#(Intercept) -1.588e-14  1.209e-01       0        1

#Approximate significance of smooth terms:
#       edf Ref.df     F  p-value    
#s(x) 4.424      9 1.750  0.00161 ** 
#s(y) 8.260      9 3.623 5.56e-06 ***
#s(z) 7.150      9 5.329 4.19e-09 ***
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

#R-sq.(adj) =  0.212   Deviance explained = 24.7%
#GCV = 6.9694  Scale est. = 6.6502    n = 455
user2957945
quelle
mgcv::gambestraft die Regression. Festlegen select = TRUEund dann Begriffe können während der Anpassung aus dem Modell entfernt werden. Wenn Ihr Ziel jedoch die Vorhersage ist, würde ich empfehlen, unabhängige Trainings- und Testdatensätze oder zumindest eine Kreuzvalidierung zu verwenden.
Roland
Danke Roland. Ich habe hinzugefügt select, bin mir aber noch unsicherer, wie ich das interpretieren soll. Dies führt zu einem Modell mit fast gleichen (etwas schlechteren ) Anpassungsstatistiken in Bezug auf r2, aic usw., aber der p-Wert für den s (x) -Term ist jetzt viel niedriger. Wenn der Parameter also nicht verkleinert wird, ändert sich was.
user2957945
@ user2957945 Können Sie Ihre Frage so bearbeiten, dass sie die Ausgabe des verwendeten Modells enthält select = TRUE?
Gavin Simpson
Hallo @ GavinSimpson, ich habe die Modellausgabe hinzugefügt, danke
user2957945

Antworten:

2

tl; dr: AIC ist prädiktiv, während p-Werte für die Inferenz dienen. Außerdem kann es bei Ihrem Signifikanztest einfach an Leistung mangeln.

s(x)=0

mgcv

x

eric_kernfeld
quelle
Vielen Dank. Eigentlich habe ich mich in meinem Verständnis geirrt. Was ich testen sollte, ist das Modell mit dem s(x)Term und dann das Modell mit x(anstatt nein) x. Die Bedeutung des glatten Terms (oder auf andere Weise) testet standardmäßig, ob eine glatte Kurve im Vergleich zu einer linearen Kurve benötigt wird (anstatt vollständig wegzulassen)
user2957945
Oooh, gut zu wissen!
eric_kernfeld