Estudio de Caso de Regresión Lineal múltiple: Características de un auto que afectan su rendimiento.

Consideré más conveniente dedicar tiempo a llevar a cabo este análisis y no grabarlo a través de un video porque creo que resulta más cómodo y permanente tener un documento que repasar un video. Pero esto puede ser un sesgo generacional.

En muchas ocasiones, el ajuste de un modelo de regresión lineal múltiple es fácil, y más con las herramientas que se tienen disponible actualmente. Sin embargo, la dificultad no está en ajustar el modelo, sino en el proceso de análisis y decisiones que se tienen que tomar en el camino. Las estrategias de modelado, así como la validación de los supuestos y del modelo ajustado pueden ser más relevantes.

En este notebook, se presentará el procedimiento de análisis que yo sugiero para ajustar un modelo de regresión lineal múltiple, siguiendo los pasos delineados previamente en clase con detalle.

Características de autos y rendimiento.

Como ejemplo, se considerará un conjunto de datos que muestra Indicadores de consumo de gasolina en automóviles en México hasta modelos 2018.Los datos disponibles están relacionados con la marca, submarca, modelo, caracteristicas del motor y consumos energéticos en ciudad, carretera y promedio, y con la calificacion de sus emisiones de gas y contaminantes.

El objetivo del análisis es explicar el rendimiento de los autos en función a sus características. Los datos fueron obtenidos de Kagle.

El conjunto de datos consta de las siguientes variables:

  • Marca
  • Submarca
  • Version
  • Modelo = Año de edición del Auto
  • Transmision = Tipo de transmisión del auto (hay 5 niveles de transmisión)
  • Combustible = Tipo de combustible que consume el auto (Diesel o gasolina)
  • Cilindros = Número de cilindros que tiene el vehículo.
  • Potencia = La pontecia del motor (en HP)
  • Tamaño = tamaño del motor en litros
  • Categoria = hay 5 categorías de vehículos, indicación de su segmento de mercado
  • Rend_Ciudad = en km/l
  • Ren_Carretera = en km/l
  • Rend_Comb = en km/l
  • Rend_Ajustado = en km/l
  • CO2 = Dióxido de crabono en g/km
  • NOx = en g/1000km
  • Calificacion_Gas
  • Calificacion_ContamAire

En el siguiente análisis, se seguiran los siguientes pasos:

  1. Definición del problema
  2. Entender los datos y selección inicial de variables potencialmente relevantes
  3. Obtención de datos
  4. Especificación del modelo
  5. Elección del método de ajuste
  6. Ajuste del modelo
  7. Validación y críticas al modelo
  8. Uso del o de los modelos elegidos para la solución del problema planteado.

Paso 1: Definición del problema.

Partimos del siguiente objetivo: queremos entender la relación entre Rendimiento Ajustado (rend_Ajustado) y el resto de las variables. Escogí el rendimiento ajustado porque parece ser una medida que ya toma en cuenta el rendimiento total y que se ajusta para que descuente factores posiblemente que no fueron observados.

Pasos 2 y 3: Entender los datos y selección inicial de variables potencialmente relevantes.

En el contexto de estos datos, el objetivo inicial por el que fueron recopilados estos datos era hacer un análisis comparativo de autos más allá de sus equipamientos. Sin embargo, para propósitos de este ejercicio, el objetivo se cambió, aunque esto puede afectar la conveniencia o ausencia de ciertos datos relevantes para el análisis.

La definición de algunas variables no es clara, no se sabe cómo fueron calculadas o como deben interpretarse, así que partimos de algunos supuestos.

Comencemos con ver la estrutuctura de los datos y sus valores. Aquí se usó el parámetro fileEncoding porque el archivo fue exportado con ese formato de codificación (algunas variables tienen acento, por lo que si no se importa correctamente puede ser que altere el formato de los datos).

autos <- read.csv("Autos.csv", fileEncoding = "ISO-8859-1", na.strings = "?")
str(autos)  #muestra la estructura general de los datos
'data.frame':   4617 obs. of  18 variables:
 $ Marca                  : chr  "FORD" "FORD" "FORD" "FORD" ...
 $ Submarca               : chr  "FUSION" "FUSION" "FUSION" "FUSION" ...
 $ Version                : chr  "HIBRIDO 4PTS 2.0L 4CIL 188HP AUT (CVT)" "HIBRIDO 4PTS 2.0L 4CIL 188HP AUT (eCVT)" "HIBRIDO 4X2 4PTAS 2.0L 4CIL 141(+47e)HP E-CVT" "HIBRIDO 4PTAS 2.0L 4CIL 188HP AUT eCVT" ...
 $ Modelo                 : int  2015 2016 2017 2018 2011 2012 2013 2014 2012 2011 ...
 $ Transmision            : chr  "CVT" "CVT" "CVT" "AUT" ...
 $ Combustible            : chr  "Gasolina" "Gasolina" "Gasolina" "Gasolina" ...
 $ Cilindros              : int  4 4 4 4 4 4 4 4 4 4 ...
 $ Potencia               : int  188 188 188 188 156 156 90 90 90 110 ...
 $ Tamaño                 : num  2 2 2 2 2.5 2.5 1.5 1.5 1.5 1.3 ...
 $ Categoria              : chr  "AUTOS COMPACTOS" "AUTOS COMPACTOS" "AUTOS COMPACTOS" "AUTOS COMPACTOS" ...
 $ Rend_Ciudad            : num  27.4 27.4 25.6 25.6 24 ...
 $ Ren_Carretera          : num  28.6 28.6 24.8 24.8 21.9 ...
 $ Rend_Comb              : num  28.9 28.9 25.2 25.2 23 ...
 $ Rend_Ajustado          : num  21.7 21.7 18.9 18.9 17.3 ...
 $ CO2                    : int  107 107 123 123 135 135 119 119 127 134 ...
 $ Nox                    : int  5 0 2 2 5 6 7 7 7 10 ...
 $ Calificacion_Gas       : int  10 10 10 10 9 9 10 10 9 9 ...
 $ Calificacion_ContamAire: int  9 9 9 9 9 9 9 9 9 9 ...

la matriz de datos tiene 4,617 observaciones y 18 variables. Notar que se usa el signo de interrogación (?) como una especia de dato faltante, por eso se tuvo que poner esa condición en la lectura de los datos.

summary(autos)
    Marca             Submarca           Version              Modelo     Transmision       
 Length:4617        Length:4617        Length:4617        Min.   :2011   Length:4617       
 Class :character   Class :character   Class :character   1st Qu.:2012   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Median :2014   Mode  :character  
                                                          Mean   :2014                     
                                                          3rd Qu.:2016                     
                                                          Max.   :2018                     
                                                                                           
 Combustible          Cilindros         Potencia       Tamaño       Categoria          Rend_Ciudad   
 Length:4617        Min.   : 3.000   Min.   : 60   Min.   :0.898   Length:4617        Min.   : 3.10  
 Class :character   1st Qu.: 4.000   1st Qu.:150   1st Qu.:1.800   Class :character   1st Qu.: 8.20  
 Mode  :character   Median : 4.000   Median :220   Median :2.500   Mode  :character   Median :10.42  
                    Mean   : 5.329   Mean   :255   Mean   :2.870                      Mean   :10.60  
                    3rd Qu.: 6.000   3rd Qu.:330   3rd Qu.:3.600                      3rd Qu.:12.81  
                    Max.   :12.000   Max.   :888   Max.   :8.400                      Max.   :27.46  
                                                                                                     
 Ren_Carretera     Rend_Comb     Rend_Ajustado         CO2             Nox        Calificacion_Gas
 Min.   : 6.70   Min.   : 4.96   Min.   : 3.720   Min.   :107.0   Min.   :  0.0   Min.   : 0.000  
 1st Qu.:13.48   1st Qu.:10.46   1st Qu.: 7.850   1st Qu.:200.0   1st Qu.: 10.0   1st Qu.: 3.000  
 Median :16.39   Median :12.87   Median : 9.650   Median :243.0   Median : 17.0   Median : 5.000  
 Mean   :16.61   Mean   :13.18   Mean   : 9.888   Mean   :256.5   Mean   : 30.8   Mean   : 4.885  
 3rd Qu.:19.60   3rd Qu.:15.61   3rd Qu.:11.710   3rd Qu.:299.0   3rd Qu.: 28.0   3rd Qu.: 7.000  
 Max.   :31.30   Max.   :28.93   Max.   :21.700   Max.   :627.0   Max.   :724.0   Max.   :10.000  
                                                                                                  
 Calificacion_ContamAire
 Min.   :1.000          
 1st Qu.:7.000          
 Median :9.000          
 Mean   :7.896          
 3rd Qu.:9.000          
 Max.   :9.000          
 NA's   :1238           

