Aplicar el Método de Regresión Lineal Múltiple Correctamente

Realizado por: Klever Suqui

Fecha: 2024-09-05

Tema: Análisis de Regresión Lineal Múltiple sobre dos conjuntos de datos

Caso de Estudio

Una compañía reconocida de automóviles (Great Wall Motors) de la República Popular de China aspira entrar en el mercado americano estableciendo allí sus centros de fabricación y ensamblaje de automóviles para competir localmente con sus contrapartes americanas o europeas. Dicha compañía ha contratado un grupo de consultores denominados “Los científicos de datos” para obtener un modelo predictivo que explique el precio de los automóviles. Específicamente, quieren comprender las variables que explican (estadísticamente) el precio de los automóviles en el mercado americano, ya que pueden ser muy diferentes del mercado chino.

Carga del Conjunto de Datos

# Cargar los datos desde la URL data01 - Algunas características del desempeño de automóviles

data=read.csv(url("https://raw.githubusercontent.com/geovannychoez/prueba/master/MTCars.csv"), header = TRUE)

# Cargar los datos desde la URL data02 - - Algunas características de carros usados

data2=read.csv(url("https://raw.githubusercontent.com/geovannychoez/prueba/master/UsedCars.csv"), header = TRUE)

# Renombrar las columnas data01

names(data) <- c("ID_Coche",    "Simbolismo",   "Nombre_Coche", "Tipo_Combustible", "Aspersion",    "Numero_Puertas",   "Carroceria",   "Traccion", "Ubicacion_Motor",  "Distancia_Ejes",   "Longitud_Coche",   "Ancho_Coche",  "Altura_Coche", "Peso_Suelto",  "Tipo_Motor",   "Numero_Cilindros", "Tamano_Motor", "Sistema_Combustible",  "Ratio_Bore",   "Recorrido",    "Ratio_Compresion", "Potencia", "RPM_Pico", "MPG_Ciudad",   "MPG_Carretera",    "Precio")

# Renombrar las columnas data02

names(data2) <- c("Marca","Modelo","Precio","Anio","Kilometraje","Tipo_Combustible","Transmision","Ubicacion","Color","Propietario","Tipo_Vendedor","Motor","Potencia_Maxima","Torque_Maximo","Traccion","Longitud","Ancho","Altura","Capacidad_Asientos","Capacidad_Tanque_Combustible")

Análisis de regresión lineal múltiple

Selección de Variables Cuantitativas Data01

Basándonos en la muestra de datos proporcionada y considerando como posible objetivo el precio.

  • Precio: Variable dependiente potencial, ya que se busca predecir el precio del vehículo.
  • Distancia_Ejes: La distancia entre ejes del vehículo.
  • Longitud_Coche: La longitud total del vehículo.
  • Ancho_Coche: El ancho del vehículo.
  • Altura_Coche: La altura del vehículo.
  • Peso_Suelto: El peso del vehículo sin carga.
  • Tamano_Motor: La capacidad del motor en cc (centímetros cúbicos).
  • Potencia: La potencia máxima del motor en hp (caballos de fuerza).
  • RPM_Pico: Revoluciones por minuto en el pico de potencia.
  • MPG_Ciudad: Rendimiento de combustible en millas por galón en ciudad.
  • MPG_Carretera: Rendimiento de combustible en millas por galón en carretera.
Selección de Variables Cuantitativas Data02
  • Precio: El costo del vehículo, es una variable dependiente potencial.
  • Anio: El año de fabricación del vehículo.
  • Kilometraje: La cantidad de kilómetros recorridos por el vehículo.
  • Longitud: La longitud del vehículo en mm.
  • Ancho: El ancho del vehículo en mm.
  • Altura: La altura del vehículo en mm.
  • Capacidad_Asientos: El número de asientos del vehículo.
  • Capacidad_Tanque_Combustible: La capacidad del tanque de combustible en litros.
Gráfico de Correlación Data01

Realizando el gráfico podremos identificar nuestra variable y para realización de nuestra ecuación teniendo como objetivo precio.

  library(corrplot)
## corrplot 0.94 loaded
  mod <- data[, c("MPG_Ciudad", "MPG_Carretera","Potencia", "RPM_Pico","Tamano_Motor","Peso_Suelto","Ancho_Coche",  "Altura_Coche","Distancia_Ejes","Longitud_Coche","Precio")]
  
  # Crear la matriz de correlación
  cor_matrix <- cor(mod)
  
  # Graficar la matriz de correlación data01
  corrplot.mixed(cor_matrix,
                 lower = "number",
                 upper = "circle",
                 tl.col = "black",
                 tl.cex = 0.5 )

