Comportamiento mercado de vehículos Mazda 2

require(ggplot2)
require(plotly)
require(modeest)
require(DescTools)
require(lmtest)

options(scipen = 999)

library(readxl)
Datos <- read_excel("Datos.xlsx")
head(Datos)
## # A tibble: 6 × 7
##     precio kilometraje transmision modelo color  ciudad   Dpto     
##      <dbl>       <dbl> <chr>        <dbl> <chr>  <chr>    <chr>    
## 1 34000000      140000 Automática    2008 Gris   Medellín Antioquia
## 2 26400000      112000 Automática    2012 Gris   Medellín Antioquia
## 3 42500000      102222 Automática    2013 Gris   Itagüí   Antioquia
## 4 91000000        1000 Automática    2022 Gris   Envigado Antioquia
## 5 35000000      134500 Automática    2012 Blanco Medellín Antioquia
## 6 67000000       61997 Automática    2017 Gris   Medellín Antioquia

Regresión Lineal Simple

1. Análisis exploratorio/univariado

La presente base de datos se compone de 314 observaciones de 3 variables cuantitativas, Precio de vehículo, Kilometraje, Modelo (Año), y, 4 variables cualitativas Transmisión, Color, Ciudad y Departamento.

Inicialmente se realizará un análisis univariado y bivariado para identificar características de los datos.

El fin de este estudio es establecer un Modelo de Regresión Lineal Simple y Múltiple para predecir el precio (Y) en función de las demás variables que fungen cómo variables predictoras.

1.1 Precio

##                Valor
## Media       50467516
## Desviacion  20541624
## Maximo     169800000
## Minimo       6800000

En la variable precio encontramos que en promedio el modelo Mazda 2 tiene un precio de venta de $50’467.516, con una desviación de $20’541.624, se presenta un precio de venta máximo de $169’800.000 y mínimo de $6’800.000.

Moda

mfv(Datos$precio)
## [1] 36000000 37000000 42000000

Por otra parte, los valores más frecuentes de venta para Mazda 2 son $36’000.000, $37’000.000 y $42’000.000.

1.2 Kilometraje

##                Valor
## Media       74995.76
## Desviacion  46232.98
## Maximo     280000.00
## Minimo          0.00

En la variable kilometraje encontramos que en promedio los Mazda 2 en venta han recorrido 74.995 km con una desviación de 46.232 km, el vehículo en venta con mayor recorrido posee 280.000 km, así mismo en los datos se encuentran modelos 0 km (nuevos).

Moda

mfv(Datos$kilometraje)
## [1] 0

El valor más frecuente es 0 km, por lo tanto, la mayoría de los Mazda 2 publicados en OLX son nuevos.

1.3 Modelo

##                  Valor
## Media      2014.869427
## Desviacion    4.324552
## Maximo     2022.000000
## Minimo     1995.000000

En la variable modelo encontramos que en promedio los Mazda 2 en venta son del año 2014 con una desviación de 4 años, encontramos que el modelo más nuevo es de 2022 y el más viejo es de 1995.

Moda

mfv(Datos$modelo)
## [1] 2011

El modelo de Mazda 2 más publicado es del 2011.

1.4 Transmisión

Moda

mfv(Datos$transmision)
## [1] "Automática"

En la variable transmisión encontramos que la mayoría de Mazda 2 poseen transmisión automática en vez de mecánica.

1.5 Color

Moda

mfv(Datos$color)
## [1] "Gris"

En la variable color encontramos que la mayoría de Mazda 2 publicados en OLX son de color gris.

1.6 Ciudad

Moda

mfv(Datos$ciudad)
## [1] "Medellín"

La ciudad que más publicaciones de venta en OLX de Mazda 2 es Medellín.

1.7 Departamento

Moda

mfv(Datos$Dpto)
## [1] "Antioquia"

El Departamento con más publicaciones de venta en OLX de Mazda 2 es Antioquia, de la mano con la ciudad que más publicaciones tiene.

2. Análisis bivariado

2.1 Precio y Kilometraje

g1=ggplot(Datos, mapping=aes(x=kilometraje, y=precio)) + geom_point() + theme_bw() +
  
  geom_smooth()
  
ggplotly(g1)
cor(Datos$kilometraje,Datos$precio)
## [1] -0.6543672

Al revisar la relación entre las variables precio y kilometraje se aprecia una relación lineal negativa, con un coeficiente de correlación de -0.65, esto tiene sentido, teniendo en cuenta que a mayor kilometraje hay mayor desgaste en el vehículo y el tiempo de salido del concesionario es mayor, por lo tanto el precio disminuye.

Cambien encontramos valores atípicos que pueden corresponder a versiones especiales en valores superiores a $100.000.000 en la parte superior izquierda de la gráfica, o un error en la publicación de kilometraje, tal vez eliminando tres ceros del mil en el kilometraje o omitiendo este valor para los casos presentes en la sección inferior izquierda del gráfico.