Podemos ver que la variable que mide la contaminación del aire tiene cerca de la cuarta parte de observaciones con NA’s. Hay que tomar esto en consideración cuando se incluya esta variable en el modelo, pues la regresión se ajustará sólo con los datos disponibles, y eliminará todos los renglones que tenga esta variable con datos perdidos.

Las variables Marca, Submarca y Versión sólo ayudan a identificar diferentes tipos de autos, son variables categóricas que si se incorporan al modelo, deben hacerlo como factores. Sin embargo, hay más de 500 submarcas, y tampoco consideraremos la versión, que tiene que ver con detalles más relacionados con características del vehículo que ya están en otras variables. Nos quedaremos al nivel de marca.

Por otra parte, los factores asociados a la Transmisión, Combustible, Categoría, son variables que servirán para clasificar a los datos, y que naturalmente pueden ser considerados como predictores.

Podemos ver que los datos tienen predictores categóricos y también numéricos.

Podemos hacer una reordenación de los datos, y una gráfica de pares de variables, para identificar primeras relaciones entre las variables. En el siguiente dataframe, quitamos las variables que no nos servirán para el modelo, ponemos la variable de respuesta como primera variable, y el resto de las variables las dejamos en el orden en que están.

autos <- autos %>%
         select(Rend_Ajustado, everything()) %>%   # reordenamiento de variables
         mutate(Modelo  = factor(Modelo),          # el año del modelo es un factor, y no un número
                Marca   = factor(Marca),
                Transmision = factor(Transmision),
                Combustible = factor(Combustible),
                Categoria = factor(Categoria)) %>%
         select(-Submarca, -Version)
head(autos)
  Rend_Ajustado Marca Modelo Transmision Combustible Cilindros Potencia Tamaño       Categoria Rend_Ciudad
1         21.70  FORD   2015         CVT    Gasolina         4      188    2.0 AUTOS COMPACTOS       27.44
2         21.70  FORD   2016         CVT    Gasolina         4      188    2.0 AUTOS COMPACTOS       27.44
3         18.92  FORD   2017         CVT    Gasolina         4      188    2.0 AUTOS COMPACTOS       25.62
4         18.92  FORD   2018         AUT    Gasolina         4      188    2.0 AUTOS COMPACTOS       25.62
5         17.26  FORD   2011         CVT    Gasolina         4      156    2.5 AUTOS COMPACTOS       24.00
6         17.26  FORD   2012         CVT    Gasolina         4      156    2.5 AUTOS COMPACTOS       24.00
  Ren_Carretera Rend_Comb CO2 Nox Calificacion_Gas Calificacion_ContamAire
1         28.57     28.93 107   5               10                       9
2         28.57     28.93 107   0               10                       9
3         24.77     25.23 123   2               10                       9
4         24.77     25.23 123   2               10                       9
5         21.90     23.01 135   5                9                       9
6         21.90     23.01 135   6                9                       9
pairs(autos[,-c(2:6)], pch=16, cex=0.4)

La primera columna de gráficas de este scatterplot contiene las gráficas de respuesta marginales, que muestran las relaciones de cada predictor con la respuesta.

En la gráfica hay varias cosas que podemos observar para hacer una depuración inicial del conjunto de datos:

  • El rendimiento combinado y el rendimiento ajustado son prácticamente colineales. Entonces una variable parece ser redundante, y por lo tanto, podemos quitar el rendimiento combinado.

  • La variable CO2 parece guardar una relación funcional exacta salvo algún factor con la variable de Rendimiento Ajustado, aunque no es una relación lineal, pero que también guarda una fuerte relación con la variable Calificacion_Gas. Entonces CO2 podría ser una variable también a eliminar del conjunto de datos.

  • Podemos ver que el rendimiento en carretera están fuertemente correlacionados, pero no necesariamente siguen una relación funcional exacta. Lo más que podemos decir es que las medias condicionales de las dos variables parecen ser lineas rectas, pero pueden retener información importante para explicar variación con respecto al rendimiento ajustado.

Después de las consideraciones anteriores, se puede actualizar la gráfica eliminando las variables que consideramos redundantes.

autos2 <- autos %>%
          select(-Rend_Comb, -CO2)
pairs(autos2[,-c(2:5,9)], pch=16, cex=0.4)

Con el conjunto de datos elegido, podemos hacer algunas gráficas adicionales para ver correlaciones, el impacto de las variables factores en la variable de respuesta, y algunos histogramas para ver el comportamiento de las distribuciones marginales.

La siguiente gráfica muestra las correlaciones entre variables, pero además las agrupa de acuerdo a su nivel de correlación (eso es lo que hace la opción hclust).

corrplot(cor(autos2[,-c(2:5,9)], use = "complete.obs"), method = "ellipse",
         diag = T, order = "hclust",tl.cex = 0.5)

Análisis del Rendimiento en términos de las variables factores

El año del Modelo del vehículo parece marcar un ligero cambio a partir de 2015.

boxplot(autos2$Rend_Ajustado ~ autos2$Modelo)

En todos los casos en donde se hace un análisis contra una variable que divide los datos en grupos, se puede hacer una prueba de igualdad de medias. EL siguiente análisis de varianza, evaluá la hipótesis de igualdad de medias.

summary(aov(Rend_Ajustado ~ Modelo + Transmision + Combustible, data = autos2))
              Df Sum Sq Mean Sq F value   Pr(>F)    
Modelo         7   2727   389.5   70.41  < 2e-16 ***
Transmision   24   5549   231.2   41.79  < 2e-16 ***
Combustible    1     79    78.5   14.19 0.000167 ***
Residuals   4584  25360     5.5                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

En este caso, la hipótesis de medias iguales se rechaza.

El tipo de transmisión parece tener efectos diversos sobre el rendimiento:

boxplot(autos2$Rend_Ajustado ~ autos2$Transmision, cex=0.6, horizontal=T, las=2,
        cex.axis=0.4)

El tipo de combustible usado también tiene un ligero efecto sobre el rendimiento, pero es significativo, por lo que debe ser tomado en cuenta en la modelación.

boxplot(autos2$Rend_Ajustado ~ autos2$Combustible)

summary(aov(Rend_Ajustado ~ Combustible, data=autos2))
              Df Sum Sq Mean Sq F value         Pr(>F)    
Combustible    1    300  300.28   41.47 0.000000000132 ***
Residuals   4615  33414    7.24                           
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Por último, los autos subcompactos y compactos tienen un mayor rendimiento que las otras categorías de vehículos.

boxplot(autos2$Rend_Ajustado ~ autos2$Categoria, las = 2, cex.axis = 0.5)

En conclusión, todos los factores paracen tener un efecto en la variable de respuesta, por lo que deben ser tomados en cuenta para la construcción de un modelo.

Podemos hacer el análisis de varianza considerando tanto las variables como sus posibles interacciones de manera conjunta, en donde podemos reafirmar la significancia de las relaciones:

summary(aov(Rend_Ajustado ~ Modelo*Transmision*Combustible, data = autos2))
                                 Df Sum Sq Mean Sq F value          Pr(>F)    
Modelo                            7   2727   389.5  72.350         < 2e-16 ***
Transmision                      24   5549   231.2  42.947         < 2e-16 ***
Combustible                       1     79    78.5  14.584        0.000136 ***
Modelo:Transmision               51    573    11.2   2.087 0.0000105159845 ***
Modelo:Combustible                7    141    20.2   3.744        0.000475 ***
Transmision:Combustible          12    403    33.6   6.238 0.0000000000493 ***
Modelo:Transmision:Combustible   24     69     2.9   0.537        0.967609    
Residuals                      4490  24173     5.4                            
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Noten que la interacción de las tres variables simultánea no es significativa, pero las interacciones a pares sí lo son.

Por último, podemos hacer unos histogramas para ver las distribuciones marginales de las variables cuantitativas.

par(mfrow=c(3,3))

# Histogramas de las variables de respuesta contra las variables cuantitativas

hist(autos2$Rend_Ajustado, prob=T)   #variable de respuesta
hist(autos2$Cilindros, prob=T)
hist(autos2$Potencia, prob=T)
hist(autos2$Tamaño, prob=T)
hist(autos2$Ren_Carretera, prob=T)
hist(autos2$Rend_Ciudad, prob=T)
hist(autos2$Calificacion_ContamAire, prob=T)

