2 votos

¿Cómo se selecciona el mejor entre varios modelos lineales?

Estoy aprendiendo regresión lineal con el conjunto de datos Carseats. He revisado los datos, los he limpiado, he codificado las variables ficticias y he comprobado la colinealidad.

El conjunto de datos tiene 400 observaciones sobre ventas de Asientos de coche con información sobre Ventas, CompPrecio, Ingresos, Publicidad, Población, Precio, Edad y Educación.

Tengo problemas para averiguar qué modelo es el mejor para predecir las ventas.

Inicializar el conjunto de datos

library('ISLR')
data(Carseats)
attach(Carseats)

Resumen sobre los conjuntos de datos:

Original dataset: Carseats 
Scaled Predictors: Carseats_S
Scaled Predictors and Encoded Categoricals: Carseats_SD 

Aquí están mis modelos

fit1 <- lm(Sales~., data=Carseats_SD)
fit2 <- lm(Sales~., data=Carseats)
fit3 <- lm(Sales~., data=Carseats_N)
fit4 <- lm(Sales~., data=Carseats_NSD)
fit5 <- lm(Sales~.+(Price*CompPrice), data=Carseats_SD)
fit6 <- lm(Sales~Price+Income+Advertising+Age, data=Carseats_SD)
fit7 <- lm(Sales~Price+Income+Advertising+Age+ShelveLoc_Bad+ShelveLoc_Good+ShelveLoc_Medium, data=Carseats_SD)
fit8 <- lm(Sales~.-CompPrice, data=Carseats_SD)
fit9 <- lm(Sales~.-Age-Education-Income-age_segment_old-age_segment_young-age_segment_middle_aged-Advertising, data=Carseats_NSD)
fit10 <- lm(Sales~Price+ShelveLoc_Good, data=Carseats_SD)
fit11 <- lm(Sales~Price+ShelveLoc_Good+Education+Advertising, data=Carseats_SD)
fit12 <- lm(Sales~.-ShelveLoc_Bad-ShelveLoc_Medium, data=Carseats_SD)

Y aquí está la salida con información de diagnóstico

   id LOOCV_MSE Validation_MSE 5Fold_MSE 10Fold_MSE  FStat Adjusted_R2    RSS     AIC     BIC
1   1      0.13           0.00      0.14       0.13 243.37        0.87  50.51  333.42  385.31
2   2      1.07           0.01      1.07       1.06 243.37        0.87 402.83 1163.97 1215.86
3   3      1.10           0.00      1.10       1.11 140.21        0.87 397.25 1174.39 1258.21
4   4      0.14           0.00      0.14       0.14 140.21        0.87  49.81  343.84  427.66
5   5      0.13           0.00      0.14       0.14 222.99        0.87  50.41  334.67  390.55
6   9      0.18           0.00      0.18       0.18 129.78        0.83  65.74  446.84  514.69
7  12      0.22           0.00      0.22       0.22 150.73        0.79  81.85  524.52  572.41
8   7      0.30           0.00      0.30       0.30 158.33        0.70 116.76  658.61  690.54
9   8      0.31           0.00      0.31       0.31  95.25        0.70 115.70  662.95  710.85
10 11      0.47           0.00      0.47       0.47 115.42        0.53 183.97  836.48  860.43
11 10      0.54           0.00      0.54       0.54 175.96        0.47 211.51  888.27  904.24
12  6      0.64           0.00      0.66       0.64  58.21        0.36 251.03  960.79  984.74

Para empezar, hice estos modelos basándome en probar términos de interacción, utilizando diferentes ajustes en el conjunto de datos y probando variables basándome en la mejor selección de subconjuntos.

Los gráficos de diagnóstico de los modelos tienen buen aspecto. No indican heteroscedasticidad, términos de error correlacionados, valores atípicos ni relaciones no lineales.

¿Cómo elegir el mejor modelo?

0voto

roberto Puntos 1

Si el objetivo principal es la predicción, el objetivo principal es minimizar el error. Dado que se trata de un problema de regresión y no se dispone de un conjunto de pruebas, la mejor alternativa es el CV (LOOCV) utilizando una medida estándar como el MSE. Nota: LOOCV converge asintóticamente a la puntuación de log verosimilitud, que puede obtener fácilmente de un modelo lineal utilizando la función anova. En su caso, los mejores modelos (que minimizan MSE LOOCV) son 1, 4 ó 5. Normalmente, se elige el modelo más sencillo cuando hay muchas opciones.

No tiene que preocuparse por el diagnóstico si su objetivo principal es la predicción, pero sería importante si su objetivo es la interpretación.

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