2.2 Precio y Modelo

g2=ggplot(Datos, mapping=aes(x=modelo, y=precio)) + geom_point() + theme_bw() +
  
  geom_smooth()
  
ggplotly(g2)
cor(Datos$modelo,Datos$precio)
## [1] 0.8295419

Al revisar la relación entre las variables precio y modelo se aprecia una relación lineal positiva fuerte, con un coeficiente de correlación de 0.82. Es posible que los modelos nuevos estén en mejor estado y tengan menor kilometraje (sino son 0km), lo que justifica un mayor precio de venta.

2.3 Modelo y Kilometraje

g3=ggplot(Datos, mapping=aes(x=modelo, y=kilometraje)) + geom_point() + theme_bw() +
  
  geom_smooth()
  
ggplotly(g3)
cor(Datos$modelo,Datos$kilometraje)
## [1] -0.7436836

Para las variables modelo y kilometraje encontramos una relación lineal negativa, con un coeficiente de correlación de -0.74.

Este resultado es muy lógico, a mayor edad del vehículo mayor kilometraje ha recorrido. Se aprecian valores atípicos en la parte inferior centra del gráfico, posibles errores en la publicación.

2.4 Precio y Transmisión

g4=ggplot(Datos, mapping=aes(x=transmision, y=precio, fill=transmision)) + geom_boxplot()

ggplotly(g4)

Al analizar en conjunto las variables precio y transmisión se aprecia una mayor variación en los precios en los vehículos de transmisión automática, justificado en la mayor cantidad de vehículos Mazda 2 automáticos, así mismo se aprecia una media de precio mayor en este tipo de transmisión ($56’950.000), también los vehículos de mayor precio tienen esta característica.

2.5 Precio y Color

colores=c("Azul"="blue4", "Beige"="beige", "Blanco" = "white", "Crema"="tan", "Dorado"="gold3", "Gris"="grey", "Marrón"="brown","Morado"="purple3", "Negro"="black","Otro"="orange1", "Plateado"="lightgrey", "Rojo"="red", "Verde"="green", "Vinotinto"="red4")

g5=ggplot(Datos, mapping=aes(x=color, y=precio, fill=color)) + geom_boxplot() +
  
  scale_fill_manual(values=colores) +
  
  theme(axis.title.x = element_blank(),
        axis.text.x = element_blank(),
        axis.ticks.x = element_blank())

ggplotly(g5)

Dentro de los 14 colores de Mazda 2 publicados en OLX encontramos que los carros de color marrón tienen el promedio más alto de precio, en cuanto al color gris, el más frecuente, encontramos al vehículo de mayor precio junto a un promedio de $42’000.000.

2.6 Precio y Departamento

g6=ggplot(Datos, mapping=aes(x=Dpto, y=precio, fill=Dpto)) + geom_boxplot() +
  theme(axis.title.x = element_blank(),
        axis.text.x = element_blank(),
        axis.ticks.x = element_blank())

ggplotly(g6)

En cuanto a la relación entre el precio de venta y el departamento donde se publica el vehículo, encontramos que en Antioquia, el departamento donde más Mazda 2 hay publicados, hay una media del precio de $57’000.000.

Encontramos que el Norte de Santander es el departamento con mayor media en el precio de venta de Mazda 2.

Y, el Valle del Cauca es el departamento que posee los Mazda 2 de mayor y menor precio de venta.

3. Modelos de Regresión Lineal Simple

3.1 MRLS 1 (Y) Precio (x) Kilometraje

Para el primer modelo de regresión lineal simple se ha elegido al kilometraje como variable predictora del precio.

y=Datos$precio
x=Datos$kilometraje

m1=lm(y~x)
m1
## 
## Call:
## lm(formula = y ~ x)
## 
## Coefficients:
## (Intercept)            x  
##  72271766.3       -290.7

El modelo 1 es igual a Precio=$72’271.766.3+(-$290.7∗Kilometraje).

β0=$72’271.766 y β1=-$290.7. Podemos interpretar que un carro 0 km tiene en promedio, un precio de $72’271.766,3 y que por cada kilometro recorrido el vehículo disminuye su precio en $290.7.

summary(m1)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -60471042  -6914624   -489462   6727120 108002424 
## 
## Coefficients:
##                Estimate  Std. Error t value            Pr(>|t|)    
## (Intercept) 72271766.29  1675024.53   43.15 <0.0000000000000002 ***
## x               -290.74       19.02  -15.29 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15560000 on 312 degrees of freedom
## Multiple R-squared:  0.4282, Adjusted R-squared:  0.4264 
## F-statistic: 233.6 on 1 and 312 DF,  p-value: < 0.00000000000000022

