Gibt es eine Möglichkeit, die variable Auswahl eines GAM in R zu automatisieren, ähnlich wie bei Schritt? Ich habe die Dokumentation von step.gam
und selection.gam
gelesen, aber ich habe noch eine Antwort mit Code, der funktioniert. Zusätzlich habe ich versucht method= "REML"
und select = TRUE
, aber entfernen Sie keine unbedeutenden Variablen aus dem Modell.Variablenauswahl mit mgcv
Ich habe theoretisiert, dass ich ein Schrittmodell erstellen und dann diese Variablen verwenden konnte, um das GAM zu erstellen, aber das scheint nicht rechnerisch effizient zu sein.
Beispiel:
library(mgcv)
set.seed(0)
dat <- data.frame(rsp = rnorm(100, 0, 1),
pred1 = rnorm(100, 10, 1),
pred2 = rnorm(100, 0, 1),
pred3 = rnorm(100, 0, 1),
pred4 = rnorm(100, 0, 1))
model <- gam(rsp ~ s(pred1) + s(pred2) + s(pred3) + s(pred4),
data = dat, method = "REML", select = TRUE)
summary(model)
#Family: gaussian
#Link function: identity
#Formula:
#rsp ~ s(pred1) + s(pred2) + s(pred3) + s(pred4)
#Parametric coefficients:
# Estimate Std. Error t value Pr(>|t|)
#(Intercept) 0.02267 0.08426 0.269 0.788
#Approximate significance of smooth terms:
# edf Ref.df F p-value
#s(pred1) 0.8770 9 0.212 0.1174
#s(pred2) 1.8613 9 0.638 0.0374 *
#s(pred3) 0.5439 9 0.133 0.1406
#s(pred4) 0.4504 9 0.091 0.1775
---
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#R-sq.(adj) = 0.0887 Deviance explained = 12.3%
#-REML = 129.06 Scale est. = 0.70996 n = 100
In einigen der anderen Datensätzen Ich verwende, habe ich nach oben von zehn Variablen (die Ich stelle fest, dass das im Statistikplan nicht so viele sind, und ich würde gerne einige Variablen reduzieren, ohne die Macht vorherzusagen. – IJH
Ich stimme, diese Frage als Off-Topic zu schließen, weil es nicht um Programmierung geht, sondern um Statistiken (Modellauswahl) –