De manera individual todas las variables no siguen una distribución normal. Es posible intentar algunas transformaciones que ayuden a obtener normalidad. Por ejemplo, tomando la raíz cuadrada de las variables que presentan un ligero sesgo hacia la derecha (los rendimientos) y tomando el logaritmo de la potencia, obtenemos los siguientes histogramas:

par(mfrow=c(3,3))

# Histogramas de las variables de respuesta contra las variables cuantitativas

hist(sqrt(autos2$Rend_Ajustado), prob=T)   #variable de respuesta
hist(autos2$Cilindros, prob=T)
hist(log(autos2$Potencia), prob=T)
hist(autos2$Tamaño, prob=T)
hist(sqrt(autos2$Ren_Carretera), prob=T)
hist(sqrt(autos2$Rend_Ciudad), prob=T)
hist(autos2$Calificacion_ContamAire, prob=T)

Estas transformaciones son parte de la familia de transformaciones Box-Cox, pero podemos ver la mejora inmediata. Podemos hacer los ajustes al conjunto de datos, y aprovechamos para hacer algunos cambios de nombres de variables

autos3 <- autos2 %>%
          mutate(Rend_adj = sqrt(Rend_Ajustado),
                 logPotencia = log(Potencia),
                 Rend_Carr = sqrt(Ren_Carretera),
                 Rend_Ciud = sqrt(Rend_Ciudad)) %>%
          select(-c(Rend_Ajustado,Ren_Carretera,Rend_Ciudad,Potencia)) %>%
          select(Rend_adj,everything())

Paso 4. Especificación del modelo

Podemos ya con lo que se ha avanzado hacer un modelo inicial, que incluya a las variables e incluso algunas de sus interacciones. Por ejemplo, podríamos considerar el tipo de relación que tiene el número de cilindros, el tamaño del vehículo y la potencia. Es aquí donde el analista tiene que entender bien qué variables debe incluir en el modelo, porque puede dejar afuera interacciones importantes o bien, quedarse con un conjunto muy grande de variables.

# El punto inidica que se agregan todas las variables que están en el conjunto, y 
# para agregar una interacción 
autos3 <- autos3[complete.cases(autos3),]  #Sólo considera los casos de datos completos.
m1 <- lm(Rend_adj ~ . + Tamaño:Cilindros + logPotencia:Tamaño + logPotencia:Cilindros + logPotencia:Cilindros:Tamaño, data=autos3) 
summary(m1)

Call:
lm(formula = Rend_adj ~ . + Tamaño:Cilindros + logPotencia:Tamaño + 
    logPotencia:Cilindros + logPotencia:Cilindros:Tamaño, data = autos3)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.153594 -0.023623 -0.003244  0.018834  0.193144 

Coefficients:
                                             Estimate  Std. Error t value Pr(>|t|)    
(Intercept)                                1.30646379  0.12558084  10.403  < 2e-16 ***
MarcaALFA ROMEO                           -0.04356297  0.01877133  -2.321 0.020363 *  
MarcaAUDI                                 -0.05309792  0.00801794  -6.622 4.11e-11 ***
MarcaBENTLEY                              -0.09720859  0.01094898  -8.878  < 2e-16 ***
MarcaBMW                                   0.06053799  0.00681968   8.877  < 2e-16 ***
MarcaBUICK                                -0.07829853  0.00918328  -8.526  < 2e-16 ***
MarcaCADILLAC                             -0.05664498  0.00740051  -7.654 2.54e-14 ***
MarcaCHEVROLET                            -0.06042279  0.00644088  -9.381  < 2e-16 ***
MarcaCHRYSLER                             -0.05420850  0.00902578  -6.006 2.11e-09 ***
MarcaDODGE                                -0.04478621  0.00694669  -6.447 1.31e-10 ***
MarcaFIAT                                 -0.05013127  0.00887870  -5.646 1.78e-08 ***
MarcaFORD                                 -0.03667915  0.00672819  -5.452 5.36e-08 ***
MarcaGMC                                  -0.05965145  0.00967205  -6.167 7.79e-10 ***
MarcaGML                                  -0.11698196  0.02905481  -4.026 5.80e-05 ***
MarcaHONDA                                -0.00760610  0.00669910  -1.135 0.256294    
MarcaHYUNDAI                              -0.03705793  0.00846541  -4.378 1.24e-05 ***
MarcaINFINITI                             -0.05200390  0.00807701  -6.439 1.38e-10 ***
MarcaJAGUAR                                0.01252278  0.01262905   0.992 0.321473    
MarcaJEEP                                 -0.02522999  0.00745531  -3.384 0.000722 ***
MarcaKIA                                  -0.02015036  0.00919555  -2.191 0.028499 *  
MarcaLAND ROVER                            0.05412143  0.01726432   3.135 0.001734 ** 
MarcaLEXUS                                 0.01014975  0.02849979   0.356 0.721763    
MarcaLINCOLN                              -0.05598173  0.00826445  -6.774 1.48e-11 ***
MarcaMAZDA                                 0.00083584  0.00686863   0.122 0.903152    
MarcaMERCEDES                              0.03167007  0.00739934   4.280 1.92e-05 ***
MarcaMERCURY                              -0.03462157  0.02862672  -1.209 0.226590    
MarcaMINI                                  0.04501395  0.00810617   5.553 3.03e-08 ***
MarcaMITSUBISHI                           -0.05715701  0.00840930  -6.797 1.26e-11 ***
MarcaNISSAN                               -0.03924388  0.00689815  -5.689 1.39e-08 ***
MarcaPEUGEOT                              -0.05481702  0.01021507  -5.366 8.59e-08 ***
MarcaPORSCHE                              -0.06250544  0.00721103  -8.668  < 2e-16 ***
MarcaRENAULT                              -0.05598935  0.01081932  -5.175 2.42e-07 ***
MarcaROLLSROYCE                            0.06713287  0.03006791   2.233 0.025635 *  
MarcaSEAT                                 -0.06000046  0.00802742  -7.474 9.88e-14 ***
MarcaSMART                                 0.04419603  0.01302094   3.394 0.000696 ***
MarcaSUBARU                               -0.05596648  0.00803376  -6.966 3.91e-12 ***
MarcaSUZUKI                               -0.06501403  0.00764428  -8.505  < 2e-16 ***
MarcaTOYOTA                               -0.04952540  0.00733838  -6.749 1.75e-11 ***
MarcaVOLVO                                -0.02054215  0.00847636  -2.423 0.015427 *  
MarcaVW                                   -0.08106712  0.00695979 -11.648  < 2e-16 ***
Modelo2012                                 0.00705645  0.00296460   2.380 0.017358 *  
Modelo2013                                 0.00894705  0.00297886   3.004 0.002689 ** 
Modelo2014                                 0.00894614  0.00309482   2.891 0.003869 ** 
Modelo2015                                 0.03364336  0.00323986  10.384  < 2e-16 ***
Modelo2016                                 0.01974855  0.00294619   6.703 2.39e-11 ***
Modelo2017                                 0.03014135  0.00318415   9.466  < 2e-16 ***
Modelo2018                                 0.03550430  0.00493297   7.197 7.57e-13 ***
TransmisionASG                            -0.01907136  0.02366805  -0.806 0.420425    
TransmisionAUT                            -0.02997601  0.01248708  -2.401 0.016425 *  
TransmisionCVT                            -0.00500183  0.01283677  -0.390 0.696822    
TransmisionDCT                             0.00152773  0.02693693   0.057 0.954775    
TransmisionDSG                            -0.00845814  0.01353877  -0.625 0.532188    
TransmisionDUALOGIC                       -0.05889343  0.02630463  -2.239 0.025229 *  
TransmisionG TRONIC                       -0.03859900  0.01898510  -2.033 0.042120 *  
TransmisionM5                             -0.03541781  0.01451242  -2.441 0.014719 *  
TransmisionM6                             -0.04992154  0.01652179  -3.022 0.002534 ** 
TransmisionMAN                            -0.02358954  0.01255635  -1.879 0.060375 .  
TransmisionMULTIT                         -0.04846402  0.01637240  -2.960 0.003097 ** 
TransmisionMULTITRONIC                    -0.04912634  0.01546061  -3.178 0.001499 ** 
TransmisionPDK                            -0.01945747  0.01325381  -1.468 0.142182    
TransmisionR TRONIC                        0.00776081  0.03110991   0.249 0.803017    
TransmisionS TRONIC                       -0.02146848  0.01444609  -1.486 0.137346    
TransmisionSTRONIC                        -0.03480931  0.01390744  -2.503 0.012365 *  
TransmisionTIP                            -0.02355150  0.01395719  -1.687 0.091619 .  
TransmisionTIP 8                           0.07555283  0.04178219   1.808 0.070658 .  
TransmisionTIPT                           -0.02964939  0.01376898  -2.153 0.031364 *  
TransmisionTIPTRONIC                      -0.02871381  0.01385117  -2.073 0.038248 *  
TransmisionZF SPEED QUICKSHIFT             0.00024219  0.01857534   0.013 0.989598    
CombustibleGasolina                       -0.15226613  0.02505820  -6.076 1.37e-09 ***
Cilindros                                 -0.01603200  0.02855111  -0.562 0.574482    
Tamaño                                    -0.24805914  0.03562048  -6.964 3.98e-12 ***
CategoriaAUTOS DE LUJO                    -0.00304556  0.00302355  -1.007 0.313876    
CategoriaAUTOS DEPORTIVOS                 -0.01145467  0.00348281  -3.289 0.001016 ** 
CategoriaAUTOS SUBCOMPACTOS                0.00619933  0.00348262   1.780 0.075156 .  
CategoriaCAMIONETAS DE USO MULTIPLE (SUV) -0.00403883  0.00283795  -1.423 0.154787    
Nox                                        0.00015714  0.00008789   1.788 0.073893 .  
Calificacion_Gas                           0.03520602  0.00130418  26.995  < 2e-16 ***
Calificacion_ContamAire                    0.00890079  0.00110699   8.041 1.23e-15 ***
logPotencia                               -0.10319250  0.02057278  -5.016 5.56e-07 ***
Rend_Carr                                  0.23956290  0.00491447  48.746  < 2e-16 ***
Rend_Ciud                                  0.42041050  0.00549066  76.568  < 2e-16 ***
Cilindros:Tamaño                           0.02213901  0.00637034   3.475 0.000517 ***
Tamaño:logPotencia                         0.04155591  0.00582171   7.138 1.16e-12 ***
Cilindros:logPotencia                      0.00281311  0.00488704   0.576 0.564908    
Cilindros:Tamaño:logPotencia              -0.00364317  0.00104098  -3.500 0.000472 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.03939 on 3294 degrees of freedom
Multiple R-squared:  0.9913,    Adjusted R-squared:  0.991 
F-statistic:  4447 on 84 and 3294 DF,  p-value: < 2.2e-16

