Dans la régression progressive pas à pas, je spécifie un modèle minimal et un ensemble de variables à ajouter (ou à ne pas ajouter):
min.model = lm(y ~ 1)
fwd.model = step(min.model, direction='forward', scope=(~ x1 + x2 + x3 + ...))
Existe-t-il un moyen de spécifier l'utilisation de toutes les variables dans une matrice/data.frame, afin que je n'ai pas à les énumérer?
Exemples illustrant ce que j'aimerais faire, mais ils ne fonctionnent pas:
# 1
fwd.model = step(min.model, direction='forward', scope=(~ ., data=my.data.frame))
# 2
min.model = lm(y ~ 1, data=my.data.frame)
fwd.model = step(min.model, direction='forward', scope=(~ .))
scope
s'attend (en citant la page d'aide ?step
)
soit une formule unique, soit une liste contenant composants «supérieur» et «inférieur», les deux formules. Voir le détails pour savoir comment spécifier les formules et comment elles sont utilisé.
Vous pouvez extraire et utiliser la formule correspondant à "~". comme ça:
> my.data.frame=data.frame(y=rnorm(20),foo=rnorm(20),bar=rnorm(20),baz=rnorm(20))
> min.model = lm(y ~ 1, data=my.data.frame)
> biggest <- formula(lm(y~.,my.data.frame))
> biggest
y ~ foo + bar + baz
> fwd.model = step(min.model, direction='forward', scope=biggest)
Start: AIC=0.48
y ~ 1
Df Sum of Sq RSS AIC
+ baz 1 2.5178 16.015 -0.44421
<none> 18.533 0.47614
+ foo 1 1.3187 17.214 0.99993
+ bar 1 0.4573 18.075 1.97644
Step: AIC=-0.44
y ~ baz
Df Sum of Sq RSS AIC
<none> 16.015 -0.44421
+ foo 1 0.41200 15.603 1.03454
+ bar 1 0.20599 15.809 1.29688
>