Gráfico de Correlación Data02

Realizando el gráfico podremos identificar nuestra variable y para realización de nuestra ecuación teniendo como objetivo precio.

  library(corrplot)
  
  mod2 <- data2[, c("Precio","Anio","Kilometraje","Longitud","Ancho","Altura","Capacidad_Asientos","Capacidad_Tanque_Combustible")]
  
  # Crear la matriz de correlación
  cor_matrix <- cor(mod2)
  
  # Graficar la matriz de correlación data02
  corrplot.mixed(cor_matrix,
                 lower = "number",
                 upper = "circle",
                 tl.col = "black",
                 tl.cex = 0.5 )

Con la observación de nuestro gráfico identificamos a la variable “precio” como nuestra variable dependiente tanto para la data01 como para la data02

Análisis del Modelo Planteado Data01

Para el realizar el modelo planteado para la Data01 vamos a descartar algunas variable que visualmente hemos identificado no aportan a nuestro modelo, las cuales son: “RPM_Pico” y “Altura_Coche”

La ecuación del modelo de regresión lineal múltiple que has construido es:

precio=B0+B1⋅MPG_Ciudadl+B2.MPG_Carreteral+B3.Potenciax+B4⋅Tamano_Motor+B5.Peso_Suelto+B6.Ancho_Coche+B7.Distancia_Ejes+B8.Longitud_Coche

  # Construcción del modelo data 01
  mod_analisis_01 <- lm(Precio ~ MPG_Ciudad + MPG_Carretera + Potencia + Tamano_Motor + Peso_Suelto + Ancho_Coche + Distancia_Ejes + Longitud_Coche, data = data)
  
  # Resumen del modelo 01
  summary(mod_analisis_01)
## 
## Call:
## lm(formula = Precio ~ MPG_Ciudad + MPG_Carretera + Potencia + 
##     Tamano_Motor + Peso_Suelto + Ancho_Coche + Distancia_Ejes + 
##     Longitud_Coche, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8164.6 -1596.7   -47.9  1355.9 14528.9 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -46218.307  13382.935  -3.454 0.000678 ***
## MPG_Ciudad       -109.552    185.160  -0.592 0.554760    
## MPG_Carretera     117.741    170.683   0.690 0.491120    
## Potencia           52.379     15.373   3.407 0.000796 ***
## Tamano_Motor       83.107     13.420   6.193  3.4e-09 ***
## Peso_Suelto         2.793      1.645   1.697 0.091192 .  
## Ancho_Coche       546.507    255.050   2.143 0.033367 *  
## Distancia_Ejes    108.982    101.708   1.072 0.285255    
## Longitud_Coche    -64.820     57.441  -1.128 0.260509    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3443 on 196 degrees of freedom
## Multiple R-squared:  0.8215, Adjusted R-squared:  0.8142 
## F-statistic: 112.8 on 8 and 196 DF,  p-value: < 2.2e-16
Análisis del Modelo Planteado Data02

Para el realizar el modelo planteado para la Data02 no vamos a descartar ninguna variable para posteriormente compararlos con un modelo 02 ajustado.

La ecuación del modelo de regresión lineal múltiple que has construido es:

Precio=B0+B1.Anio+B2.Kilometraje+B3.Longitud+B4.Anchor+B5.Capacidad_Tanque_Combustible+B6.Altura+B7.Capacidad_Asientos

  # Construcción del modelo data 02
  mod_analisis_02 <- lm(Precio ~ Anio + Kilometraje + Longitud + Ancho + Altura + Capacidad_Asientos + Capacidad_Tanque_Combustible, data = data2)
  
  # Resumen del modelo 02
  summary(mod_analisis_02)
## 
## Call:
## lm(formula = Precio ~ Anio + Kilometraje + Longitud + Ancho + 
##     Altura + Capacidad_Asientos + Capacidad_Tanque_Combustible, 
##     data = data2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3699836  -839327  -230945   505256 28290610 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                  -3.677e+08  2.766e+07 -13.297  < 2e-16 ***
## Anio                          1.794e+05  1.384e+04  12.962  < 2e-16 ***
## Kilometraje                  -3.464e+00  7.106e-01  -4.875 1.18e-06 ***
## Longitud                      1.183e+03  1.964e+02   6.024 2.05e-09 ***
## Ancho                         1.932e+03  5.783e+02   3.341 0.000851 ***
## Altura                       -3.321e+02  4.920e+02  -0.675 0.499743    
## Capacidad_Asientos           -6.489e+05  7.536e+04  -8.611  < 2e-16 ***
## Capacidad_Tanque_Combustible  6.405e+04  5.413e+03  11.833  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1712000 on 1866 degrees of freedom
## Multiple R-squared:  0.5038, Adjusted R-squared:  0.502 
## F-statistic: 270.7 on 7 and 1866 DF,  p-value: < 2.2e-16

