A continuación vamos a construir un modelo predictivo de precios de vehiculo refencia mazda 3 para la ciudad de Cali, que descargamos con datos del portal Carroya. La base de datos continene las variables precio y año del vehiculo como se observa a continuación:
library(readxl)
mazda <- read_excel("C:/Users/rsecheverri/Downloads/YDRAY-mazda3_cal.xlsx",
sheet = "modelo_simple")
head(mazda)
## # A tibble: 6 × 2
## precio_millon año
## <dbl> <dbl>
## 1 69 2019
## 2 87 2022
## 3 66 2018
## 4 56 2016
## 5 72 2017
## 6 110 2023
Continuando con el ejercicio se realiza una exploración de la base de datos:
require(table1)
require(ggplot2)
require(plotly)
table1(~precio_millon+as.factor(año),data=mazda)
| Overall (N=140) |
|
|---|---|
| precio_millon | |
| Mean (SD) | 65.4 (21.5) |
| Median [Min, Max] | 67.5 [22.5, 110] |
| as.factor(año) | |
| 2005 | 1 (0.7%) |
| 2006 | 4 (2.9%) |
| 2007 | 2 (1.4%) |
| 2008 | 1 (0.7%) |
| 2009 | 6 (4.3%) |
| 2010 | 6 (4.3%) |
| 2011 | 4 (2.9%) |
| 2012 | 3 (2.1%) |
| 2014 | 1 (0.7%) |
| 2015 | 14 (10.0%) |
| 2016 | 15 (10.7%) |
| 2017 | 17 (12.1%) |
| 2018 | 22 (15.7%) |
| 2019 | 19 (13.6%) |
| 2020 | 8 (5.7%) |
| 2021 | 6 (4.3%) |
| 2022 | 8 (5.7%) |
| 2023 | 3 (2.1%) |
ggplot(mazda,aes(x=año,y=precio_millon))+geom_point()
Se observa que el precio promedio del vehiculo mazda 3 en Cali esta en 65 millones de pesos con un rango entre los 22 al 110 millones.
Adicionalmente los modelos varian desde el 2005 hasta 2023, con una mayor cantidad de datos del 2015 al 2019.
Por ultimo la relación entre precio y modelo se observa de manera lineal y positiva. Es decir modelos más nuevos son más caros en promedio.
Posteriormente vamos a estimar el modelo de regresión lineal:
require(caret)
names(mazda)[2]="year"
mod1=train(precio_millon~year,data=mazda,method="lm")
mod1$finalModel
##
## Call:
## lm(formula = .outcome ~ ., data = dat)
##
## Coefficients:
## (Intercept) year
## -9883.820 4.934
#precio=-9883.820 +(4.934*año)
#ejemplo: de acuerdo con el modelo cual es el precio
#promedio de un vehiculo mazda 3 modelo 2018
-9883.820 +(4.934*2018)
## [1] 72.992
#vamos a crear la variable antiguedad
mazda$antiguedad=2024-mazda$year
mod2=train(precio_millon~antiguedad,data=mazda,method="lm")
mod2$finalModel
##
## Call:
## lm(formula = .outcome ~ ., data = dat)
##
## Coefficients:
## (Intercept) antiguedad
## 103.237 -4.934
mod2
## Linear Regression
##
## 140 samples
## 1 predictor
##
## No pre-processing
## Resampling: Bootstrapped (25 reps)
## Summary of sample sizes: 140, 140, 140, 140, 140, 140, ...
## Resampling results:
##
## RMSE Rsquared MAE
## 6.622427 0.9023066 5.402474
##
## Tuning parameter 'intercept' was held constant at a value of TRUE
#precio= 103.237 -(4.934*antiguedad)
#promedio de un vehiculo mazda 3 modelo 2018
103.237 -(4.934*(2024-2018))
## [1] 73.633