Notamos que en este modelo la interacción de las tres variables logPotencia, Cilindros y Tamaño es significativa, pero la interacción entre logPotencia y Cilindros no lo es. Cuando esto pasa, hay que dejar la interacción completa de las tres variables como parte del modelo.

El modelo tiene un procentaje de explicación altadel 99.1%.

Paso 5. Elección del método de ajuste

El modelo que se considerará será el modelo que incluye a las variables: Transmisión, Combustible, Cilindros, Potencia, Tamaño, Categoría, Rend_Ciudad, Ren_Carretera, Nox, Calificacion_Gas y Calificacion_ContamAire.

Extensiones a este modelo, podrían considerar interacciones de los factores con las variables continuas, y entre ellas mismas, pero el modelo sería muy grande. Esto es algo que se podría experimentar en un análisis más profundo.

Paso 6. Ajuste del modelo

A partir del modelo ajustado, podemos buscar un modelo que sea más chico, fácil de interpretar, y que explique prácticamente lo mismo que el modelo grande.

La función stepAIC del paquete MASS automatiza el proceso de selección de variables, en los dos sentidos: lo puede hacer a partir de un modelo e ir agregando componentes (forward) o quitando componentes (backward), o ambas a la vez (stepwise).

# lower es el modelo más chico a considerar, y upper es el modelo más grande a considerar
# direction indica si debe agregar, quitar o las dos cosas conforme logra mejorar el criterio del modelo
m2 <- stepAIC(m1, 
              scope = list(lower = ~ 1,
                           upper = ~ . + Tamaño*Cilindros*logPotencia), 
              direction = "both",
              steps = 5)  # muestra el proceso de ajuste
Start:  AIC=-21773.75
Rend_adj ~ Marca + Modelo + Transmision + Combustible + Cilindros + 
    Tamaño + Categoria + Nox + Calificacion_Gas + Calificacion_ContamAire + 
    logPotencia + Rend_Carr + Rend_Ciud + Tamaño:Cilindros + 
    logPotencia:Tamaño + logPotencia:Cilindros + logPotencia:Cilindros:Tamaño

                               Df Sum of Sq     RSS    AIC
<none>                                       5.1099 -21774
- Nox                           1    0.0050  5.1149 -21772
- Cilindros:Tamaño:logPotencia  1    0.0190  5.1289 -21763
- Categoria                     4    0.0286  5.1385 -21763
- Combustible                   1    0.0573  5.1672 -21738
- Transmision                  21    0.1528  5.2627 -21716
- Calificacion_ContamAire       1    0.1003  5.2102 -21710
- Modelo                        7    0.3078  5.4177 -21590
- Calificacion_Gas              1    1.1304  6.2403 -21100
- Marca                        39    2.5865  7.6964 -20468
- Rend_Carr                     1    3.6862  8.7960 -19940
- Rend_Ciud                     1    9.0947 14.2045 -18321
# modelo resultante
summary(m2)

Call:
lm(formula = Rend_adj ~ Marca + Modelo + Transmision + Combustible + 
    Cilindros + Tamaño + Categoria + Nox + Calificacion_Gas + 
    Calificacion_ContamAire + logPotencia + Rend_Carr + Rend_Ciud + 
    Tamaño:Cilindros + logPotencia:Tamaño + logPotencia:Cilindros + 
    logPotencia:Cilindros:Tamaño, data = autos3)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.153594 -0.023623 -0.003244  0.018834  0.193144 

Coefficients:
                                             Estimate  Std. Error t value Pr(>|t|)    