Interpretación de las Matrices de Correlación para los Dos Modelos

Modelo 01

Variables utilizadas: MPG_Ciudad, MPG_Carretera, Potencia, Tamano_Motor, Peso_Suelto, Ancho_Coche, Distancia_Ejes, Longitud_Coche.

Correlaciones significativas (corr > 0.5 o corr < -0.5):

  • Potencia y Tamaño del motor: Es razonable esperar una fuerte correlación entre estas dos variables, ya que generalmente, los motores más grandes tienden a generar más potencia.

  • Peso del coche y Potencia: Los autos más pesados suelen tener motores más potentes, lo que demuestra una correlación positiva.

  • Longitud y Ancho del coche: Los autos más largos tienden a ser más anchos, lo que también demuestra una correlación positiva.

Análisis de la salida del modelo 01 (mod_analisis_01):

Variables significativas:

  • Intercepto: Es negativo (-46218), lo que sugiere que si todas las variables explicativas son cero, el precio sería negativo, lo cual no tiene una interpretación práctica directa y es solo un valor de ajuste.

  • Potencia (p-value < 0.001): Es altamente significativa, lo que indica que a mayor potencia, mayor es el precio del vehículo (coeficiente de 52.38).

  • Tamaño del motor (p-value < 0.001): También altamente significativa, con un impacto positivo en el precio (coeficiente de 83.11).

  • Ancho del coche (p-value < 0.05): También tiene un efecto positivo y significativo sobre el precio.

  • Peso suelto: Aunque está en el límite de la significancia (p-value = 0.09), se puede considerarse para su análisis.

Variables no significativas (p-value > 0.05):

  • MPG_Ciudad, MPG_Carretera, Distancia_Ejes, y Longitud_Coche aparentemente no tienen una influencia significativa sobre el precio en este modelo.
Modelo 02

Variables utilizadas: Anio, Kilometraje, Longitud, Ancho,Altura, Capacidad_Asientos, Capacidad_Tanque_Combustible.

Correlaciones significativas (corr > 0.5 o corr < -0.5):

  • Año y Kilometraje: Normalmente, los vehículos más nuevos tienen menos kilometraje, lo que lleva a una correlación negativa.

  • Longitud y Ancho del coche: Similar al primer modelo, es probable que estas variables estén fuertemente correlacionadas.

Análisis de la salida del modelo 02 (mod_analisis_02):

Variables significativas:

  • Intercepto: Al igual que el primer modelo, el intercepto es muy alto y negativo, sin interpretación práctica directa.

  • Año (p-value < 0.001): Muy significativa, lo que sugiere que los vehículos mas nuevos tienen un precio más alto (coeficiente de 179,400).

  • Kilometraje (p-value < 0.001): También muy significativa y tiene un impacto negativo en el precio (coeficiente de -3.46), es decir, a mayor kilometraje, menor precio.

  • Longitud (p-value < 0.001): La longitud del coche tiene un efecto positivo en el precio.

  • Ancho (p-value < 0.001): El ancho también es una variable significativa, contribuyendo al incremento del precio.

  • Capacidad del tanque de combustible (p-value < 0.001): Aumenta el precio del vehículo significativamente.

  • Altura y Capacidad_Asientos (p < 0.001): Con un coeficiente negativo, lo cual sugiere que, en este conjunto de datos, los vehículos con mayor capacidad de asientos son, curiosamente, más baratos. Esto puede deberse a la naturaleza específica del conjunto de datos.

Variables no significativas (p-value > 0.05):

  • No posee el modelo 02

Conclusiones sobre las Correlaciones

  1. Podemos determinar que en los dos modelos analizados las variables que muestran correlaciones más fuertes y significativas son aquellas relacionadas con el tamaño físico del vehículo (potencia, tamaño del motor, longitud, ancho), así como características que afectan directamente la utilidad del automóvil, como la capacidad del tanque y el año del vehículo.

  2. Debemos considerar tambien que las como el kilometraje y la potencia destacan como factores relevantes, pero otras como el MPG y la longitud del coche no parecen influir tanto en el precio sobre el vehiculo.

