7 votos

Regresión múltiple sin origen y con una combinación de variables introducidas directamente y por pasos utilizando R

Estoy ejecutando una ecuación de regresión y quiero introducir 12 variables independientes y luego introducir por pasos otras 7 variables independientes y no tener un origen.

  • DV es shfl .

  • Quiero introducir las siguientes 12 variables ficticias independientes ajan bfeb cmar dapr emay fjun gjul haug isep joct knov ldec

  • Y luego quiero entrar de forma escalonada slag6 slag7 slag8 slag9 slag10 slag11 slag12

  • Y por último, quiero que no haya origen.

He hecho regresión simple, pero nada como esto que entra en las variables primarias y paso entra varios más.

  • ¿Cómo se puede especificar un modelo de este tipo utilizando R?

7voto

DavLink Puntos 101

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).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X