Se observa en la tabla del summary del modelo 1 que la variable kilometraje (x) es significativa en el modelo por que el valor p lo indica con un nivel de confianza del 99.9% (***), adicionalmente este modelo logra explicar el 42.82% de la variabilidad en el precio de venta.

3.2 MRLS 2 (Y) Precio (x) Modelo

Para el segundo modelo de regresión lineal simple se ha elegido al modelo como variable predictora del precio.

y=Datos$precio
x1=Datos$modelo

m2=lm(y~x1)
m2
## 
## Call:
## lm(formula = y ~ x1)
## 
## Coefficients:
## (Intercept)           x1  
## -7888772339      3940325

El modelo 2 es igual a Precio=-$7.888’772.339+($3’940.325∗Modelo).

β0=-$7.888’772.339 y β1=$3’940.325.

En este caso no tiene sentido interpretar el intercepto β0 siendo un precio de venta negativo. En cuanto a β1 se puede afirmar que por cada año adicional en el modelo (que el carro se más nuevo) su precio aumentará $3’940.325.

summary(m2)
## 
## Call:
## lm(formula = y ~ x1)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -71764290  -4601367   -772342   3182090 103056684 
## 
## Coefficients:
##                Estimate  Std. Error t value            Pr(>|t|)    
## (Intercept) -7888772339   302582880  -26.07 <0.0000000000000002 ***
## x1              3940325      150175   26.24 <0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11490000 on 312 degrees of freedom
## Multiple R-squared:  0.6881, Adjusted R-squared:  0.6871 
## F-statistic: 688.4 on 1 and 312 DF,  p-value: < 0.00000000000000022

Se observa en la tabla del summary del modelo 2 que la variable modelo (x1) es significativa en el modelo por que el valor p lo indica con un nivel de confianza del 99.9% (***), adicionalmente este modelo logra explicar el 68.81% de la variabilidad en el precio de venta.

3.3 MRLS 3 (Y) Precio (x) Transmisión

Para el tercer modelo de regresión lineal simple se ha elegido al tipo de Transmisión (variable cualitativa) como variable predictora del precio.

y=Datos$precio
x2=Datos$transmision
m3=lm(y~x2)
m3
## 
## Call:
## lm(formula = y ~ x2)
## 
## Coefficients:
## (Intercept)   x2Mecánica  
##    56043563    -12506278

El modelo 3 es igual a Precio=$56’043.563+(-$12’506.278(Transmisión mecánica)).

β0=$56’043.563 y β1=-$12’506.278

Podemos interpretar que en promedio un carro con transmisión automática tiene un precio de $56’043.563 (β0), y si el vehículo tiene transmisión mecánica en promedio su precio sera $12’506.278 menor (β1).

summary(m3)
## 
## Call:
## lm(formula = y ~ x2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -36737286 -14043563  -3787286  13262714 113756437 
## 
## Coefficients:
##              Estimate Std. Error t value             Pr(>|t|)    
## (Intercept)  56043563    1486374  37.705 < 0.0000000000000002 ***
## x2Mecánica  -12506278    2226020  -5.618         0.0000000428 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 19610000 on 312 degrees of freedom
## Multiple R-squared:  0.09187,    Adjusted R-squared:  0.08896 
## F-statistic: 31.56 on 1 and 312 DF,  p-value: 0.00000004276

Se observa en la tabla del summary del modelo 3 que la variable transmisión (x1) es significativa en el modelo por que el valor p lo indica con un nivel de confianza del 99.9% (***), a pesar de esto, el modelo logra explicar únicamente el 9.18% de la variabilidad en el precio de venta, el de menor R2 de los 3 modelos.

4. Mejor modelo MRLS (MRLS 2)

Para la predicción se ha descartado el modelo 3 al tener el menor R2. En el modelo 1, a pesar que no hay gran diferencia en el valor p que mide el aporte de la variable kilometraje con respecto a la variable modelo en el modelo 2, el valor R2 es menor.

De este modo usando el criterio del valor R2 se ha elegido al MRLS 2.

4.1 Validación Cruzada MRLS 2

Se realiza validación cruzada con un escenario 70-30 (modelar validar) para evaluar el poder predictivo del modelo con MAE.

set.seed(123) 
id_modelar = sample(1:nrow(Datos), size = floor(0.7 * nrow(Datos))) 
datos_modelar = Datos[id_modelar,]
datos_validar = Datos[-id_modelar,]


mod_mrls2_modelar = lm(precio ~ modelo, data = datos_modelar)


precio_pred = predict(mod_mrls2_modelar, newdata = datos_validar)

precio_real = datos_validar$precio
error = precio_real - precio_pred
res = data.frame(precio_real, precio_pred, error)

MAE = mean(abs(error)) 
MAE
## [1] 6187565

Comparando el resultado del modelo contra los reales por medio del MAE encontramos que el modelo tiene un error de predicción en el precio de venta de $6’187.565 pesos.

