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