1 Por medio de web scraping descargar la base de datos de precios de vehiculos mazda 2 para Colombia del portal OLX https://www.olx,com.co/ con las variables: precio, kilometraje, modelo, transmisión, ciudad.
Se genera una base de datos con un total de 303 observaciones, luego de una limpieza previa en excel de autos que no eran de la marca y modelo referenciado pero descargadas en el proceso de Web Scraping.
library(readxl)
Olx <- read_excel("C:/Users/jdiaz/Downloads/Olx domingo.xlsx")
head(Olx)
| precio | modelo | año | kilometraje | transmisión | único dueño | color | Ciudad |
|---|---|---|---|---|---|---|---|
| 68000000 | 2 SEDAN | 2022 | 17200 | Mecánica | No | Plateado | Cali |
| 22000000 | 2 SEDAN | 2011 | 102000 | Mecánica | No | Plateado | Barranquilla |
| 22000000 | Mazda 2 | 2008 | 136000 | Automática | No | Negro | Bogotá |
| 22000000 | Mazda 2 | 2008 | 136000 | Automática | No | Negro | Bogotá |
| 23500000 | Mazda 2 | 2008 | 136000 | Automática | No | Negro | Bogotá |
| 25800000 | 2 HATCHBACK | 2019 | 129000 | Automática | No | Blanco | Cali |
summary(Olx)
## precio modelo año kilometraje
## Min. :22000000 Length:303 Length:303 Min. : 0
## 1st Qu.:35000000 Class :character Class :character 1st Qu.: 45800
## Median :42000000 Mode :character Mode :character Median : 84000
## Mean :49530363 Mean : 80013
## 3rd Qu.:63000000 3rd Qu.:110000
## Max. :98500000 Max. :200000
## transmisión único dueño color Ciudad
## Length:303 Length:303 Length:303 Length:303
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
2 Realizar una exploración de datos para evaluar la posible relacion entre precio con las demas variables
Producto del análisis gráfico y estadisticos complementarios se tienen las siguientes hipotesis:
Variables cuantitativas a Kilometraje: Existe una relación inversa entre el precio y esta variable, de acuerdo a lo esperado, con un coeficiente de correlación de -0,83.
Variables cualitativas
a Ciudad:No se observa un patrón claro de correlación entre las variables. Existen muchas categorias lo cual pudiera estar generando problemas para encontrar algún tipo de correlación. Se podría generar algún tipo de agrupación de ciudades en departamentos para volver a realizar el análisis, puesto que ademas de no observarse un patrón claro, en el modelo inicial, se observan pocas ciudades significativas en relación a la ciudad de Acacias, donde ademas estan muy cerca de la zona de rechazo de su valor p, indicando una relación muy débil.
b Transmisión: Se observan valores más altos en los vehículos con transmisión automática y transmisión automatica secuencial frente a la mecánica. De acuerdo a la revista Motor todas las cajas automaticas son secuenciales, por lo tanto la denominación se refiere a temas de marketing y mejoras en el funcionamiento del sistema de transmisión automatica, con lo cual se podría realizar una fusión entre estas dos categorias.
c Color: Se observan algunos colores que tienen un precio más bajo, pero no se puede observar un patron a nivel gráfico. Se podrian agrupar por tonos claros y oscuros buscando poder identificar algun tipo de patrón o comportamiento asociado al color. En el modelo inicial, ningun color resulta significativo.
c Unico dueño: Si bien no se encontraba en las variables solicitadas, se explora pues es conocido que se convierte en un plus que el vehículo haya tenido solo un dueño a cargo, lo cual puede estar asociado a mayor y un patrón establecido de cuidado. Esto se confirma para el set de datos, observandose que los vehiculos con único dueño tienen un mayor valor,resultando ser significativa y generando un mayor valor del vehiculo frente a los que tienen más de un dueño.
d Año: Entre más reciente es el vehículo mayor valor tiene, lo cual puede asociarse y correlacionarse con el número de kilometros del vehículo, asi como que incluya las ultimas novedades de la marca y el modelo analizado. En el modelo inicial todos los años se identifican como significantes para el mismo.
e. Modelo: Los vehículos bajo la versión sedán tienen un mayor precio que las otras dos categorias. Sin embargo, se observa un problema. En la practica existen 2 modelos del vehículo: sedán y hatchback, por lo cual la categoría “mazda 2” contiene vehículos de las otras 2 categorías y ayudaría de una mejor manera a explicar el precio. No todos los anunciantes colocan la información adecuada y tendria que realizarse un metodo manual observando la foto de cada vehículo para poder mejorar la calidad de los datos.
library(ggplot2)
boxplot(Olx$precio ~ Olx$Ciudad)
boxplot(Olx$precio ~ Olx$transmisión)
boxplot(Olx$precio ~ Olx$color)
boxplot(Olx$precio ~ Olx$`único dueño`)
boxplot(Olx$precio ~ Olx$año)
boxplot(Olx$precio ~ Olx$modelo)
ggplot(data =Olx , mapping = aes(x=kilometraje, y=precio)) + geom_point()+theme_bw()+geom_smooth()
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
cor(x=Olx$kilometraje,y=Olx$precio)
## [1] -0.8397688
mod=lm(precio~., data=Olx)
summary(mod)
##
## Call:
## lm(formula = precio ~ ., data = Olx)
##
## Residuals:
## Min 1Q Median 3Q Max
## -29598596 -1670811 0 2193308 11240022
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.676e+07 5.666e+06 4.724 4.32e-06 ***
## modelo2 SEDAN 2.395e+06 1.105e+06 2.168 0.031338 *
## modeloMazda 2 5.307e+05 7.707e+05 0.689 0.491856
## año2009 4.681e+06 2.327e+06 2.011 0.045621 *
## año2010 4.138e+06 2.117e+06 1.954 0.052044 .
## año2011 6.019e+06 1.914e+06 3.145 0.001911 **
## año2012 8.003e+06 1.867e+06 4.285 2.82e-05 ***
## año2013 9.548e+06 1.957e+06 4.878 2.17e-06 ***
## año2014 1.137e+07 2.244e+06 5.068 9.01e-07 ***
## año2015 1.196e+07 2.220e+06 5.389 1.95e-07 ***
## año2016 2.477e+07 2.297e+06 10.780 < 2e-16 ***
## año2017 2.648e+07 2.449e+06 10.811 < 2e-16 ***
## año2018 3.008e+07 2.546e+06 11.816 < 2e-16 ***
## año2019 2.980e+07 2.591e+06 11.503 < 2e-16 ***
## año2020 3.556e+07 2.828e+06 12.576 < 2e-16 ***
## año2021 3.955e+07 3.076e+06 12.860 < 2e-16 ***
## año2022 4.621e+07 3.056e+06 15.124 < 2e-16 ***
## kilometraje -4.605e+01 1.701e+01 -2.708 0.007353 **
## transmisiónAutomática Secuencial 2.072e+06 1.311e+06 1.580 0.115573
## transmisiónMecánica -2.907e+06 7.400e+05 -3.929 0.000117 ***
## `único dueño`Sí 3.187e+06 9.073e+05 3.513 0.000546 ***
## colorBeige 7.152e+05 3.698e+06 0.193 0.846816
## colorBlanco -8.096e+05 1.583e+06 -0.511 0.609658
## colorCrema -7.658e+04 5.571e+06 -0.014 0.989046
## colorDorado -1.792e+06 5.303e+06 -0.338 0.735732
## colorGris 5.098e+05 1.546e+06 0.330 0.741896
## colorMarrón -4.463e+05 4.043e+06 -0.110 0.912230
## colorMorado -7.803e+05 5.258e+06 -0.148 0.882172
## colorNegro -1.090e+06 1.935e+06 -0.563 0.573725
## colorOtro 8.824e+05 2.593e+06 0.340 0.733999
## colorPlateado -1.910e+06 1.874e+06 -1.019 0.309322
## colorRojo 6.919e+05 1.706e+06 0.406 0.685534
## colorVerde -2.453e+06 3.879e+06 -0.632 0.527806
## colorVinotinto -1.712e+06 2.772e+06 -0.618 0.537523
## CiudadAipe 6.372e+06 7.396e+06 0.862 0.389978
## CiudadAnsermanuevo 8.079e+06 7.277e+06 1.110 0.268228
## CiudadArmenia 1.047e+07 5.417e+06 1.932 0.054746 .
## CiudadBarrancabermeja 1.129e+07 6.357e+06 1.776 0.077271 .
## CiudadBarranquilla 5.900e+06 5.360e+06 1.101 0.272331
## CiudadBello 9.085e+06 5.326e+06 1.706 0.089545 .
## CiudadBogotá 6.641e+06 5.152e+06 1.289 0.198842
## CiudadBucaramanga 8.357e+06 5.439e+06 1.537 0.125965
## CiudadCali 5.586e+06 5.195e+06 1.075 0.283455
## CiudadCartago 3.208e+06 7.194e+06 0.446 0.656140
## CiudadChía 3.335e+06 6.258e+06 0.533 0.594610
## CiudadCúcuta 7.574e+06 5.637e+06 1.343 0.180625
## CiudadEnvigado 9.033e+06 5.660e+06 1.596 0.112048
## CiudadFloridablanca 1.072e+07 5.574e+06 1.923 0.055895 .
## CiudadFunza 6.398e+06 7.247e+06 0.883 0.378365
## CiudadFusagasugá 8.740e+06 6.392e+06 1.367 0.173062
## CiudadGirardot 1.283e+07 7.273e+06 1.764 0.079265 .
## CiudadGirón 3.963e+06 7.075e+06 0.560 0.576030
## CiudadIbagué 5.858e+06 5.441e+06 1.077 0.282906
## CiudadItagüí 1.038e+07 6.406e+06 1.621 0.106558
## CiudadLaCeja 1.312e+07 7.342e+06 1.787 0.075508 .
## CiudadManizales 9.890e+06 5.282e+06 1.872 0.062599 .
## CiudadMedellín 9.558e+06 5.149e+06 1.856 0.064875 .
## CiudadMontería 5.340e+06 7.168e+06 0.745 0.457138
## CiudadNeiva 8.767e+06 5.507e+06 1.592 0.112947
## CiudadPalestina 7.511e+06 7.228e+06 1.039 0.299948
## CiudadPalmira 6.127e+06 7.293e+06 0.840 0.401888
## CiudadPereira 8.886e+06 5.483e+06 1.621 0.106647
## CiudadPiedecuesta 1.381e+07 7.271e+06 1.900 0.058887 .
## CiudadPitalito 1.137e+07 7.268e+06 1.564 0.119372
## CiudadPopayán 7.304e+06 7.346e+06 0.994 0.321256
## CiudadRío de Oro 6.946e+06 7.294e+06 0.952 0.342092
## CiudadRionegro 4.556e+06 5.624e+06 0.810 0.418823
## CiudadSabaneta 9.608e+06 6.116e+06 1.571 0.117755
## CiudadSan Juan de Pasto 6.506e+06 5.641e+06 1.153 0.250126
## CiudadSanGil 4.095e+06 7.256e+06 0.564 0.573198
## CiudadSantaMarta 1.120e+07 7.255e+06 1.544 0.124104
## CiudadSincelejo 5.020e+06 7.161e+06 0.701 0.484070
## CiudadTuluá 5.669e+06 6.276e+06 0.903 0.367419
## CiudadValledupar 5.182e+06 7.342e+06 0.706 0.481106
## CiudadVillavicencio 8.481e+06 5.926e+06 1.431 0.153927
## CiudadYarumal 1.468e+07 7.316e+06 2.006 0.046148 *
## CiudadYopal 9.921e+06 7.239e+06 1.370 0.172046
## CiudadYumbo 7.821e+06 7.266e+06 1.076 0.283017
## CiudadZipaquirá 1.433e+07 7.274e+06 1.970 0.050180 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4840000 on 203 degrees of freedom
## (21 observations deleted due to missingness)
## Multiple R-squared: 0.9445, Adjusted R-squared: 0.9232
## F-statistic: 44.33 on 78 and 203 DF, p-value: < 2.2e-16
3 Proponer un modelo de regresión lineal múltiple e interpretar los resultados (betas)
De acuerdo a los resultados del punto anterior se procede a recategorizar las variables de transmisión,ciudad y color a partir de agrupaciones, observando los siguientes resultados.
a. Ciudad:En una primera etapa se agrupan por departamentos y las principales ciudades capitales del país. Desde el análisis gráfico y resultados del modelo con esta transformación no se observa que esta variable tenga significancia para el modelo.Se propone una nueva agrupación bajo departamentos cercanos que comparten elementos comunes a nivel cultural y de geografía, lo cual generó 5 zonas:
Pacífico: incluye todos los municipios ubicados en los departamentos de Cauca, Nariño y Valle del Cauca
Cafetera: incluye todos los municipios ubicados en los departamentos de Antioquia, Caldas, Risaralda y Quindio
Caribe: incluye todos los municipios ubicados en los departamentos de Atlántico, Cordoba, Sucre, Magdalena y Cesar
Centro: incluye todos los municipios ubicados en los departamentos de Tolima, Huila, Cundinamarca y los 2 Santanderes
Oriente: Caribe: incluye todos los municipios ubicados en los departamentos de Meta y Casanare
Esta nueva transformación genera unos resultados diferentes permitiendo incluir estos resultados en el último modelo
b. Transmisión: Se incluye la transmisión automática secuencial en la misma categoria de transmisión automática. Esta variable ya era significativa en el modelo preliminar y no se observan mayores cambios.
c. Color: En el modelo inicial, ningun color resulta significativo, lo cual se replica para la transformación realizada y se confirma con el gráfico generado.
Modelo propuesto
Para validar la pertinencia de los cambios en las variables categoricas, se utiliza el metodo de Akaike Information Criterion (AIC), bajo una estimación hacia delante, con el propósito de realizar la mejor selección de variables posibles, sobre el cual se valida la pertinencia de la inclusión de la variable de Ciudad bajo una agrupación por regiones así como el cambio del la variable transmisión.
Para facilitar la interpretación, el precio se expresa en millones de pesos. El modelo para predecir el precio de un vehiculo mazda 2 propuesto contendria las siguientes variables:
La ecuación resultante es la siguiente: $Precio mazda 2= 35.9 millones(Bo)- 2.91 millones (transmisión mecánica,B1)-3.531 millones (Caribe,B2)-1.975 millones (Centro,B3) - 3.58 millones (pacífico, B4)+ 2.289 millones (único dueño si,B5) + 4.299 millones (año 2009, B6) + 4.369 millones (año2010, B7) + 6.115 millones (año 2011, b8) + 7.25 millones (año 2012, b9) + 9.64millones (año 2013, b10) + 11.57 millones (año 2014,B11) + 13.18 millones (año 2015, B12) + 25.62 millones (año 2016, B13) + 27.17 (año 2017, B14) + 30.6 millones (año 2018, B15) + 31.4 (año 2019, B16) + 36.40 (Año 2020, B17) + 39.86 (Año 2021, B18) + 47.64 (Año 2022, B19) -0,0000436 millones*(kilometros vehiculo,B20) +1.904 millones (Sedan, B21) $
Al ser un modelo que incluye variables categóricas, nos genera un Beta por cada categoría y estos valores se comparan con la primera categoria que aparece en orden alfabetico en los datos. Las categorias de referencia para cada variable de este modelo son:
Año= 2008 Región= Cafetera Modelo= Hatchback Transmisión= automática Único dueño = No
Para explicar los betas arrojados del modelo, lo haremos a través de un ejemplo de uso del modelo. Si tuvieramos dos carros con las siguientes caracteristicas:
Carro 1: Modelo 2008, ubicado en la región caribe, con 100.000 km, varios dueños, transmisión automatica y un modelo tipo hatchback.
Este carro tiene un valor base de 35.9 millones, sobre el cual se iran haciendo adiciones o restas a partir del resto de caracteristicas. En algunas variables, pueda que el efecto sea neutro, pues ya se encuentran incorporadas en este valor si alguna de las variables categoricas toma el valor de referencia. Veamos los valores a restar o sumar de acuerdo a las caracteristicas de este vehículo.
Transmisión: $0. No se adiciona ningun valor pues ya se encuentra incluido en el valor de Bo, al ser el tipo de transmisión de referencia para el resto de categorias de la variable.
Año: $0. No se adiciona ningun valor pues ya se encuentra incluido en el valor de Bo, al ser el año de referencia para el resto de categorias de la variable.
Cantidad dueños: $0. No se adiciona ningun valor pues ya se encuentra incluido en el valor de Bo, al ser el tipo de cantidad de dueños de referencia para el resto de categorias de la variable.
Kilometraje: $-0,0436 millones*(100.000)= - 4.3 millones
Región: - 3.531 millones, al estar ubicado en la región caribe.
Modelo= $0. No se adiciona ningun valor pues ya se encuentra incluido en el valor de Bo, al ser el tipo de modelo de referencia para el resto de categorias de la variable.
Se suman todos los valores y nos arroja un precio estimado para este vehiculo de: 35.9 + 0 +0 +0 -4.3 - 3.531 - 0 = 28, 01 millones de pesos.
Carro 2: Modelo 2022, ubicado en la región cafetera, con 1.000 km, único dueño, transmisión mecánica y un modelo tipo sedan.
Este carro tiene el mismo valor base de 35.9 millones, sobre el cual se iran haciendo adiciones o restas a partir del resto de caracteristicas. Veamos los valores a restar o sumar de acuerdo a las caracteristicas de este vehículo.
Transmisión: $-2,91 millones, al contar con una transmisión mecánica.
Año: $47.64. Se adiciona este valor al ser el asociado al año 2022.
Cantidad dueños: $2.289 millones. Único dueño.
Kilometraje: $-0,0436 millones*(1.000)= - 0,004 millones
Región: $0 millones, al estar ubicado en la región cafetera, la cual es la de referencia.
Modelo= $1.904 millones, al ser sedán.
Se suman todos los valores y nos arroja un precio estimado para este vehiculo de: 35.9 -2,91 +47,64 +2,289 -0.004 + 0+ 1.904 = 84,87 millones de pesos.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Olx$transmisión2=recode (Olx$transmisión, "Automática Secuencial" = "Automática")
Olx$Ciudad2=recode (Olx$Ciudad, "Acacías"= "Meta", "Aipe"="Huila","Ansermanuevo"="Valle del Cauca","Barrancabermeja"="Santander", "Bello"="AM Medellín","Bucaramanga"= "Am Bucaramanga","Cartago"="Valle del Cauca", "Chía"="Cundinamarca","Cúcuta"="NorSantander","Envigado"="AM Medellín","Floridablanca"= "Am Bucaramanga","Funza"="Cundinamarca","Fusagasugá"="Cundinamarca","Girardot"= "Cundinamarca","Girón"="Santander","Itagüí"="AM Medellín","Medellín"="AM Medellín","LaCeja"="Antioquia","Montería"="Cordoba","Neiva"="Huila","Palestina"="Caldas","Manizales"="Caldas","Palmira"="Valle del Cauca","Pereira"="Risaralda","Piedecuesta"="Am Bucaramanga","Pitalito"="Huila","Popayán"= "Cauca","Río de Oro"= "Cesar","Rionegro"="Antioquia","Sabaneta"="AM Medellín","San Juan de Pasto"="Nariño" ,"Santa Marta"="Magdalena","Sincelejo"="Sucre","SanGil"="Santander","Tuluá"="Valle del Cauca","Valledupar"="Cesar","Yarumal"="Antioquia","Yumbo"="Valle del Cauca", "Zipaquirá"="Cundinamarca")
Olx$Color2=recode(Olx$color, "Azul"= "Azunegro","Negro"="Azunegro","Beige"= "Pastel","Crema"="Pastel","Dorado"="Pastel","Blanco"="Grises","Plateado"="Grises","Gris"="Grises","Rojo"="Rojos","Vinotinto"="Rojos","Morado"="Rojos","Verde"="Otro","Marrón"="Otro")
Olx$Region=recode(Olx$Ciudad2, "Cauca"="Pacífico","Valle del Cauca"="Pacífico","AM Medellín"="cafetera","Cesar"="Caribe","Cordoba"="Caribe","SantaMarta"="Caribe","Barranquilla"="Caribe","Sucre"="Caribe","Cundinamarca"="Centro","Ibague"="Centro","Bogotá"="Centro","Am Bucaramanga"="Centro","Caldas"="cafetera","Risaralda"="cafetera","Huila"="Centro","Cali"="Pacífico","Santander"="Centro","Armenia"="cafetera","Antioquia"="cafetera","Ibagué"="Centro", "Nariño"="Pacífico","Meta"="Oriente","Villavicencio"="Oriente","Yopal"="Oriente","NorSantander"="Centro")
Olx$precio2 = Olx$precio / 1000000
boxplot(Olx$precio2 ~ Olx$transmisión2)
boxplot(Olx$precio2 ~ Olx$Ciudad2)
boxplot(Olx$precio2 ~ Olx$Color2)
boxplot(Olx$precio2 ~ Olx$Region)
mod2=lm(precio2~ transmisión2 +Ciudad2+Color2+`único dueño`+año+kilometraje+modelo, data=Olx)
summary(mod2)
##
## Call:
## lm(formula = precio2 ~ transmisión2 + Ciudad2 + Color2 + `único dueño` +
## año + kilometraje + modelo, data = Olx)
##
## Residuals:
## Min 1Q Median 3Q Max
## -31.4593 -1.7234 0.2555 2.3611 11.7326
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.578e+01 3.178e+00 11.260 < 2e-16 ***
## transmisión2Mecánica -2.973e+00 6.655e-01 -4.468 1.23e-05 ***
## Ciudad2AM Medellín 4.873e-01 1.457e+00 0.334 0.738338
## Ciudad2Antioquia -1.631e+00 2.275e+00 -0.717 0.474202
## Ciudad2Armenia 6.445e-01 2.013e+00 0.320 0.749164
## Ciudad2Barranquilla -3.563e+00 1.978e+00 -1.802 0.072873 .
## Ciudad2Bogotá -2.577e+00 1.515e+00 -1.701 0.090346 .
## Ciudad2Caldas 3.407e-01 1.671e+00 0.204 0.838646
## Ciudad2Cali -3.458e+00 1.533e+00 -2.256 0.025016 *
## Ciudad2Cauca -1.373e+00 5.240e+00 -0.262 0.793488
## Ciudad2Cesar -3.107e+00 3.808e+00 -0.816 0.415457
## Ciudad2Cordoba -3.398e+00 5.073e+00 -0.670 0.503569
## Ciudad2Cundinamarca -5.116e-01 2.317e+00 -0.221 0.825454
## Ciudad2Huila -8.112e-01 2.081e+00 -0.390 0.697071
## Ciudad2Ibagué -3.640e+00 2.345e+00 -1.552 0.121925
## Ciudad2Meta -8.153e+00 5.173e+00 -1.576 0.116336
## Ciudad2Nariño -2.838e+00 2.582e+00 -1.099 0.272806
## Ciudad2NorSantander -1.229e+00 2.630e+00 -0.467 0.640808
## Ciudad2Risaralda -5.649e-01 2.161e+00 -0.261 0.794046
## Ciudad2SantaMarta 1.492e+00 5.116e+00 0.292 0.770825
## Ciudad2Santander -1.536e+00 2.922e+00 -0.526 0.599652
## Ciudad2Sucre -4.906e+00 5.084e+00 -0.965 0.335508
## Ciudad2Valle del Cauca -2.985e+00 2.427e+00 -1.230 0.219883
## Ciudad2Villavicencio -4.370e-01 2.937e+00 -0.149 0.881828
## Ciudad2Yopal 1.459e-01 5.176e+00 0.028 0.977541
## Color2Grises 2.225e-01 1.020e+00 0.218 0.827577
## Color2Otro 5.934e-01 1.865e+00 0.318 0.750580
## Color2Pastel 7.736e-01 2.561e+00 0.302 0.762838
## Color2Rojos 7.235e-01 1.208e+00 0.599 0.549899
## `único dueño`Sí 2.385e+00 8.131e-01 2.934 0.003681 **
## año2009 4.415e+00 2.159e+00 2.045 0.041966 *
## año2010 4.175e+00 1.895e+00 2.203 0.028600 *
## año2011 6.144e+00 1.710e+00 3.593 0.000399 ***
## año2012 7.642e+00 1.749e+00 4.369 1.88e-05 ***
## año2013 9.776e+00 1.797e+00 5.439 1.34e-07 ***
## año2014 1.143e+01 2.027e+00 5.639 4.89e-08 ***
## año2015 1.290e+01 2.045e+00 6.308 1.39e-09 ***
## año2016 2.501e+01 2.078e+00 12.036 < 2e-16 ***
## año2017 2.653e+01 2.262e+00 11.725 < 2e-16 ***
## año2018 3.030e+01 2.265e+00 13.378 < 2e-16 ***
## año2019 3.072e+01 2.373e+00 12.949 < 2e-16 ***
## año2020 3.616e+01 2.606e+00 13.879 < 2e-16 ***
## año2021 4.017e+01 2.774e+00 14.482 < 2e-16 ***
## año2022 4.712e+01 2.792e+00 16.874 < 2e-16 ***
## kilometraje -4.661e-05 1.562e-05 -2.985 0.003139 **
## modelo2 SEDAN 2.210e+00 1.031e+00 2.143 0.033150 *
## modeloMazda 2 2.709e-01 6.919e-01 0.391 0.695805
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.756 on 235 degrees of freedom
## (21 observations deleted due to missingness)
## Multiple R-squared: 0.938, Adjusted R-squared: 0.9259
## F-statistic: 77.31 on 46 and 235 DF, p-value: < 2.2e-16
library(MASS)
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
Olx3=na.omit(Olx)
empty.model= lm(precio2 ~ 1, data=Olx3,)
horizonte= formula(precio2 ~ transmisión2 +`único dueño`+año+kilometraje+Region+modelo)
modforw <- stepAIC(empty.model, trace=FALSE, direction="forward", scope=horizonte)
modforw$anova
| Step | Df | Deviance | Resid. Df | Resid. Dev | AIC |
|---|---|---|---|---|---|
| NA | NA | 281 | 85763.125 | 1614.3173 | |
| + año | 14 | 78745.86901 | 267 | 7017.256 | 936.4102 |
| + transmisión2 | 1 | 485.06758 | 266 | 6532.188 | 918.2104 |
| + Region | 4 | 427.42005 | 262 | 6104.768 | 907.1270 |
| + kilometraje | 1 | 270.56514 | 261 | 5834.203 | 896.3432 |
+ único dueño |
1 | 193.67603 | 260 | 5640.527 | 888.8228 |
| + modelo | 2 | 90.37698 | 258 | 5550.150 | 888.2678 |
mod3=lm(precio2~ transmisión2 +Region+`único dueño`+año+kilometraje+modelo, data=Olx3)
summary(mod3)
##
## Call:
## lm(formula = precio2 ~ transmisión2 + Region + `único dueño` +
## año + kilometraje + modelo, data = Olx3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -32.310 -1.648 0.365 2.222 11.725
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.592e+01 2.402e+00 14.954 < 2e-16 ***
## transmisión2Mecánica -2.910e+00 6.017e-01 -4.836 2.27e-06 ***
## RegionCaribe -3.531e+00 1.265e+00 -2.791 0.00564 **
## RegionCentro -1.975e+00 7.027e-01 -2.811 0.00532 **
## RegionOriente -1.784e+00 2.002e+00 -0.891 0.37373
## RegionPacífico -3.582e+00 8.345e-01 -4.292 2.50e-05 ***
## `único dueño`Sí 2.289e+00 7.553e-01 3.031 0.00269 **
## año2009 4.299e+00 1.961e+00 2.193 0.02922 *
## año2010 4.369e+00 1.717e+00 2.544 0.01154 *
## año2011 6.115e+00 1.528e+00 4.001 8.24e-05 ***
## año2012 7.258e+00 1.576e+00 4.606 6.45e-06 ***
## año2013 9.644e+00 1.582e+00 6.098 3.91e-09 ***
## año2014 1.157e+01 1.792e+00 6.454 5.35e-10 ***
## año2015 1.318e+01 1.840e+00 7.165 8.15e-12 ***
## año2016 2.522e+01 1.877e+00 13.432 < 2e-16 ***
## año2017 2.717e+01 2.008e+00 13.528 < 2e-16 ***
## año2018 3.065e+01 2.034e+00 15.069 < 2e-16 ***
## año2019 3.140e+01 2.089e+00 15.034 < 2e-16 ***
## año2020 3.640e+01 2.330e+00 15.626 < 2e-16 ***
## año2021 3.986e+01 2.457e+00 16.219 < 2e-16 ***
## año2022 4.764e+01 2.476e+00 19.244 < 2e-16 ***
## kilometraje -4.360e-05 1.402e-05 -3.110 0.00208 **
## modelo2 SEDAN 1.904e+00 9.288e-01 2.050 0.04141 *
## modeloMazda 2 4.279e-01 6.502e-01 0.658 0.51105
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.638 on 258 degrees of freedom
## Multiple R-squared: 0.9353, Adjusted R-squared: 0.9295
## F-statistic: 162.1 on 23 and 258 DF, p-value: < 2.2e-16
4 Validar el poder predictivo del Modelo con Validación Cruzada.
Se selecciona el 80% de la base para entrenar el modelo y se deja el 20% para validarlo y de esta manera realizar una validación cruzada que nos indique el poder predictivo del modelo hallado.
Se obtiene un MAE de 2,7970, lo cual indica que el modelo tiene un error de predicción de $2,79 millones de pesos, con un modelo que tiene un R2 superior al 90%.
library(Metrics)
library(caret)
## Loading required package: lattice
##
## Attaching package: 'caret'
## The following objects are masked from 'package:Metrics':
##
## precision, recall
set.seed(123)
Muestra= createDataPartition(Olx3$precio2,p = 0.8, list = FALSE)
Entrenamiento= Olx3[Muestra, ]
Prueba= Olx3[-Muestra, ]
model <- lm(precio2 ~ transmisión2 +Region+`único dueño`+año+kilometraje+modelo, data = Entrenamiento)
predictions <- predict(model, Prueba)
data.frame( R2 = R2(predictions, Prueba$ precio2),
RMSE = RMSE(predictions, Prueba$precio2),
MAE = MAE(predictions, Prueba$ precio2))
| R2 | RMSE | MAE |
|---|---|---|
| 0.9493954 | 3.695815 | 2.797025 |
5_ Discutir potenciales usos del modelo como herramienta practica.
El modelo puede ser usado de multiples formas en la vida real, algunos ejemplos:
Personas dedicadas a la compra venta de vehículos: Pueden identificar a través del modelo oportunidades de negocio donde el precio se encuentre por debajo del precio de mercado estimado por el modelo y con ello poder comprar con un diferencial que les permita tener una ganancia.
OLX: La plataforma podría brindar un servicio de precio sugerido o avaluó inicial a los vendedores que les permita obtener el precio de mercado y les permita tener orientación sobre que precio colocar que les permita vender su carro en el tiempo propuesto.