4.2 Predicción MRLS 2

p1 = data.frame(x1 = c(2020, 2021, 2022))

predicciones = predict(m2, p1, interval = "confidence", level = 0.95)

row.names(predicciones) = c(2020, 2021, 2022)

print(predicciones)
##           fit      lwr      upr
## 2020 70683641 68702252 72665029
## 2021 74623965 72408314 76839617
## 2022 78564290 76101173 81027407

El promedio esperado de precio de venta para un Mazda 2 modelo 2020 de $70’683.641. El intervalo de confianza para la predicción del precio de venta del Mazda 2 modelo 2020 nos indica que el promedio del precio de venta estaría entre los $68’702.252 y $72’665.029.

Regresión Lineal Multiple

1.1 MRLM 1 (Y) Precio (X) Demas variables

Para el primer modelo de regresión lineal múltiple se ha elegido a todas las variables aparte del precio, kilometraje (x), modelo(x1), transmisión(x2), color (x3), ciudad(x4) y departamento (x5) como variables predictoras del precio de venta.

y=Datos$precio
x=Datos$kilometraje
x1=Datos$modelo
x2=Datos$transmision
x3=Datos$color
x4=Datos$ciudad
x5=Datos$Dpto

m4=lm(y~x+x1+x2+x3+x4+x5)