(Intercept)                                1.30646379  0.12558084  10.403  < 2e-16 ***
MarcaALFA ROMEO                           -0.04356297  0.01877133  -2.321 0.020363 *  
MarcaAUDI                                 -0.05309792  0.00801794  -6.622 4.11e-11 ***
MarcaBENTLEY                              -0.09720859  0.01094898  -8.878  < 2e-16 ***
MarcaBMW                                   0.06053799  0.00681968   8.877  < 2e-16 ***
MarcaBUICK                                -0.07829853  0.00918328  -8.526  < 2e-16 ***
MarcaCADILLAC                             -0.05664498  0.00740051  -7.654 2.54e-14 ***
MarcaCHEVROLET                            -0.06042279  0.00644088  -9.381  < 2e-16 ***
MarcaCHRYSLER                             -0.05420850  0.00902578  -6.006 2.11e-09 ***
MarcaDODGE                                -0.04478621  0.00694669  -6.447 1.31e-10 ***
MarcaFIAT                                 -0.05013127  0.00887870  -5.646 1.78e-08 ***
MarcaFORD                                 -0.03667915  0.00672819  -5.452 5.36e-08 ***
MarcaGMC                                  -0.05965145  0.00967205  -6.167 7.79e-10 ***
MarcaGML                                  -0.11698196  0.02905481  -4.026 5.80e-05 ***
MarcaHONDA                                -0.00760610  0.00669910  -1.135 0.256294    
MarcaHYUNDAI                              -0.03705793  0.00846541  -4.378 1.24e-05 ***
MarcaINFINITI                             -0.05200390  0.00807701  -6.439 1.38e-10 ***
MarcaJAGUAR                                0.01252278  0.01262905   0.992 0.321473    
MarcaJEEP                                 -0.02522999  0.00745531  -3.384 0.000722 ***
MarcaKIA                                  -0.02015036  0.00919555  -2.191 0.028499 *  
MarcaLAND ROVER                            0.05412143  0.01726432   3.135 0.001734 ** 
MarcaLEXUS                                 0.01014975  0.02849979   0.356 0.721763    
MarcaLINCOLN                              -0.05598173  0.00826445  -6.774 1.48e-11 ***
MarcaMAZDA                                 0.00083584  0.00686863   0.122 0.903152    
MarcaMERCEDES                              0.03167007  0.00739934   4.280 1.92e-05 ***
MarcaMERCURY                              -0.03462157  0.02862672  -1.209 0.226590    
MarcaMINI                                  0.04501395  0.00810617   5.553 3.03e-08 ***
MarcaMITSUBISHI                           -0.05715701  0.00840930  -6.797 1.26e-11 ***
MarcaNISSAN                               -0.03924388  0.00689815  -5.689 1.39e-08 ***
MarcaPEUGEOT                              -0.05481702  0.01021507  -5.366 8.59e-08 ***
MarcaPORSCHE                              -0.06250544  0.00721103  -8.668  < 2e-16 ***
MarcaRENAULT                              -0.05598935  0.01081932  -5.175 2.42e-07 ***
MarcaROLLSROYCE                            0.06713287  0.03006791   2.233 0.025635 *  
MarcaSEAT                                 -0.06000046  0.00802742  -7.474 9.88e-14 ***
MarcaSMART                                 0.04419603  0.01302094   3.394 0.000696 ***
MarcaSUBARU                               -0.05596648  0.00803376  -6.966 3.91e-12 ***
MarcaSUZUKI                               -0.06501403  0.00764428  -8.505  < 2e-16 ***
MarcaTOYOTA                               -0.04952540  0.00733838  -6.749 1.75e-11 ***
MarcaVOLVO                                -0.02054215  0.00847636  -2.423 0.015427 *  
MarcaVW                                   -0.08106712  0.00695979 -11.648  < 2e-16 ***
Modelo2012                                 0.00705645  0.00296460   2.380 0.017358 *  
Modelo2013                                 0.00894705  0.00297886   3.004 0.002689 ** 
Modelo2014                                 0.00894614  0.00309482   2.891 0.003869 ** 
Modelo2015                                 0.03364336  0.00323986  10.384  < 2e-16 ***
Modelo2016                                 0.01974855  0.00294619   6.703 2.39e-11 ***
Modelo2017                                 0.03014135  0.00318415   9.466  < 2e-16 ***
Modelo2018                                 0.03550430  0.00493297   7.197 7.57e-13 ***
TransmisionASG                            -0.01907136  0.02366805  -0.806 0.420425    
TransmisionAUT                            -0.02997601  0.01248708  -2.401 0.016425 *  
TransmisionCVT                            -0.00500183  0.01283677  -0.390 0.696822    
TransmisionDCT                             0.00152773  0.02693693   0.057 0.954775    
TransmisionDSG                            -0.00845814  0.01353877  -0.625 0.532188    
TransmisionDUALOGIC                       -0.05889343  0.02630463  -2.239 0.025229 *  
TransmisionG TRONIC                       -0.03859900  0.01898510  -2.033 0.042120 *  
TransmisionM5                             -0.03541781  0.01451242  -2.441 0.014719 *  
TransmisionM6                             -0.04992154  0.01652179  -3.022 0.002534 ** 
TransmisionMAN                            -0.02358954  0.01255635  -1.879 0.060375 .  
TransmisionMULTIT                         -0.04846402  0.01637240  -2.960 0.003097 ** 
TransmisionMULTITRONIC                    -0.04912634  0.01546061  -3.178 0.001499 ** 
TransmisionPDK                            -0.01945747  0.01325381  -1.468 0.142182    
TransmisionR TRONIC                        0.00776081  0.03110991   0.249 0.803017    
TransmisionS TRONIC                       -0.02146848  0.01444609  -1.486 0.137346    
TransmisionSTRONIC                        -0.03480931  0.01390744  -2.503 0.012365 *  
TransmisionTIP                            -0.02355150  0.01395719  -1.687 0.091619 .  
TransmisionTIP 8                           0.07555283  0.04178219   1.808 0.070658 .  
TransmisionTIPT                           -0.02964939  0.01376898  -2.153 0.031364 *  
TransmisionTIPTRONIC                      -0.02871381  0.01385117  -2.073 0.038248 *  
TransmisionZF SPEED QUICKSHIFT             0.00024219  0.01857534   0.013 0.989598    
CombustibleGasolina                       -0.15226613  0.02505820  -6.076 1.37e-09 ***
Cilindros                                 -0.01603200  0.02855111  -0.562 0.574482    
Tamaño                                    -0.24805914  0.03562048  -6.964 3.98e-12 ***
CategoriaAUTOS DE LUJO                    -0.00304556  0.00302355  -1.007 0.313876    
CategoriaAUTOS DEPORTIVOS                 -0.01145467  0.00348281  -3.289 0.001016 ** 
CategoriaAUTOS SUBCOMPACTOS                0.00619933  0.00348262   1.780 0.075156 .  
CategoriaCAMIONETAS DE USO MULTIPLE (SUV) -0.00403883  0.00283795  -1.423 0.154787    
Nox                                        0.00015714  0.00008789   1.788 0.073893 .  
Calificacion_Gas                           0.03520602  0.00130418  26.995  < 2e-16 ***
Calificacion_ContamAire                    0.00890079  0.00110699   8.041 1.23e-15 ***
logPotencia                               -0.10319250  0.02057278  -5.016 5.56e-07 ***
Rend_Carr                                  0.23956290  0.00491447  48.746  < 2e-16 ***
Rend_Ciud                                  0.42041050  0.00549066  76.568  < 2e-16 ***
Cilindros:Tamaño                           0.02213901  0.00637034   3.475 0.000517 ***
Tamaño:logPotencia                         0.04155591  0.00582171   7.138 1.16e-12 ***
Cilindros:logPotencia                      0.00281311  0.00488704   0.576 0.564908    
Cilindros:Tamaño:logPotencia              -0.00364317  0.00104098  -3.500 0.000472 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.03939 on 3294 degrees of freedom
Multiple R-squared:  0.9913,    Adjusted R-squared:  0.991 
F-statistic:  4447 on 84 and 3294 DF,  p-value: < 2.2e-16

El modelo obtenido tiene 85 coeficientes, que es grande para desplegar e interpretar. Aun así, podemos encontrar intervalos de confianza para los coeficientes:

confint(m2, level = 0.95)
                                                   2.5 %        97.5 %
(Intercept)                                1.06023940684  1.5526881818
MarcaALFA ROMEO                           -0.08036762411 -0.0067583246
MarcaAUDI                                 -0.06881856693 -0.0373772787
MarcaBENTLEY                              -0.11867608918 -0.0757410811
MarcaBMW                                   0.04716674562  0.0739092295
MarcaBUICK                                -0.09630404298 -0.0602930143
MarcaCADILLAC                             -0.07115504651 -0.0421349188
MarcaCHEVROLET                            -0.07305132401 -0.0477942461
MarcaCHRYSLER                             -0.07190521276 -0.0365117821
MarcaDODGE                                -0.05840647326 -0.0311659420
MarcaFIAT                                 -0.06753960155 -0.0327229411
MarcaFORD                                 -0.04987100420 -0.0234872913
MarcaGMC                                  -0.07861528294 -0.0406876096
MarcaGML                                  -0.17394928038 -0.0600146486
MarcaHONDA                                -0.02074092040  0.0055287140
MarcaHYUNDAI                              -0.05365592029 -0.0204599343
MarcaINFINITI                             -0.06784037500 -0.0361674237
MarcaJAGUAR                               -0.01223880895  0.0372843697
MarcaJEEP                                 -0.03984750832 -0.0106124793
MarcaKIA                                  -0.03817993723 -0.0021207769
MarcaLAND ROVER                            0.02027153956  0.0879713113
MarcaLEXUS                                -0.04572934145  0.0660288410
MarcaLINCOLN                              -0.07218571691 -0.0397777503
MarcaMAZDA                                -0.01263137001  0.0143030564
MarcaMERCEDES                              0.01716230184  0.0461778448
MarcaMERCURY                              -0.09074954354  0.0215064004
MarcaMINI                                  0.02912030356  0.0609075913
MarcaMITSUBISHI                           -0.07364499380 -0.0406690327
MarcaNISSAN                               -0.05276898593 -0.0257187793
MarcaPEUGEOT                              -0.07484554836 -0.0347884873
MarcaPORSCHE                              -0.07664398835 -0.0483668824
MarcaRENAULT                              -0.07720263170 -0.0347760711
MarcaROLLSROYCE                            0.00817918184  0.1260865503
MarcaSEAT                                 -0.07573969839 -0.0442612178
MarcaSMART                                 0.01866607069  0.0697259901
MarcaSUBARU                               -0.07171814247 -0.0402148218
MarcaSUZUKI                               -0.08000205837 -0.0500260069
MarcaTOYOTA                               -0.06391364993 -0.0351371506
MarcaVOLVO                                -0.03716161304 -0.0039226800
MarcaVW                                   -0.09471307862 -0.0674211676
Modelo2012                                 0.00124379933  0.0128691029
Modelo2013                                 0.00310644799  0.0147876544
Modelo2014                                 0.00287818193  0.0150140931
Modelo2015                                 0.02729102527  0.0399956974
Modelo2016                                 0.01397200675  0.0255250906
Modelo2017                                 0.02389824239  0.0363844503
Modelo2018                                 0.02583229349  0.0451763006
TransmisionASG                            -0.06547693684  0.0273342101
TransmisionAUT                            -0.05445922921 -0.0054927938
TransmisionCVT                            -0.03017067912  0.0201670277
TransmisionDCT                            -0.05128709425  0.0543425635
TransmisionDSG                            -0.03500339805  0.0180871170
TransmisionDUALOGIC                       -0.11046850806 -0.0073183439
TransmisionG TRONIC                       -0.07582279502 -0.0013751966
TransmisionM5                             -0.06387207585 -0.0069635398
TransmisionM6                             -0.08231556802 -0.0175275197
TransmisionMAN                            -0.04820858512  0.0010295086
TransmisionMULTIT                         -0.08056513287 -0.0163629082
TransmisionMULTITRONIC                    -0.07943971369 -0.0188129756
TransmisionPDK                            -0.04544400612  0.0065290724
TransmisionR TRONIC                       -0.05323590734  0.0687575188
TransmisionS TRONIC                       -0.04979270871  0.0068557399
TransmisionSTRONIC                        -0.06207740050 -0.0075412163
TransmisionTIP                            -0.05091715063  0.0038141550
TransmisionTIP 8                          -0.00636886216  0.1574745246
TransmisionTIPT                           -0.05664601824 -0.0026527705
TransmisionTIPTRONIC                      -0.05587157355 -0.0015560450
TransmisionZF SPEED QUICKSHIFT            -0.03617818814  0.0366625710
CombustibleGasolina                       -0.20139735281 -0.1031349089
Cilindros                                 -0.07201171758  0.0399477193
Tamaño                                    -0.31789964976 -0.1782186281
CategoriaAUTOS DE LUJO                    -0.00897378767  0.0028826764
CategoriaAUTOS DEPORTIVOS                 -0.01828337057 -0.0046259716
CategoriaAUTOS SUBCOMPACTOS               -0.00062899244  0.0130276527
CategoriaCAMIONETAS DE USO MULTIPLE (SUV) -0.00960315766  0.0015254889
Nox                                       -0.00001519185  0.0003294724
Calificacion_Gas                           0.03264893677  0.0377631050
Calificacion_ContamAire                    0.00673034260  0.0110712394
logPotencia                               -0.14352923115 -0.0628557685
Rend_Carr                                  0.22992717020  0.2491986317
Rend_Ciud                                  0.40964504232  0.4311759504
Cilindros:Tamaño                           0.00964877086  0.0346292413
Tamaño:logPotencia                         0.03014138068  0.0529704423
Cilindros:logPotencia                     -0.00676884169  0.0123950528
Cilindros:Tamaño:logPotencia              -0.00568419848 -0.0016021491

