Creo que puedes configurar tu modelo base, es decir, el que tiene tus 12 IVs y luego usar add1()
con los restantes predictores. Así, digamos que se tiene un modelo mod1
definido como mod1 <- lm(y ~ 0+x1+x2+x3)
( 0+
significa sin intercepción ), entonces
add1(mod1, ~ .+x4+x5+x6, test="F")
añadirá y probará un predictor tras otro sobre el modelo base.
En términos más generales, si se sabe de antemano que un conjunto de variables debe incluirse en el modelo (esto puede resultar de un conocimiento previo, o de lo que sea), se puede utilizar step()
o stepAIC()
(en el MASS
) y mira el scope=
argumento.
He aquí una ilustración, en la que especificamos a priori la relación funcional entre el resultado, $y$ y los predictores, $x_1, x_2, \dots, x_{10}$ . Queremos que el modelo incluya los tres primeros predictores, pero que la selección de otros predictores se haga por regresión escalonada:
set.seed(101)
X <- replicate(10, rnorm(100))
colnames(X) <- paste("x", 1:10, sep="")
y <- 1.1*X[,1] + 0.8*X[,2] - 0.7*X[,5] + 1.4*X[,6] + rnorm(100)
df <- data.frame(y=y, X)
# say this is one of the base model we think of
fm0 <- lm(y ~ 0+x1+x2+x3+x4, data=df)
# build a semi-constrained stepwise regression
fm.step <- step(fm0, scope=list(upper = ~ 0+x1+x2+x3+x4+x5+x6+x7+x8+x9+x10,
lower = ~ 0+x1+x2+x3), trace=FALSE)
summary(fm.step)
Los resultados se muestran a continuación:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
x1 1.0831 0.1095 9.888 2.87e-16 ***
x2 0.6704 0.1026 6.533 3.17e-09 ***
x3 -0.1844 0.1183 -1.558 0.123
x6 1.6024 0.1142 14.035 < 2e-16 ***
x5 -0.6528 0.1029 -6.342 7.63e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.004 on 95 degrees of freedom
Multiple R-squared: 0.814, Adjusted R-squared: 0.8042
F-statistic: 83.17 on 5 and 95 DF, p-value: < 2.2e-16
Puede ver que $x_3$ se ha mantenido en el modelo, incluso si resulta ser no significativo (bueno, las advertencias habituales con las pruebas univariadas en el entorno de la regresión múltiple y la selección del modelo se aplican aquí - al menos, su relación con $y$ no se ha especificado).