summary(m4)
## 
## Call:
## lm(formula = y ~ x + x1 + x2 + x3 + x4 + x5)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -70613529  -3304321         0   2922008  97196603 
## 
## Coefficients: (19 not defined because of singularities)
##                          Estimate     Std. Error t value             Pr(>|t|)
## (Intercept)        -7159233878.15   582904326.06 -12.282 < 0.0000000000000002
## x                          -35.43          25.93  -1.366             0.173111
## x1                     3575655.93      289052.76  12.370 < 0.0000000000000002
## x2Mecánica            -5707708.18     1592202.09  -3.585             0.000405
## x3Beige                9457458.37     6840176.92   1.383             0.168001
## x3Blanco                357999.24     3383311.13   0.106             0.915815
## x3Crema                2934859.21    13155566.94   0.223             0.823647
## x3Dorado                617962.22    12454425.45   0.050             0.960466
## x3Gris                 2068807.21     3283658.07   0.630             0.529245
## x3Marrón               1449787.91     8996702.30   0.161             0.872107
## x3Morado              -1534694.74    12386929.16  -0.124             0.901496
## x3Negro                 -26893.83     4279459.09  -0.006             0.994991
## x3Otro                 3877132.04     5835597.47   0.664             0.507046
## x3Plateado             1192767.10     3895973.55   0.306             0.759740
## x3Rojo                   32253.48     3576008.98   0.009             0.992811
## x3Verde                1624711.67     7838752.15   0.207             0.835969
## x3Vinotinto           -1871757.06     6338929.67  -0.295             0.768023
## x4Aipe                 8596876.90    17914472.29   0.480             0.631726
## x4Ansermanuevo         8683487.15    17027232.04   0.510             0.610514
## x4Armenia             10145403.25    12654614.19   0.802             0.423473
## x4Barrancabermeja      6811857.56    15049793.06   0.453             0.651211
## x4Barranquilla         7017930.86    12553946.19   0.559             0.576643
## x4Bello                9647574.69    12570511.18   0.767             0.443517
## x4Bogotá               7673286.48    12140322.87   0.632             0.527927
## x4Bucaramanga          6393917.86    12736490.97   0.502             0.616095
## x4Cali                11795374.89    12159608.79   0.970             0.332954
## x4Cartago              6630575.01    16849396.87   0.394             0.694268
## x4Chía                24715022.85    13993647.19   1.766             0.078580
## x4Cúcuta               9278017.26    13284902.29   0.698             0.485579
## x4Envigado            11948326.04    13176143.36   0.907             0.365371
## x4Floridablanca        9382698.71    12759430.05   0.735             0.462808
## x4Funza               13051205.43    17089615.56   0.764             0.445765
## x4Fusagasugá           9843921.02    14785891.31   0.666             0.506171
## x4Girardot            15528343.24    17181584.05   0.904             0.366976
## x4Girón                8233292.99    17004177.15   0.484             0.628670
## x4Ibagué               7368381.83    12777785.85   0.577             0.564687
## x4Itagüí               7871825.82    13573899.69   0.580             0.562484
## x4La Ceja             12961841.20    17067674.02   0.759             0.448300
## x4Manizales            9786004.09    12366972.85   0.791             0.429512
## x4Medellín             9660860.37    12094791.31   0.799             0.425181
## x4Montería            -1138154.56    16870628.49  -0.067             0.946266
## x4Neiva                8759416.27    12906296.31   0.679             0.497955
## x4Palestina            1401440.26    16902571.97   0.083             0.933987
## x4Palmira              8261377.73    17199701.80   0.480             0.631416
## x4Pereira              8666578.17    12685336.02   0.683             0.495110
## x4Piedecuesta          7577175.37    17051509.36   0.444             0.657157
## x4Pitalito            14945422.64    17088749.19   0.875             0.382637
## x4Popayán             12703130.12    17222868.44   0.738             0.461460
## x4Río de Oro          11537245.49    17055595.02   0.676             0.499376
## x4Rionegro             6044785.35    13214005.76   0.457             0.647740
## x4Sabaneta             7067933.94    14630497.47   0.483             0.629447
## x4San Gil             11080467.36    17038508.36   0.650             0.516079
## x4SanJuandePasto       6244958.86    14065527.67   0.444             0.657431
## x4SantaMarta          15102498.67    17013706.69   0.888             0.375567
## x4Sincelejo            6376543.63    16983606.16   0.375             0.707640
## x4Tuluá                5868558.61    14665647.14   0.400             0.689380
## x4Valledupar          12207852.04    17038759.90   0.716             0.474361
## x4Villavicencio        7996569.50    13083225.69   0.611             0.541613
## x4Yarumal              8243166.87    17089541.28   0.482             0.629975
## x4Yopal                9348381.63    17299056.98   0.540             0.589400
## x4Yumbo               11409997.56    17087021.96   0.668             0.504899
## x4Zipaquirá            9403607.23    16915330.59   0.556             0.578757
## x5Atlántico                    NA             NA      NA                   NA
## x5Bogotá                       NA             NA      NA                   NA
## x5Caldas                       NA             NA      NA                   NA
## x5Casanare                     NA             NA      NA                   NA
## x5Cauca                        NA             NA      NA                   NA
## x5Cesar                        NA             NA      NA                   NA
## x5Córdoba                      NA             NA      NA                   NA
## x5Cundinamarca                 NA             NA      NA                   NA
## x5Huila                        NA             NA      NA                   NA
## x5Magdalena                    NA             NA      NA                   NA
## x5Meta                         NA             NA      NA                   NA
## x5Nariño                       NA             NA      NA                   NA
## x5NortedeSantander             NA             NA      NA                   NA
## x5Quindío                      NA             NA      NA                   NA
## x5Risaralda                    NA             NA      NA                   NA
## x5Santander                    NA             NA      NA                   NA
## x5Sucre                        NA             NA      NA                   NA
## x5Tolima                       NA             NA      NA                   NA
## x5ValledelCauca                NA             NA      NA                   NA
##                       
## (Intercept)        ***
## x                     
## x1                 ***
## x2Mecánica         ***
## x3Beige               
## x3Blanco              
## x3Crema               
## x3Dorado              
## x3Gris                
## x3Marrón              
## x3Morado              
## x3Negro               
## x3Otro                
## x3Plateado            
## x3Rojo                
## x3Verde               
## x3Vinotinto           
## x4Aipe                
## x4Ansermanuevo        
## x4Armenia             
## x4Barrancabermeja     
## x4Barranquilla        
## x4Bello               
## x4Bogotá              
## x4Bucaramanga         
## x4Cali                
## x4Cartago             
## x4Chía             .  
## x4Cúcuta              
## x4Envigado            
## x4Floridablanca       
## x4Funza               
## x4Fusagasugá          
## x4Girardot            
## x4Girón               
## x4Ibagué              
## x4Itagüí              
## x4La Ceja             
## x4Manizales           
## x4Medellín            
## x4Montería            
## x4Neiva               
## x4Palestina           
## x4Palmira             
## x4Pereira             
## x4Piedecuesta         
## x4Pitalito            
## x4Popayán             
## x4Río de Oro          
## x4Rionegro            
## x4Sabaneta            
## x4San Gil             
## x4SanJuandePasto      
## x4SantaMarta          
## x4Sincelejo           
## x4Tuluá               
## x4Valledupar          
## x4Villavicencio       
## x4Yarumal             
## x4Yopal               
## x4Yumbo               
## x4Zipaquirá           
## x5Atlántico           
## x5Bogotá              
## x5Caldas              
## x5Casanare            
## x5Cauca               
## x5Cesar               
## x5Córdoba             
## x5Cundinamarca        
## x5Huila               
## x5Magdalena           
## x5Meta                
## x5Nariño              
## x5NortedeSantander    
## x5Quindío             
## x5Risaralda           
## x5Santander           
## x5Sucre               
## x5Tolima              
## x5ValledelCauca       
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11900000 on 252 degrees of freedom
## Multiple R-squared:  0.7299, Adjusted R-squared:  0.6645 
## F-statistic: 11.16 on 61 and 252 DF,  p-value: < 0.00000000000000022
AIC(m4)
## [1] 11179.3