Paso 7. Validación y críticas al modelo

Suponiendo que el modelo ajustado es considerado como el mejor modelo, todavía falta revisar si los supuestos del modelo se cumplen de manera adecuada.

La primera herramienta que tenemos para verificar si el modelo es correcto son los residuales y los apalancamientos, que nos sirven para identficar desviaciones de los supuestos.

Vemos las gráficas de diagnóstico y podemos hacer ajustes para mejorar el modelo. Podemos generar las gráficas de diagnóstico más comunes.

par(mfrow=c(2,3))
plot(m2, ask = F, which = 1:6, cex=0.5, pch = 16)
Warning: not plotting observations with leverage one:
  1471

Warning: not plotting observations with leverage one:
  1471

Hay una observación que tienen un valor de apalancamiento muy grande (uno) y que tiene un efecto importante en el modelo ajustado. Podemos comparar el modelo ajustado sin este dato y ver cómo cambia, y también ver qué dato es:

autos3[1471,]  #dato que marca con apalancamiento grande
     Rend_adj Marca Modelo Transmision Combustible Cilindros Tamaño     Categoria Nox Calificacion_Gas
1882  2.84605  AUDI   2011       TIP 8    Gasolina         8    4.2 AUTOS DE LUJO   7                4
     Calificacion_ContamAire logPotencia Rend_Carr Rend_Ciud
1882                       9    5.918894  3.726929  2.742262
m3 <- update(m2,data=autos3[-1471,]) #elimina el dato extraño
summary(m3)

Call:
lm(formula = Rend_adj ~ Marca + Modelo + Transmision + Combustible + 
    Cilindros + Tamaño + Categoria + Nox + Calificacion_Gas + 
    Calificacion_ContamAire + logPotencia + Rend_Carr + Rend_Ciud + 
    Tamaño:Cilindros + logPotencia:Tamaño + logPotencia:Cilindros + 
    logPotencia:Cilindros:Tamaño, data = autos3[-1471, ])

Residuals:
      Min        1Q    Median        3Q       Max 
-0.153594 -0.023625 -0.003256  0.018846  0.193144 

Coefficients:
                                             Estimate  Std. Error t value Pr(>|t|)    