Ajuste de los Modelos de Regresión

Para refinar los modelos, eliminaremos las variables que no contribuyen significativamente a la predicción del precio, es decir, aquellas con valores p mayores a 0.05 en los resultados anteriores.

Modelo 01 - Ajustado

Basándonos en el resumen del modelo 01, las siguientes variables no son significativas (p-value > 0.05):

  • MPG_Ciudad
  • MPG_Carretera
  • Distancia_Ejes
  • Longitud_Coche
Gráfico de Correlación Data01 Ajustado
  library(corrplot)
  
  mod <- data[, c("Precio","Potencia","RPM_Pico","Tamano_Motor","Peso_Suelto","Ancho_Coche","Altura_Coche")]
  
  # Crear la matriz de correlación
  cor_matrix <- cor(mod)
  
  # Graficar la matriz de correlación data01
  corrplot.mixed(cor_matrix,
                 lower = "number",
                 upper = "circle",
                 tl.col = "black",
                 tl.cex = 0.5 )

  # Construcción del modelo ajustado data 01
  mod_analisis_01 <- lm(Precio ~ Potencia + RPM_Pico + Tamano_Motor + Peso_Suelto + Ancho_Coche + Altura_Coche, data = data)
  
  # Resumen del modelo 01 ajustado
  summary(mod_analisis_01)
## 
## Call:
## lm(formula = Precio ~ Potencia + RPM_Pico + Tamano_Motor + Peso_Suelto + 
##     Ancho_Coche + Altura_Coche, data = data)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -8831  -1960     39   1182  13601 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -6.303e+04  1.403e+04  -4.492 1.20e-05 ***
## Potencia      3.327e+01  1.391e+01   2.392   0.0177 *  
## RPM_Pico      1.871e+00  6.528e-01   2.866   0.0046 ** 
## Tamano_Motor  1.025e+02  1.359e+01   7.539 1.67e-12 ***
## Peso_Suelto   2.263e+00  1.330e+00   1.701   0.0905 .  
## Ancho_Coche   5.314e+02  2.206e+02   2.408   0.0169 *  
## Altura_Coche  1.757e+02  1.198e+02   1.466   0.1441    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3359 on 198 degrees of freedom
## Multiple R-squared:  0.8284, Adjusted R-squared:  0.8232 
## F-statistic: 159.3 on 6 and 198 DF,  p-value: < 2.2e-16
Modelo 02 - Ajustado

En el caso del modelo 02, todas las variables son significativas (p-value < 0.05), por lo que no es necesario eliminar ninguna de ellas sin embargo para validar el modelo hemos decidido eliminar las variables: Altura y Capacidad_Asientos

Gráfico de Correlación Data02 Ajustado
  library(corrplot)
  
  mod2 <- data2[, c("Precio","Anio","Kilometraje","Longitud","Ancho","Capacidad_Tanque_Combustible")]
  
  # Crear la matriz de correlación 
  cor_matrix <- cor(mod2)
  
  # Graficar la matriz de correlación data02 Ajustado
  corrplot.mixed(cor_matrix,
                 lower = "number",
                 upper = "circle",
                 tl.col = "black",
                 tl.cex = 0.5 )

  # Construcción del modelo data 02 Ajustado
  mod_analisis_02 <- lm(Precio ~ Anio + Kilometraje + Longitud + Ancho + Capacidad_Tanque_Combustible, data = data2)
  
  # Resumen del modelo 02 Ajustado
  summary(mod_analisis_02)
## 
## Call:
## lm(formula = Precio ~ Anio + Kilometraje + Longitud + Ancho + 
##     Capacidad_Tanque_Combustible, data = data2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3096253  -853660  -272712   436369 30765905 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                  -3.587e+08  2.847e+07 -12.600  < 2e-16 ***
## Anio                          1.732e+05  1.420e+04  12.203  < 2e-16 ***
## Kilometraje                  -4.427e+00  7.369e-01  -6.008 2.25e-09 ***
## Longitud                      1.010e+03  1.795e+02   5.626 2.12e-08 ***
## Ancho                         2.395e+03  5.873e+02   4.078 4.73e-05 ***
## Capacidad_Tanque_Combustible  5.311e+04  5.143e+03  10.326  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1789000 on 1868 degrees of freedom
## Multiple R-squared:  0.4579, Adjusted R-squared:  0.4564 
## F-statistic: 315.5 on 5 and 1868 DF,  p-value: < 2.2e-16