Se observa en la tabla del summary del modelo 1 que se hace presente la multicolinealidad al incluir todos las variables, junto a una mayor complejidad en el modelo. Las únicas variables significativas con un intervalo de confianza del 95% son modelo (x1) y transmisión (x2). Este modelo logra explicar el 72.99% de la variabilidad en el precio de venta.

Así mismo posee un criterio de Akaike (AIC) de 11179.3, muestra de la complejidad del mismo.

mae1 <- predict(m4)

errores1 <- abs(y - mae1)

MAEE1 <- mean(errores1)

print(MAEE1)
## [1] 5223652

Tras calcular el MAE del modelo 1 de regresión lineal múltiple encontramos un valor de $5’223.652, monto por el que en promedio erra el modelo en la predicción.

1.1.1 Supuestos MRLM 1

par(mfrow=c(2,2))
plot(m4)

bptest(m4)
## 
##  studentized Breusch-Pagan test
## 
## data:  m4
## BP = 34.399, df = 61, p-value = 0.9976
shapiro.test(resid(m4))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(m4)
## W = 0.61944, p-value < 0.00000000000000022
residuos = residuals(m4)
media_residuos = mean(residuos)
print(media_residuos)
## [1] -0.0000000000008175315

Tras la revisión de gráficos para evaluar los supuestos de normalidad y homocedasticidad se encuentra que el modelo 1, cumple razonablemente con el supuesto de normalidad, donde los residuales se ajustan a a la línea en el gráfico Q-Q a pesar de una desviación en los extremos, pero al realizar el test Shapiro Wilk encontramos un Valor p menor a 5% por lo tanto los errores no siguen una distribución normal, violando este supuesto.

Para el supuesto de homocedasticiadad encontramos en los gráficos indicios de heterocedasticidad, al revisar los resultados de la prueba Breusch Pagan encontramos un valor p de 0.99 por lo tanto se cumple el supuesto de homocedasticiada.

Finalmente para el supuesto de media del error = 0 encontramos que el valor de la media en el modelo 1 es muy cercano a cero.

1.2 MRLM 2

Para el segundo modelo de regresión lineal múltiple, se ha aplicado proceso de selección de variables, este indica que el modelo que incluye las variables kilometraje (x), modelo (x1) y transmisión (x2) es suficiente para explicar el precio de venta. El incorporar las variables de color, ciudad y departamento no generan ningún beneficio adicional al modelo en términos de ajuste.

m5=step(m4)
## Start:  AIC=10286.21
## y ~ x + x1 + x2 + x3 + x4 + x5
## 
## 
## Step:  AIC=10286.21
## y ~ x + x1 + x2 + x3 + x4
## 
##        Df         Sum of Sq               RSS   AIC
## - x4   45  1889150040679216 37559897495718744 10212
## - x3   13   548670202287008 36219417657326536 10265
## <none>                      35670747455039528 10286
## - x     1   264183714697172 35934931169736700 10286
## - x2    1  1819025591268792 37489773046308320 10300
## - x1    1 21660519330363536 57331266785403064 10433
## 
## Step:  AIC=10212.41
## y ~ x + x1 + x2 + x3
## 
##        Df         Sum of Sq               RSS   AIC
## - x3   13   966929987698504 38526827483417240 10194
## <none>                      37559897495718736 10212
## - x     1   338204685570440 37898102181289176 10213
## - x2    1  2131849887621872 39691747383340608 10228
## - x1    1 28409815384077688 65969712879796424 10387
## 
## Step:  AIC=10194.39
## y ~ x + x1 + x2
## 
##        Df         Sum of Sq               RSS   AIC
## <none>                      38526827483417248 10194
## - x     1   374346277953752 38901173761371000 10195
## - x2    1  2247019267486912 40773846750904160 10210
## - x1    1 31995031816266544 70521859299683792 10382
summary(m5)
## 
## Call:
## lm(formula = y ~ x + x1 + x2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -67801596  -4005789   -967519   2918840 100935418 
## 
## Coefficients:
##                   Estimate     Std. Error t value             Pr(>|t|)    
## (Intercept) -7048130077.23   443934538.83 -15.877 < 0.0000000000000002 ***
## x                   -35.39          20.39  -1.736               0.0836 .  
## x1              3525641.23      219734.18  16.045 < 0.0000000000000002 ***
## x2Mecánica     -5506174.38     1294933.12  -4.252            0.0000281 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11150000 on 310 degrees of freedom
## Multiple R-squared:  0.7083, Adjusted R-squared:  0.7055 
## F-statistic: 250.9 on 3 and 310 DF,  p-value: < 0.00000000000000022

Se observa en la tabla del summary del modelo 2 que se hace presente la multicolinealidad al incluir la variable kilometraje y modelo como variables predictoras, estas presentan un coeficiente de correlación de -0.74. En este caso, la variable kilometraje (x) no es significativa estando la variable modelo.

Este modelo logra explicar el 70.83% de la variabilidad en el precio de venta.