(Intercept)                                1.30646379  0.12558084  10.403  < 2e-16 ***
MarcaALFA ROMEO                           -0.04356297  0.01877133  -2.321 0.020363 *  
MarcaAUDI                                 -0.05309792  0.00801794  -6.622 4.11e-11 ***
MarcaBENTLEY                              -0.09720859  0.01094898  -8.878  < 2e-16 ***
MarcaBMW                                   0.06053799  0.00681968   8.877  < 2e-16 ***
MarcaBUICK                                -0.07829853  0.00918328  -8.526  < 2e-16 ***
MarcaCADILLAC                             -0.05664498  0.00740051  -7.654 2.54e-14 ***
MarcaCHEVROLET                            -0.06042279  0.00644088  -9.381  < 2e-16 ***
MarcaCHRYSLER                             -0.05420850  0.00902578  -6.006 2.11e-09 ***
MarcaDODGE                                -0.04478621  0.00694669  -6.447 1.31e-10 ***
MarcaFIAT                                 -0.05013127  0.00887870  -5.646 1.78e-08 ***
MarcaFORD                                 -0.03667915  0.00672819  -5.452 5.36e-08 ***
MarcaGMC                                  -0.05965145  0.00967205  -6.167 7.79e-10 ***
MarcaGML                                  -0.11698196  0.02905481  -4.026 5.80e-05 ***
MarcaHONDA                                -0.00760610  0.00669910  -1.135 0.256294    
MarcaHYUNDAI                              -0.03705793  0.00846541  -4.378 1.24e-05 ***
MarcaINFINITI                             -0.05200390  0.00807701  -6.439 1.38e-10 ***
MarcaJAGUAR                                0.01252278  0.01262905   0.992 0.321473    
MarcaJEEP                                 -0.02522999  0.00745531  -3.384 0.000722 ***
MarcaKIA                                  -0.02015036  0.00919555  -2.191 0.028499 *  
MarcaLAND ROVER                            0.05412143  0.01726432   3.135 0.001734 ** 
MarcaLEXUS                                 0.01014975  0.02849979   0.356 0.721763    
MarcaLINCOLN                              -0.05598173  0.00826445  -6.774 1.48e-11 ***
MarcaMAZDA                                 0.00083584  0.00686863   0.122 0.903152    
MarcaMERCEDES                              0.03167007  0.00739934   4.280 1.92e-05 ***
MarcaMERCURY                              -0.03462157  0.02862672  -1.209 0.226590    
MarcaMINI                                  0.04501395  0.00810617   5.553 3.03e-08 ***
MarcaMITSUBISHI                           -0.05715701  0.00840930  -6.797 1.26e-11 ***
MarcaNISSAN                               -0.03924388  0.00689815  -5.689 1.39e-08 ***
MarcaPEUGEOT                              -0.05481702  0.01021507  -5.366 8.59e-08 ***
MarcaPORSCHE                              -0.06250544  0.00721103  -8.668  < 2e-16 ***
MarcaRENAULT                              -0.05598935  0.01081932  -5.175 2.42e-07 ***
MarcaROLLSROYCE                            0.06713287  0.03006791   2.233 0.025635 *  
MarcaSEAT                                 -0.06000046  0.00802742  -7.474 9.88e-14 ***
MarcaSMART                                 0.04419603  0.01302094   3.394 0.000696 ***
MarcaSUBARU                               -0.05596648  0.00803376  -6.966 3.91e-12 ***
MarcaSUZUKI                               -0.06501403  0.00764428  -8.505  < 2e-16 ***
MarcaTOYOTA                               -0.04952540  0.00733838  -6.749 1.75e-11 ***
MarcaVOLVO                                -0.02054215  0.00847636  -2.423 0.015427 *  
MarcaVW                                   -0.08106712  0.00695979 -11.648  < 2e-16 ***
Modelo2012                                 0.00705645  0.00296460   2.380 0.017358 *  
Modelo2013                                 0.00894705  0.00297886   3.004 0.002689 ** 
Modelo2014                                 0.00894614  0.00309482   2.891 0.003869 ** 
Modelo2015                                 0.03364336  0.00323986  10.384  < 2e-16 ***
Modelo2016                                 0.01974855  0.00294619   6.703 2.39e-11 ***
Modelo2017                                 0.03014135  0.00318415   9.466  < 2e-16 ***
Modelo2018                                 0.03550430  0.00493297   7.197 7.57e-13 ***
TransmisionASG                            -0.01907136  0.02366805  -0.806 0.420425    
TransmisionAUT                            -0.02997601  0.01248708  -2.401 0.016425 *  
TransmisionCVT                            -0.00500183  0.01283677  -0.390 0.696822    
TransmisionDCT                             0.00152773  0.02693693   0.057 0.954775    
TransmisionDSG                            -0.00845814  0.01353877  -0.625 0.532188    
TransmisionDUALOGIC                       -0.05889343  0.02630463  -2.239 0.025229 *  
TransmisionG TRONIC                       -0.03859900  0.01898510  -2.033 0.042120 *  
TransmisionM5                             -0.03541781  0.01451242  -2.441 0.014719 *  
TransmisionM6                             -0.04992154  0.01652179  -3.022 0.002534 ** 
TransmisionMAN                            -0.02358954  0.01255635  -1.879 0.060375 .  
TransmisionMULTIT                         -0.04846402  0.01637240  -2.960 0.003097 ** 
TransmisionMULTITRONIC                    -0.04912634  0.01546061  -3.178 0.001499 ** 
TransmisionPDK                            -0.01945747  0.01325381  -1.468 0.142182    
TransmisionR TRONIC                        0.00776081  0.03110991   0.249 0.803017    
TransmisionS TRONIC                       -0.02146848  0.01444609  -1.486 0.137346    
TransmisionSTRONIC                        -0.03480931  0.01390744  -2.503 0.012365 *  
TransmisionTIP                            -0.02355150  0.01395719  -1.687 0.091619 .  
TransmisionTIPT                           -0.02964939  0.01376898  -2.153 0.031364 *  
TransmisionTIPTRONIC                      -0.02871381  0.01385117  -2.073 0.038248 *  
TransmisionZF SPEED QUICKSHIFT             0.00024219  0.01857534   0.013 0.989598    
CombustibleGasolina                       -0.15226613  0.02505820  -6.076 1.37e-09 ***
Cilindros                                 -0.01603200  0.02855111  -0.562 0.574482    
Tamaño                                    -0.24805914  0.03562048  -6.964 3.98e-12 ***
CategoriaAUTOS DE LUJO                    -0.00304556  0.00302355  -1.007 0.313876    
CategoriaAUTOS DEPORTIVOS                 -0.01145467  0.00348281  -3.289 0.001016 ** 
CategoriaAUTOS SUBCOMPACTOS                0.00619933  0.00348262   1.780 0.075156 .  
CategoriaCAMIONETAS DE USO MULTIPLE (SUV) -0.00403883  0.00283795  -1.423 0.154787    
Nox                                        0.00015714  0.00008789   1.788 0.073893 .  
Calificacion_Gas                           0.03520602  0.00130418  26.995  < 2e-16 ***
Calificacion_ContamAire                    0.00890079  0.00110699   8.041 1.23e-15 ***
logPotencia                               -0.10319250  0.02057278  -5.016 5.56e-07 ***
Rend_Carr                                  0.23956290  0.00491447  48.746  < 2e-16 ***
Rend_Ciud                                  0.42041050  0.00549066  76.568  < 2e-16 ***
Cilindros:Tamaño                           0.02213901  0.00637034   3.475 0.000517 ***
Tamaño:logPotencia                         0.04155591  0.00582171   7.138 1.16e-12 ***
Cilindros:logPotencia                      0.00281311  0.00488704   0.576 0.564908    
Cilindros:Tamaño:logPotencia              -0.00364317  0.00104098  -3.500 0.000472 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.03939 on 3294 degrees of freedom
Multiple R-squared:  0.9913,    Adjusted R-squared:  0.991 
F-statistic:  4500 on 83 and 3294 DF,  p-value: < 2.2e-16
par(mfrow=c(2,3))
plot(m3, ask = F, which = 1:6, cex=0.5, pch = 16)

No parece haber ninguna mejora quitando el dato correspondiente, por lo que se dejará en el conjunto.

Las gráficas muestran las siguientes características:

  • Aparece el dato 1471 como valores influenciales que tienen un apalancamiento mayor a 1.
  • La nube de datos muestra en la gráfica de los residuales contra los valores ajustados tiene cierta curvatura, por lo que se puede requerir transformar aun más la variable de respuesta.
  • La gráfica de normalidad de los errores muestra que los residuales no se comportan como normales en las colas de la distribución.

Primero, intentamos encontrar una transformación de la variable de respuesta que ayude a corregir el problema de heteroscedasticidad. Para este fin, se puede usar la transformación de Box-Cox, que es una transformación de la forma
\[Y^{(\lambda)} = \frac{Y^{\lambda}-1}{\lambda}\]

boxcox(m2, lambda=seq(0,1,1/20))

La transformación sugerida para la respuesta es sacar usar \(\lambda\approx 0.5\), pero ya habiamos obtenido la raiz cuadrada de la variable original, por lo que la variable original es la raíz cuarta.

autos3$Rend_adj <- 2*(sqrt(autos3$Rend_adj)-1)

Reajustamos el modelo con el cambio hecho, y podemos ver que hay una ligera mejora en la \(R^2\)

m2 <- update(m2)
summary(m2)

Call:
lm(formula = Rend_adj ~ Marca + Modelo + Transmision + Combustible + 
    Cilindros + Tamaño + Categoria + Nox + Calificacion_Gas + 
    Calificacion_ContamAire + logPotencia + Rend_Carr + Rend_Ciud + 
    Tamaño:Cilindros + logPotencia:Tamaño + logPotencia:Cilindros + 
    logPotencia:Cilindros:Tamaño, data = autos3)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.133853 -0.012290 -0.001431  0.010261  0.087858 

Coefficients:
                                             Estimate  Std. Error t value Pr(>|t|)    
