Realizado por: Klever Suqui
Fecha: 2024-09-05
Tema: Análisis de Regresión Lineal Múltiple sobre dos conjuntos de datos
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.
# 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")
Basándonos en la muestra de datos proporcionada y considerando como posible objetivo el precio.
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 )
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
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
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
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):
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):
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.
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.
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.
Basándonos en el resumen del modelo 01, las siguientes variables no son significativas (p-value > 0.05):
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
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
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
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.
Comparación:
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.
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:
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.
Las siguientes variables son significativas para explicar el precio del automóvil:
Las siguientes variables son significativas:
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.
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.
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.
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%).
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%).
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.