Así mismo posee un criterio de Akaike (AIC) de 10194.30 de acuerdo a la selección de variables, inferior al modelo 1.

mae2 <- predict(m5)

errores2 <- abs(y - mae2)

MAEE2 <- mean(errores2)

print(MAEE2)
## [1] 5501909

Tras calcular el MAE del modelo 2 de regresión lineal múltiple encontramos un valor de $5’501.909, monto por el que en promedio erra el modelo en la predicción.

1.2.1 Supuestos MRLM 2

par(mfrow=c(2,2))
plot(m5)

bptest(m5)
## 
##  studentized Breusch-Pagan test
## 
## data:  m5
## BP = 2.1372, df = 3, p-value = 0.5444
shapiro.test(resid(m5))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(m5)
## W = 0.59398, p-value < 0.00000000000000022
residuos1 = residuals(m5)
media_residuos1 = mean(residuos1)
print(media_residuos1)
## [1] -0.0000000002728643

Tras la revisión de gráficos para evaluar los supuestos de normalidad y homocedasticidad se encuentra que el modelo 2, cumple razonablemente con el supuesto de normalidad, donde los residuales se ajustan a a la línea en el gráfico Q-Q a pesar de una desviación en los extremos, pero al realizar el test Shapiro Wilk encontramos un Valor p menor a 5% por lo tanto los errores no siguen una distribución normal, violando este supuesto.

Para el supuesto de homocedasticiadad encontramos en los gráficos indicios de heterocedasticidad, al revisar los resultados de la prueba Breusch Pagan encontramos un valor p de 0.54 por lo tanto se cumple el supuesto de homocedasticiada.

Finalmente para el supuesto de media del error = 0 encontramos que el valor de la media en el modelo 1 es muy cercano a cero.

1.3 MRLM 3

Para el tercer modelo de regresión lineal múltiple se ha elegido a las variables kilometraje y transmisión(x2) como variables predictoras del precio de venta.

m6=lm(y~x+x2)

summary(m6)
## 
## Call:
## lm(formula = y ~ x + x2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -55094243  -7063673    471227   7551066 104952732 
## 
## Coefficients:
##                Estimate  Std. Error t value             Pr(>|t|)    
## (Intercept) 74783433.83  1707239.90  43.804 < 0.0000000000000002 ***
## x               -275.81       18.68 -14.762 < 0.0000000000000002 ***
## x2Mecánica  -8145337.90  1734986.50  -4.695           0.00000401 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15060000 on 311 degrees of freedom
## Multiple R-squared:  0.466,  Adjusted R-squared:  0.4626 
## F-statistic: 135.7 on 2 and 311 DF,  p-value: < 0.00000000000000022
AIC(m6)
## [1] 11275.32

Se observa en la tabla del summary del modelo 3 que la variable kilometraje (x) es significativa para el modelo, a diferencia del modelo 2, del mismo modo la variable transmisión (x2) también es significativa con un intervalo de confianza del 99.9% (***).

Este modelo logra explicar el 46.6% de la variabilidad en el precio de venta.

Así mismo posee un criterio de Akaike (AIC) de 11275.32, superior al del modelo 1, teniendo menos variables predictoras.

mae3 <- predict(m6)

errores3 <- abs(y - mae3)

MAEE3 <- mean(errores3)

print(MAEE3)
## [1] 9720358

Tras calcular el MAE del modelo 3 de regresión lineal múltiple encontramos un valor de $9’720.358, monto por el que en promedio erra el modelo en la predicción.

1.3.1 Supuestos MRLM 3

par(mfrow=c(2,2))
plot(m6)

bptest(m6)
## 
##  studentized Breusch-Pagan test
## 
## data:  m6
## BP = 15.565, df = 2, p-value = 0.0004169
shapiro.test(resid(m6))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(m6)
## W = 0.83544, p-value < 0.00000000000000022
residuos2 = residuals(m6)
media_residuos2 = mean(residuos2)
print(media_residuos2)
## [1] 0.00000000006758067

Tras la revisión de gráficos para evaluar los supuestos de normalidad y homocedasticidad se encuentra que el modelo 2, posee considerables desviaciones en lo extremos del gráfico Q-Q, al realizar el test Shapiro Wilk encontramos un Valor p menor a 5% por lo tanto los errores no siguen una distribución normal, violando este supuesto.

Para el supuesto de homocedasticiadad encontramos en los gráficos indicios de heterocedasticidad al no evidenciar patrones aleatoris, al revisar los resultados de la prueba Breusch Pagan encontramos un valor p de 0.0004 por lo tanto se viola el supuesto de homocedasticiada.

Finalmente para el supuesto de media del error = 0 encontramos que el valor de la media en el modelo 1 es muy cercano a cero.

2. Mejor modelo MRLM (MRLM 2)