Comparativa del Rendimiento entre los dos Modelos Ajusatados

Para comparar los dos modelos ajustados, podemos enfocarnos en dos métricas clave: el R-cuadrado ajustado y el error estándar residual, ya que ambos permiten evaluar qué modelo se ajusta mejor a los datos.

  1. Modelo 01 Ajustado
  1. Modelo 02 Ajustado

Comparación:

  1. R-cuadrado ajustado: El Modelo 01 Ajustado tiene un R-cuadrado ajustado mucho más alto que el Modelo 02 Ajustado. Esto indica que el Modelo 01 ajusta mejor los datos y explica una mayor variabilidad del precio en función de las variables predictoras utilizadas.

  2. Error estándar residual: El Modelo 01 Ajustado tiene un error estándar residual significativamente menor comparado con el Modelo 02 Ajustado, lo que sugiere que las predicciones del Modelo 01 son más precisas y menos dispersas en comparación con el Modelo 02.

Conclusión:

  1. El Modelo 01 Ajustado es superior al Modelo 02 Ajustado en cuanto a rendimiento y capacidad de ajuste a los datos.Presenta un R-cuadrado ajustado más alto y un error estándar residual mucho menor, lo que lo convierte en el modelo más adecuado para predecir el precio de los automóviles basado en las variables seleccionadas.

Preguntas

1. ¿Qué variables son significativas para explicar el precio de un automóvil?

Para responder esta pregunta, observamos los resultados de los modelos de regresión lineal, tanto el Modelo 01 Ajustado como el Modelo 02 Ajustado. Las variables significativas son aquellas cuyos valores de p-value son menores a 0.05, lo que indica que tienen un impacto estadísticamente significativo en la predicción del precio del automóvil.

  1. Modelo 01 Ajustado:

Las siguientes variables son significativas para explicar el precio del automóvil:

  • Potencia (p-value = 0.0177)
  • RPM Pico (p-value = 0.0046)
  • Tamaño del motor (p-value < 2e-16)
  • Ancho del coche (p-value = 0.0169)
  1. Modelo 02 Ajustado:

Las siguientes variables son significativas:

  • Año (p-value < 2e-16):
  • Kilometraje (p-value = 2.25e-09)
  • Longitud (p-value = 2.12e-08)
  • Ancho (p-value = 4.73e-05):
  • Capacidad del tanque de combustible (p-value < 2e-16)
2. ¿Qué tan bien esas variables explican el precio de un automóvil?

El rendimiento de ambos modelos se puede evaluar observando el R-cuadrado ajustado y el error estándar residual. Estas métricas nos indican qué tan bien el conjunto de variables explica el precio del automóvil.

  1. El Modelo 01 Ajustado tiene un R-cuadrado ajustado de 0.8232, lo que significa que el 82.32% de la variabilidad en el precio del automóvil puede ser explicada por las variables significativas como potencia, RPM Pico, tamaño del motor, ancho del coche, entre otras. El bajo error estándar residual (3359) indica que las predicciones del modelo son bastante precisas.

  2. En el Modelo 02 Ajustado, el R-cuadrado ajustado es de 0.4564, lo que implica que solo el 45.64% de la variabilidad en el precio es explicado por las variables como el año, kilometraje, longitud, ancho y capacidad del tanque de combustible. Además, el error estándar residual es mucho más alto, lo que sugiere que este modelo tiene más variabilidad en las predicciones y es menos preciso que el Modelo 01.

Conclusiones - Recomendaciones

  1. En el Modelo 01 Ajustado, las variables más importantes para predecir el precio son la potencia, el tamaño del motor, el ancho del coche y las RPM Pico. Estas variables tienen un impacto considerable y explican bien el precio del automóvil (R-cuadrado ajustado = 82.32%).

  2. En el Modelo 02 Ajustado, las variables más relevantes son el año, el kilometraje, la longitud y la capacidad del tanque de combustible. Aunque estas variables son significativas, explican menos de la mitad de la variabilidad del precio (R-cuadrado ajustado = 45.64%).

  3. Como recomendación fina, que la empresa de le importancia a las variables como la potencia, tamaño del motor y ancho del automóvil para tomar decisiones sobre la adquisición de vehículos usados, ya que estas tienen un impacto mayor en el precio, según los resultados obtenidos.