(Intercept)                                0.31005897  0.06900771   4.493 7.26e-06 ***
MarcaALFA ROMEO                           -0.02137755  0.01031500  -2.072 0.038299 *  
MarcaAUDI                                 -0.02606290  0.00440592  -5.915 3.65e-09 ***
MarcaBENTLEY                              -0.07920785  0.00601656 -13.165  < 2e-16 ***
MarcaBMW                                   0.03345118  0.00374747   8.926  < 2e-16 ***
MarcaBUICK                                -0.04055257  0.00504629  -8.036 1.28e-15 ***
MarcaCADILLAC                             -0.02897724  0.00406664  -7.126 1.27e-12 ***
MarcaCHEVROLET                            -0.02870370  0.00353932  -8.110 7.07e-16 ***
MarcaCHRYSLER                             -0.02675399  0.00495974  -5.394 7.37e-08 ***
MarcaDODGE                                -0.02177786  0.00381726  -5.705 1.27e-08 ***
MarcaFIAT                                 -0.01989511  0.00487892  -4.078 4.65e-05 ***
MarcaFORD                                 -0.01851286  0.00369720  -5.007 5.81e-07 ***
MarcaGMC                                  -0.02939337  0.00531487  -5.530 3.44e-08 ***
MarcaGML                                  -0.04294431  0.01596586  -2.690 0.007186 ** 
MarcaHONDA                                -0.00230007  0.00368121  -0.625 0.532136    
MarcaHYUNDAI                              -0.01697340  0.00465181  -3.649 0.000268 ***
MarcaINFINITI                             -0.02287433  0.00443839  -5.154 2.70e-07 ***
MarcaJAGUAR                               -0.00408538  0.00693977  -0.589 0.556109    
MarcaJEEP                                 -0.01391816  0.00409676  -3.397 0.000688 ***
MarcaKIA                                  -0.00891960  0.00505303  -1.765 0.077623 .  
MarcaLAND ROVER                            0.02284829  0.00948689   2.408 0.016077 *  
MarcaLEXUS                                 0.00731412  0.01566087   0.467 0.640508    
MarcaLINCOLN                              -0.03606361  0.00454138  -7.941 2.73e-15 ***
MarcaMAZDA                                -0.00002434  0.00377437  -0.006 0.994855    
MarcaMERCEDES                              0.01778111  0.00406600   4.373 1.26e-05 ***
MarcaMERCURY                              -0.01161876  0.01573062  -0.739 0.460198    
MarcaMINI                                  0.02309375  0.00445441   5.184 2.30e-07 ***
MarcaMITSUBISHI                           -0.02759738  0.00462098  -5.972 2.59e-09 ***
MarcaNISSAN                               -0.01822455  0.00379059  -4.808 1.59e-06 ***
MarcaPEUGEOT                              -0.02231551  0.00561327  -3.975 7.17e-05 ***
MarcaPORSCHE                              -0.03481339  0.00396252  -8.786  < 2e-16 ***
MarcaRENAULT                              -0.02460435  0.00594531  -4.138 3.58e-05 ***
MarcaROLLSROYCE                            0.04277593  0.01652257   2.589 0.009670 ** 
MarcaSEAT                                 -0.03242133  0.00441113  -7.350 2.49e-13 ***
MarcaSMART                                 0.02306164  0.00715512   3.223 0.001280 ** 
MarcaSUBARU                               -0.02538113  0.00441462  -5.749 9.78e-09 ***
MarcaSUZUKI                               -0.02944570  0.00420060  -7.010 2.88e-12 ***
MarcaTOYOTA                               -0.02614307  0.00403250  -6.483 1.03e-10 ***
MarcaVOLVO                                -0.01174011  0.00465783  -2.521 0.011765 *  
MarcaVW                                   -0.03857765  0.00382446 -10.087  < 2e-16 ***
Modelo2012                                 0.00260118  0.00162907   1.597 0.110423    
Modelo2013                                 0.00450924  0.00163691   2.755 0.005906 ** 
Modelo2014                                 0.00393301  0.00170063   2.313 0.020801 *  
Modelo2015                                 0.01692857  0.00178033   9.509  < 2e-16 ***
Modelo2016                                 0.00965275  0.00161895   5.962 2.75e-09 ***
Modelo2017                                 0.01471304  0.00174971   8.409  < 2e-16 ***
Modelo2018                                 0.01540464  0.00271071   5.683 1.44e-08 ***
TransmisionASG                            -0.01205851  0.01300579  -0.927 0.353909    
TransmisionAUT                            -0.01465084  0.00686175  -2.135 0.032823 *  
TransmisionCVT                            -0.00501025  0.00705391  -0.710 0.477581    
TransmisionDCT                             0.00589443  0.01480207   0.398 0.690497    
TransmisionDSG                            -0.00590767  0.00743967  -0.794 0.427208    
TransmisionDUALOGIC                       -0.02663460  0.01445461  -1.843 0.065472 .  
TransmisionG TRONIC                       -0.03356691  0.01043247  -3.218 0.001305 ** 
TransmisionM5                             -0.01664703  0.00797469  -2.087 0.036921 *  
TransmisionM6                             -0.02448868  0.00907886  -2.697 0.007025 ** 
TransmisionMAN                            -0.01117598  0.00689982  -1.620 0.105382    
TransmisionMULTIT                         -0.02624299  0.00899677  -2.917 0.003559 ** 
TransmisionMULTITRONIC                    -0.02744923  0.00849573  -3.231 0.001246 ** 
TransmisionPDK                            -0.00636935  0.00728308  -0.875 0.381888    
TransmisionR TRONIC                        0.00377888  0.01709515   0.221 0.825068    
TransmisionS TRONIC                       -0.01199976  0.00793825  -1.512 0.130722    
TransmisionSTRONIC                        -0.01812319  0.00764225  -2.371 0.017776 *  
TransmisionTIP                            -0.02246098  0.00766959  -2.929 0.003429 ** 
TransmisionTIP 8                           0.04158285  0.02295966   1.811 0.070212 .  
TransmisionTIPT                           -0.01265022  0.00756617  -1.672 0.094630 .  
TransmisionTIPTRONIC                      -0.01307766  0.00761133  -1.718 0.085857 .  
TransmisionZF SPEED QUICKSHIFT             0.01137143  0.01020730   1.114 0.265340    
CombustibleGasolina                       -0.06992166  0.01376969  -5.078 4.03e-07 ***
Cilindros                                  0.02449220  0.01568907   1.561 0.118596    
Tamaño                                    -0.06218154  0.01957375  -3.177 0.001503 ** 
CategoriaAUTOS DE LUJO                    -0.00047040  0.00166147  -0.283 0.777099    
CategoriaAUTOS DEPORTIVOS                 -0.00495992  0.00191384  -2.592 0.009595 ** 
CategoriaAUTOS SUBCOMPACTOS                0.00361405  0.00191373   1.888 0.059048 .  
CategoriaCAMIONETAS DE USO MULTIPLE (SUV) -0.00309138  0.00155948  -1.982 0.047527 *  
Nox                                        0.00016854  0.00004830   3.489 0.000490 ***
Calificacion_Gas                           0.02498922  0.00071666  34.869  < 2e-16 ***
Calificacion_ContamAire                    0.00556899  0.00060830   9.155  < 2e-16 ***
logPotencia                               -0.01961639  0.01130491  -1.735 0.082797 .  
Rend_Carr                                  0.12981516  0.00270054  48.070  < 2e-16 ***
Rend_Ciud                                  0.21796543  0.00301716  72.242  < 2e-16 ***
Cilindros:Tamaño                           0.00027716  0.00350056   0.079 0.936897    
Tamaño:logPotencia                         0.01103599  0.00319908   3.450 0.000568 ***
Cilindros:logPotencia                     -0.00393922  0.00268547  -1.467 0.142508    
Cilindros:Tamaño:logPotencia              -0.00014948  0.00057202  -0.261 0.793862    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.02164 on 3294 degrees of freedom
Multiple R-squared:  0.9918,    Adjusted R-squared:  0.9916 
F-statistic:  4753 on 84 and 3294 DF,  p-value: < 2.2e-16
par(mfrow=c(2,3))
plot(m2)
Warning: not plotting observations with leverage one:
  1471

Por último, podemos hacer una prueba formal sobre la distribución de los residuales

par(mfrow=c(1,2))
hist(m2$residuals, breaks=100)
qqnorm(m2$residuals)

shapiro.test(m2$residuals)

    Shapiro-Wilk normality test

data:  m2$residuals
W = 0.97281, p-value < 2.2e-16

Finalmente nos quedamos con este modelo. La exploración podría continuar dependiendo de la precisión y análisis que necesitemos.

Paso 8. Uso del o de los modelos elegidos para la solución del problema planteado.

Suponemos que necesitamos el modelo para predecir nuevos valores. Para predecir un nuevo valor con este modelo, necesitamos especificar todos los valores correspondientes a los predictores del modelo, que son 12 variables. Por ejemplo:

casos.nuevos <- data.frame(Marca = c("AUDI","BMW","CHEVROLET"),
                           Modelo = c("2011","2012","2013"),
                           Transmision = c("CVT","CVT","AUT"),
                           Combustible = c("Diesel", "Diesel", "Gasolina"),
                           Cilindros = c(2,4,6),
                           logPotencia = log(c(100,200,150)),
                           Tamaño = c(1,2,10),
                           Categoria = c("AUTOS DEPORTIVOS", "AUTOS COMPACTOS", "CAMIONETAS DE USO MULTIPLE (SUV)"),
                           Rend_Ciud = c(10,20,30),
                           Rend_Carr = c(12,25,40),
                           Nox = c(0,0,4),
                           Calificacion_Gas = c(8,7,5),
                           Calificacion_ContamAire = c(7,8,9))

predict(m2, newdata = casos.nuevos, se.fit = T, interval = "pred", level = 0.99)   #intervalo para predicción 
$fit
        fit       lwr       upr
1  4.160543  4.070808  4.250279
2  8.064278  7.884255  8.244300
3 11.938594 11.641054 12.236133

$se.fit
         1          2          3 
0.02727294 0.06641100 0.11339835 

$df
[1] 3294

$residual.scale
[1] 0.02164304
predict(m2, newdata = casos.nuevos, se.fit = T, interval = "confidence", level = 0.99) #intervalo para valor medio
$fit
        fit       lwr       upr
1  4.160543  4.090252  4.230835
2  8.064278  7.893115  8.235440
3 11.938594 11.646330 12.230858

$se.fit
         1          2          3 
0.02727294 0.06641100 0.11339835 

$df
[1] 3294

$residual.scale
[1] 0.02164304

Concusión.

El rendimiento ajustado depende significativamente de la Marca, el modelo, algunos tipos de transmisión, el tipo de combistible, el tamaño, algunos valores de la categoría, el rendimiento en ciudad y carretera, el logaritmo de la potencia, la calificación y la emisión de Nox. El modelo es significativo y tiene un nivel de explicación alto.