Todos los modelos presentados no cumplen con el supuesto de normalidad, solo el modelo 1 y 2 cumplen con el supuesto de homocedasticidad, en adición se cumple el supuesto de media del error = 0.

Aunque el modelo 1 presenta un R2 mayor (72%) en comparación al R2 del modelo 2 (70%), este valor es similar, en adición, el modelo 2 presenta un valor AIC menor, es menos complejo.

Por estas razones se elige al modelo 2 cómo el mejor modelo de regresión lineal múltiple.

3. Transformación de MRLM 2 (MRLM 2 Lin - Log)

Teniendo en cuenta que el modelo 2 no cumple con el supuesto de normalidad, se aplicara una transformación Lin-Log, aplicando logaritmo a las variables predictoras cuantitativas para intentar mejorar la normalidad de los residuos.

library(readxl)

constante=1

x_transformado <- x + constante
x1_transformado <- x1 + constante

x_log <- log(x_transformado)
x1_log <- log(x1_transformado)

m5l <- lm(y ~ x_log + x1_log + x2)

summary(m5l)
## 
## Call:
## lm(formula = y ~ x_log + x1_log + x2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -67220484  -3925525   -574157   3292907 102290700 
## 
## Coefficients:
##                 Estimate   Std. Error t value             Pr(>|t|)    
## (Intercept) -54722722055   2364116380 -23.147 < 0.0000000000000002 ***
## x_log           -1274088       283432  -4.495           0.00000983 ***
## x1_log        7200717269    310564489  23.186 < 0.0000000000000002 ***
## x2Mecánica      -5116952      1265454  -4.044           0.00006649 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10860000 on 310 degrees of freedom
## Multiple R-squared:  0.723,  Adjusted R-squared:  0.7203 
## F-statistic: 269.7 on 3 and 310 DF,  p-value: < 0.00000000000000022
AIC(m5l)
## [1] 11071.25

Inicialmente observa en la tabla del summary del modelo 2 transformado que se elimina la multicolinealidad, ahora todas la variables predictoras son significativas.

Este modelo logra explicar el 72,3% de la variabilidad en el precio de venta, 1,4% más que el modelo sin transformación.

Posee un criterio de Akaike (AIC) de 11071.25 mayor al 10194.30 del modelo sin transformación.

mae4 <- predict(m5l)

errores4 <- abs(y - mae4)

MAEE4 <- mean(errores4)

print(MAEE4)
## [1] 5441419

Tras calcular el MAE del modelo 2 de regresión lineal múltiple encontramos un valor de $5’441.419,monto por el que en promedio erra el modelo en la predicción, este MAE es inferior al del modelo sin transformación que posee un valor de $5’501.909.

3.1 Supuestos MRLM 2 Lin - Log

par(mfrow=c(2,2))
plot(m5l)

bptest(m5l)
## 
##  studentized Breusch-Pagan test
## 
## data:  m5l
## BP = 3.7809, df = 3, p-value = 0.2861
shapiro.test(resid(m5l))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(m5l)
## W = 0.60565, p-value < 0.00000000000000022
residuos4 = residuals(m5l)
media_residuos4 = mean(residuos4)
print(media_residuos4)
## [1] 0.0000000002721909

Tras la revisión de gráficos para evaluar los supuestos de normalidad y homocedasticidad se encuentra que el modelo 2 transformado, no mejora la distribución de los residuales, con un valor p de la prueba Shapiro Wilk que rechaza que los datos provienen de una distribución normal.

Continua cumpliendo la media = 0 de los errores y la homocedasticidad.

4. Predicción (MRLM 2)

Aunque el modelo transformado (MRLM 2 Lin-Log) tiene un R2 ligeramente mayor, el modelo sin transformación (MRLM 2) tiene un AIC considerablemente inferior y un MAE comparable. Por lo tanto, se prioriza la simplicidad del modelo y un buen ajuste a los datos usando para la predicción el modelo sin transformación MRLM 2.

1. ¿Cual seria el precio de venta estimado de un Mazda 2 modelo 2011, con 100.000km de transmisión automática?

Caso1=predict(m5,list(x=100000, x1=2011,x2="Automática"))
Caso1
##        1 
## 38395372

Promedio muestra con esas características: $32’966.667

2. ¿Cual seria el precio de venta estimado de un Mazda 2 modelo 2022, con 0km de transmisión automática?

Caso2=predict(m5,list(x=0, x1=2022,x2="Automática"))
Caso2
##        1 
## 80716489

Promedio muestra con esas características: $90’316.666 (Excluyendo 2do carro más caro $159M)

3. ¿Cual seria el precio de venta estimado de un Mazda 2 modelo 2017, con 65.000km de transmisión automática?

Caso3=predict(m5,list(x=65000, x1=2017,x2="Automática"))
Caso3
##        1 
## 60787892

Promedio muestra con esas características: $62’965.833