1. Definición del Problema y Selección de Base de Datos

1.1 Contexto y reto del negocio

En Colombia, las empresas y plataformas dedicadas a la compra y venta de carros usados enfrentan un reto diario: calcular el precio justo de un vehículo de forma rápida y sin equivocarse. Actualmente, definir cuánto ofrecer por un carro depende mucho del “ojo” o criterio personal de cada perito o asesor comercial. Esto genera demoras en la atención y provoca que un mismo vehículo reciba ofertas distintas según la sede o la persona que lo revise.

Frente a esta situación, la gerencia busca responder una pregunta concreta: ¿qué tan confiable y útil resulta un modelo de regresión lineal para estimar el precio de mercado de un Mazda 2 a partir de los datos visibles en anuncios de internet (como año, kilometraje y tipo de caja)?

Actualmente, las ofertas de compra dependen del criterio subjetivo de peritos comerciales, lo que genera retrasos en las cotizaciones y discrepancias de precios entre sedes. La gerencia necesita evaluar: ¿Qué tan confiable y útil es un modelo de regresión lineal para estimar el precio de mercado de vehículos Mazda 2 a partir de sus características observables en anuncios digitales?

1.2 Aclaración clave: precio publicado vs. precio real de venta

Los datos analizados provienen de anuncios tomados del portal OLX Colombia. Es fundamental tener clara una diferencia desde el principio: el precio que aparece en el anuncio es lo que el vendedor pide o aspira a recibir, no el dinero exacto que se paga al final de la transacción.

En el mercado colombiano de usados el regateo es habitual: los acuerdos de compraventa suelen cerrarse entre un 3% y un 8% por debajo del precio publicado en internet. Por lo tanto, este modelo sirve para calcular el precio de vitrina (un valor de referencia para competir en publicaciones digitales). Si la empresa planea usar este estimado para hacer una oferta de compra directa en efectivo, deberá descontar ese margen de negociación para proteger su rentabilidad y no pagar de más.

2. Exploración y Regresión Lineal Simple (Punto 1)

2.1 Carga y Auditoría Inicial de la Base de Datos

# Carga de la base de datos oficial
datos_raw <- read_excel("base1_mazdacol.xlsx")

# Inspección de estructura y dimensiones iniciales
glimpse(datos_raw)
## Rows: 314
## Columns: 11
## $ precio                  <dbl> 34000000, 26400000, 42500000, 91000000, 350000…
## $ kilometraje             <dbl> 140000, 112000, 102222, 1000, 134500, 61997, 9…
## $ transmision             <chr> "Automática", "Automática", "Automática", "Aut…
## $ modelo                  <dbl> 2008, 2012, 2013, 2022, 2012, 2017, 2015, 2011…
## $ color                   <chr> "Gris", "Gris", "Gris", "Gris", "Blanco", "Gri…
## $ ciudad                  <chr> "Medellín", "Medellín", "Itagüí", "Envigado", …
## $ departamento            <chr> "Antioquia", "Antioquia", "Antioquia", "Antioq…
## $ `web-scraper-order`     <chr> "1662991183-54", "1662991216-64", "1662991275-…
## $ `web-scraper-start-url` <chr> "https://www.olx.com.co/items/q-mazda-2", "htt…
## $ link                    <chr> "$ 34.000.0002008 - 140.000 kmMAZDA 2 2008San …
## $ `link-href`             <chr> "https://www.olx.com.co/item/mazda-2-2008-iid-…

La base contiene inicialmente 314 registros y 11 columnas.

2.2 Limpieza y preparación de los datos

Al revisar los 314 anuncios descargados inicialmente de OLX, encontramos que la información venía con algo de “ruido” común en este tipo de páginas web. Para que las predicciones del modelo sean confiables y no se distorsionen, aplicamos cuatro filtros básicos de depuración:

Datos incompletos:

Revisamos si faltaban datos en las columnas esenciales (precio, año, kilometraje y tipo de caja). Afortunadamente, todos los registros venían completos, por lo que no fue necesario descartar filas por valores vacíos.

##Anuncios de otros carros o permutas: ## La búsqueda original fue “Mazda 2”, pero varios vendedores mencionan ese nombre en publicaciones de otros carros para ganar visibilidad o porque buscan un intercambio (“vencambio”). Encontramos y eliminamos anuncios de camionetas (Mazda CX-5, CX-9, CX-30), otros modelos (Mazda 3, Renault Stepway) e incluso un camión de estacas modelo 1995.

Precios engañosos o mal digitados:

Algunos anuncios no mostraban el precio real del carro. Por ejemplo, aparecía un Mazda 2 modelo 2022 en $6.800.000 COP (lo que en realidad corresponde a la cuota inicial de un crédito o un error al escribir). También descartamos publicaciones por encima de $100.000.000 COP, que correspondían a las camionetas antes mencionadas. Acotamos el rango a precios coherentes para este vehículo en Colombia: entre $20.000.000 y $100.000.000 COP.

Antigüedad del carro:

Filtramos las publicaciones desde el año 2008 en adelante, que es cuando el Mazda 2 empezó a comercializarse formalmente en el país. Tras este proceso de depuración, la base pasó de 314 a 303 vehículos válidos. Se descartaron únicamente 11 anuncios que habrían alterado negativamente los resultados del análisis.

Tras este proceso de depuración, la base pasó de 314 a 303 vehículos válidos. Se descartaron únicamente 11 anuncios que habrían alterado negativamente los resultados del análisis

Tratamiento de valores faltantes, duplicados y registros atípicos

# Verificación de datos faltantes
faltantes <- colSums(is.na(datos_raw))
print(faltantes)
##                precio           kilometraje           transmision 
##                     0                     0                     0 
##                modelo                 color                ciudad 
##                     0                     0                     0 
##          departamento     web-scraper-order web-scraper-start-url 
##                     0                     0                     0 
##                  link             link-href 
##                     0                     0
# Proceso de depuración justificado
datos <- datos_raw %>%
  # 1. Eliminar duplicados exactos basados en el enlace único de publicación
  distinct(link, .keep_all = TRUE) %>%
  # 2. Excluir vehículos que no corresponden a la línea Mazda 2 (camionetas, otros modelos)
  filter(!str_detect(tolower(link), "cx|stepway|estacas|mazda 3|mazda3|camioneta")) %>%
  # 3. Restringir al ciclo de comercialización contemporáneo de Mazda 2 en Colombia (desde 2008)
  filter(modelo >= 2008) %>%
  # 4. Acotar a rangos de precio plausibles para un automóvil usado de este segmento
  filter(precio >= 20000000 & precio <= 100000000) %>%
  # 5. Establecer la variable binaria 'transmision' como factor con referencia analítica
  mutate(transmision = factor(transmision, levels = c("Automática", "Mecánica")))

cat("Registros originales:", nrow(datos_raw), "\n")
## Registros originales: 314
cat("Registros depurados válidos:", nrow(datos), "\n")
## Registros depurados válidos: 302
cat("Registros descartados con justificación:", nrow(datos_raw) - nrow(datos), "\n")
## Registros descartados con justificación: 12

Tras ejecutar la verificación y el filtrado sobre la base de datos, se obtienen los siguientes hallazgos:

Valores faltantes:

El conteo arrojó cero valores nulos en todas las columnas. Esto ocurre porque portales de clasificados como OLX exigen completar de manera obligatoria campos esenciales (precio, kilometraje, año y transmisión) para poder publicar un anuncio. No fue necesario imputar ni rellenar datos vacíos.

Depuración de registros duplicados y anuncios ajenos:

Aunque la búsqueda original era “Mazda 2”, en plataformas abiertas algunos vendedores agregan términos populares para atraer visitas o proponer permutas (“vencambio”). Se descartaron publicaciones correspondientes a camionetas (Mazda CX-5, CX-9), otros modelos (Mazda 3, Renault Stepway) y un camión de estacas modelo 1995.

Corrección de valores atípicos de precio:

Se excluyeron anuncios con precios por debajo de $20.000.000 COP (como un registro de $6.800.000 COP para un modelo 2022, que corresponde al valor de una cuota inicial o a un error de digitación) y registros superiores a $100.000.000 COP (asociados a camionetas de gama alta).

##Balance de la muestra: De los 314 anuncios iniciales, la muestra quedó conformada por 303 vehículos válidos. Se descartaron únicamente 11 registros, asegurando que los modelos de regresión se entrenen exclusivamente con información representativa del mercado de automóviles Mazda 2 usados en Colombia.

2.3 Análisis Exploratorio Univariado

resumen_estadistico <- datos %>%
  summarise(
    Variable = c("Precio (COP)", "Kilometraje (km)", "Año del Vehículo (Modelo)"),
    Media = c(mean(precio), mean(kilometraje), mean(modelo)),
    Mediana = c(median(precio), median(kilometraje), median(modelo)),
    Desv_Estandar = c(sd(precio), sd(kilometraje), sd(modelo)),
    Rango_IQR = c(IQR(precio), IQR(kilometraje), IQR(modelo)),
    Minimo = c(min(precio), min(kilometraje), min(modelo)),
    Maximo = c(max(precio), max(kilometraje), max(modelo))
  )

kable(resumen_estadistico, digits = 1, format.args = list(big.mark = "."),
      caption = "Tabla 1. Estadísticas Descriptivas de Centralidad y Dispersión")
Tabla 1. Estadísticas Descriptivas de Centralidad y Dispersión
Variable Media Mediana Desv_Estandar Rango_IQR Minimo Maximo
Precio (COP) 49.651.324.5 42.000.000.0 17.622.918.4 28.000.000.0 22.000.000 98.500.000
Kilometraje (km) 74.675.6 79.000.0 44.453.9 63.255.5 0 200.000
Año del Vehículo (Modelo) 2.014.9 2.014.5 4.1 6.8 2.008 2.022

Interpretación y justificación de las medidas descriptivas

Al analizar la tabla de estadísticas, se destacan tres aspectos fundamentales para entender el comportamiento del mercado de estos vehículos:

Sesgo en el precio y elección de la mediana:

El precio promedio ($49.651.324 COP) es notablemente superior a la mediana ($42.000.000 COP), con una diferencia de más de $7.6 millones. Esto evidencia que la distribución tiene un sesgo hacia la derecha: la presencia de vehículos recientes (años 2021 y 2022) que alcanzan hasta $98.5 millones jala el promedio hacia arriba. Por esta razón, la mediana de $42.000.000 COP es la medida más representativa del valor de un Mazda 2 típico en la muestra. Asimismo, la dispersión es considerable (desviación estándar de $17.6 millones y un rango intercuartílico de $28 millones), lo que confirma que no es posible fijar un precio único y se requiere un modelo que ajuste por características.

##Amplitud en el kilometraje (uso del vehículo): El odómetro promedio marca 74.675 km y la mediana se ubica en 79.000 km. El rango cubre desde unidades con 0 km (carros de vitrina o entrega inmediata) hasta vehículos con 200.000 km de uso intensivo. Esta alta variabilidad (con una desviación estándar de 44.453 km) es muy conveniente para el análisis, pues le permite al modelo capturar con precisión el impacto del desgaste mecánico sobre el valor comercial.

Representatividad del año (modelo):

Tanto la media (2014.9) como la mediana (2014.5) coinciden alrededor de los años 2014 y 2015, lo que muestra una muestra equilibrada en el tiempo. Al cubrir un horizonte de 14 años (desde 2008 hasta 2022), se tiene suficiente historial para evaluar cómo la antigüedad y el cambio generacional de la línea Mazda 2 deprecian el activo.

p_precio <- ggplot(datos, aes(x = precio / 1e6)) +
  geom_histogram(bins = 20, fill = "#2c3e50", color = "white", alpha = 0.85) +
  geom_vline(aes(xintercept = median(precio / 1e6)), color = "#e74c3c", linetype = "dashed", size = 1) +
  labs(title = "Distribución del Precio Anunciado",
       subtitle = "Línea roja discontinua representa la mediana",
       x = "Precio (Millones COP)", y = "Número de Vehículos") +
  theme_minimal()

p_km <- ggplot(datos, aes(x = kilometraje)) +
  geom_histogram(bins = 20, fill = "#16a085", color = "white", alpha = 0.85) +
  geom_vline(aes(xintercept = median(kilometraje)), color = "#e74c3c", linetype = "dashed", size = 1) +
  scale_x_continuous(labels = comma) +
  labs(title = "Distribución del Kilometraje",
       subtitle = "Línea roja discontinua representa la mediana",
       x = "Kilometraje (km)", y = "Número de Vehículos") +
  theme_minimal()

grid.arrange(p_precio, p_km, ncol = 2)

##Interpretación de los histogramas de distribución

Al observar la forma de las dos gráficas, se identifican patrones clave sobre el comportamiento de los vehículos analizados:

Distribución del Precio (Bimodalidad marcada):

El gráfico de precios muestra claramente dos picos o “montañas” separadas:

  1. El primer grupo se concentra entre los $30 y $40 millones de COP. Corresponde a los modelos más antiguos (2008 a 2014), que pertenecen a la generación previa del Mazda 2.

  2. El segundo grupo se ubica entre los $55 y $75 millones de COP. Corresponde a la generación contemporánea (a partir de 2015, cuando entró la tecnología SkyActiv), con mayor valor comercial.

El vacío que se observa cerca a los $45–$50 millones refleja precisamente ese salto generacional del carro en Colombia. Por esta razón, la mediana ($42 millones, marcada con la línea roja) divide la muestra de forma representativa entre ambas épocas del modelo.

Distribución del Kilometraje (Uso acumulado):

La mayor cantidad de vehículos se agrupa entre los 70.000 y 100.000 km, lo cual es habitual en el mercado de usados: las personas suelen vender o renovar su carro tras 5 a 8 años de uso moderado (con la mediana situada en 79.000 km).

En el extremo izquierdo se observa una barra visible cerca a 0 km, que representa anuncios de unidades seminuevas o de entrega inmediata en concesionarios.

Hacia la derecha, la cola se va haciendo delgada hasta alcanzar los 200.000 km, confirmando que son pocos los usuarios que conservan este tipo de vehículo particular tras superar los 150.000 km de recorrido

2.4 Análisis Bivariado: Respuesta vs. Predictores

p_disp_modelo <- ggplot(datos, aes(x = modelo, y = precio / 1e6)) +
  geom_point(alpha = 0.5, color = "#2980b9", size = 2) +
  geom_smooth(method = "lm", color = "#c0392b", se = FALSE, linetype = "solid") +
  labs(title = "Precio vs. Año (Modelo)", x = "Año del Vehículo", y = "Precio (Millones COP)") +
  theme_minimal()

p_disp_km <- ggplot(datos, aes(x = kilometraje, y = precio / 1e6)) +
  geom_point(alpha = 0.5, color = "#2980b9", size = 2) +
  geom_smooth(method = "lm", color = "#c0392b", se = FALSE, linetype = "solid") +
  scale_x_continuous(labels = comma) +
  labs(title = "Precio vs. Kilometraje", x = "Kilometraje (km)", y = "Precio (Millones COP)") +
  theme_minimal()

p_box_trans <- ggplot(datos, aes(x = transmision, y = precio / 1e6, fill = transmision)) +
  geom_boxplot(alpha = 0.7, outlier.color = "red", show.legend = FALSE) +
  scale_fill_manual(values = c("#3498db", "#e67e22")) +
  labs(title = "Precio por Transmisión", x = "Tipo de Transmisión", y = "Precio (Millones COP)") +
  theme_minimal()

grid.arrange(p_disp_modelo, p_disp_km, p_box_trans, layout_matrix = rbind(c(1, 2), c(3, 3)))

# Coeficientes de correlación lineal de Pearson
r_modelo <- cor(datos$precio, datos$modelo)
r_km <- cor(datos$precio, datos$kilometraje)

Interpretación del análisis bivariado

Al evaluar cómo se relaciona el precio anunciado con cada una de las características del vehículo, se observan tres comportamientos determinantes en las gráficas

  • Precio vs. Año del vehículo (Modelo): Existe una relación positiva casi perfecta (\(r \approx 0.94\)). A medida que el carro es más reciente, el precio aumenta de manera continua y predecible. Los modelos 2008 a 2010 se sitúan entre los $20 y $35 millones de COP, mientras que los modelos 2021 a 2022 superan los $75 a $90 millones de COP. No obstante, se aprecia un detalle gráfico importante: en los años recientes la dispersión vertical de los puntos es más amplia (mayor variabilidad de precios), lo que anticipa que un modelo lineal simple con varianza fija podría tener dificultades en los extremos.

  • Precio y Kilometraje: Muestra una relación negativa clara (\(r \approx -0.72\)). Cada aumento en el odómetro se traduce en una pérdida de valor comercial en el mercado. Sin embargo, la nube de puntos no es completamente recta: los carros con muy poco kilometraje (menos de 20.000 km) muestran una dispersión de precio bastante amplia (desde $30 hasta casi $100 millones de COP según el año), lo que confirma que el kilometraje por sí solo no explica todo el precio si no se controla al mismo tiempo por la edad del carro.

  • Precio según el Tipo de Transmisión (Automática vs. Mecánica): El diagrama de cajas revela una diferencia de valor considerable entre ambas versiones:

  • Automáticos: Tienen una mediana de precio cercana a los $56.5 millones de COP, alcanzando techos de casi $100 millones en los modelos nuevos.

  • Mecanicos: Tienen una mediana en torno a los $38.5 millones de COP, concentrándose la mayoría por debajo de los $55 millones.

Esta brecha de casi $18 millones en la mediana obedece tanto al mayor costo de fábrica de las cajas automáticas como a la preferencia de los compradores urbanos en Colombia, justificando plenamente su incorporación como variable explicativa en el modelo múltiple.

2.5 Propuesta y Ajuste de Tres Modelos Simples

Se formulan tres modelos lineales simples con diferente naturaleza explicativa:

  1. Modelo Simple 1 (M1): precio ~ kilometraje (Deterioro físico continuo).
  2. Modelo Simple 2 (M2): precio ~ transmision (Variable categórica binaria: Mecánica vs. Automática).
  3. Modelo Simple 3 (M3): precio ~ modelo (Depreciación temporal o antigüedad).
m1 <- lm(precio ~ kilometraje, data = datos)
m2 <- lm(precio ~ transmision, data = datos)
m3 <- lm(precio ~ modelo, data = datos)

summary(m1)
## 
## Call:
## lm(formula = precio ~ kilometraje, data = datos)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -48903356  -6099182    143969   7453977  27560720 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 70942131.0  1381445.3   51.35   <2e-16 ***
## kilometraje     -285.1       15.9  -17.93   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12260000 on 300 degrees of freedom
## Multiple R-squared:  0.5172, Adjusted R-squared:  0.5156 
## F-statistic: 321.4 on 1 and 300 DF,  p-value: < 2.2e-16
summary(m2)
## 
## Call:
## lm(formula = precio ~ transmision, data = datos)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -32282515 -12422370  -4172370  13182521  44217485 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          54282515    1306120  41.560  < 2e-16 ***
## transmisionMecánica -10360145    1953529  -5.303 2.21e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 16880000 on 300 degrees of freedom
## Multiple R-squared:  0.08571,    Adjusted R-squared:  0.08267 
## F-statistic: 28.12 on 1 and 300 DF,  p-value: 2.211e-07
summary(m3)
## 
## Call:
## lm(formula = precio ~ modelo, data = datos)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -40474054  -3687222   -100390   3679890  20139114 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -8.068e+09  1.746e+08  -46.22   <2e-16 ***
## modelo       4.029e+06  8.665e+04   46.50   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6162000 on 300 degrees of freedom
## Multiple R-squared:  0.8782, Adjusted R-squared:  0.8778 
## F-statistic:  2162 on 1 and 300 DF,  p-value: < 2.2e-16

##Justificación e interpretación de los modelos simples Para evaluar qué factor explica mejor el precio anunciado de un Mazda 2, se analizaron tres variables de naturaleza distinta:

Modelo 1 (Precio vs. Kilometraje): Evalúa el desgaste físico por uso acumulado. Por cada 10.000 kilómetros adicionales de recorrido, el precio anunciado disminuye en promedio cerca de 2.85 millones de pesos COP. El odómetro por sí solo explica el 51.7% de la variación del precio (R² = 0.517) con una significancia estadística alta (valor p menor a 0.001).

Modelo 2 (Precio vs. Transmisión): Evalúa el valor agregado según el tipo de caja (mecánica frente a automática). Tomando la caja automática como base, un Mazda 2 mecánico se publica en promedio 10.36 millones de pesos COP más barato. Aunque la diferencia es estadísticamente significativa (valor p menor a 0.001), solo explica el 8.6% del precio (R² = 0.086), demostrando que la transmisión es un factor secundario que no puede tasar un vehículo por sí solo.

Modelo 3 (Precio vs. Año del vehículo): Evalúa la antigüedad y la vigencia del carro. Por cada año más moderno del vehículo, su precio anunciado aumenta en promedio cerca de 4.03 millones de pesos COP. Es con amplia diferencia el predictor individual más fuerte: explica el 87.8% de las variaciones del precio (R² = 0.878) con una significancia sólida (valor p menor a 0.001).

Asociación estadística frente a causalidad

Es fundamental destacar que estos modelos reflejan una asociación estadística y no una relación causal directa: *Ni los kilómetros en el odómetro ni el cambio de año en el calendario reducen el precio por arte de magia. Funcionan como indicadores indirectos del desgaste mecánico real, el vencimiento de la garantía de fábrica y la llegada de versiones con mejor equipamiento.

*Alterar el kilometraje en el odómetro o matricular el carro en una fecha posterior no rejuvenece físicamente el motor ni los frenos del vehículo.

2.6 Interpretación de Coeficientes, \(R^2\), Significancia y Discusión de Causalidad

Tabla 2. Resumen Estadístico de los Modelos Simples
Modelo Predictor Beta_1 Error_Estandar Valor_p R_Cuadrado
kilometraje M1: Kilometraje Kilometraje (km) -2.851106e+02 15.9028 0 0.5172
transmisionMecánica M2: Transmisión Transmisión: Mecánica -1.036014e+07 1.953.528.6752 0 0.0857
modelo M3: Año (Modelo) Año (Modelo) 4.028944e+06 46.4992 0 0.8782

Interpretación de los resultados de la tabla

Al comparar los tres modelos simples, podemos entender con números claros cuánto pesa cada característica al momento de definir el precio anunciado de un Mazda 2:

Modelo 1 (Kilometraje):¨ El coeficiente (Beta_1) es de aproximadamente -285. Esto significa que, en promedio, por cada kilómetro adicional que tiene el carro, su precio anunciado baja 285 pesos. Llevado a una escala más realista del mercado, por cada 10.000 kilómetros recorridos el vehículo pierde cerca de 2.85 millones de pesos en su valor publicado. Con un R cuadrado de 0.5172, el desgaste del odómetro explica por sí solo el 51.7% de la variación del precio, y su valor p de 0 confirma que este impacto no es casualidad.

Modelo 2 (Transmisión mecánica frente a automática): Tomando los carros automáticos como punto de partida, el coeficiente para los mecánicos es de -10.360.140 pesos. En la práctica, esto muestra que un Mazda 2 con caja manual se publica en promedio 10.36 millones de pesos más barato que uno automático. Aunque esta diferencia es estadísticamente real (valor p de 0), su R cuadrado es de apenas 0.0857. Esto nos indica que el tipo de caja solo explica el 8.6% del precio: influye en el valor, pero nadie puede calcular el precio de un carro únicamente sabiendo si es mecánico o automático.

Modelo 3 (Año o modelo del vehículo): El coeficiente es de 4.028.944 pesos. Esto quiere decir que por cada año más nuevo que sea el carro, su precio anunciado sube en promedio unos 4.03 millones de pesos. Este es el modelo simple más contundente de todos: tiene un R cuadrado de 0.8782, lo que significa que la antigüedad explica por sí sola casi el 88% de los cambios en el precio.

¿Por qué una relación en los datos no significa una causa real?

Es fundamental no confundir una relación matemática con una causa directa al momento de tomar decisiones en el negocio:

El odómetro no le quita valor al carro por sí solo:Los números que marca el tablero no destruyen el valor comercial de un vehículo. El kilometraje simplemente funciona como un indicador del desgaste físico que han sufrido las llantas, los frenos, la suspensión y el motor. Si alguien alterara el odómetro para mostrar menos kilómetros, el carro no se volvería mecánicamente nuevo ni recuperaría su vida útil real.

El cambio de año no deteriora el vehículo: Que el calendario avance de un año a otro no oxida el metal ni daña las piezas. El año del modelo actúa como un reflejo de otros factores: la pérdida de la garantía de fábrica con la marca, el desgaste comercial por el paso del tiempo y la salida al mercado de versiones más modernas con mejor tecnología.

2.7 Comparación de Desempeño mediante Validación Cruzada y MAE

Siguiendo las pautas del caso, el Error Absoluto Medio (\(MAE\)) se evalúa mediante validación cruzada de 5 pliegues (5-fold CV) y se compara frente al modelo nulo o de referencia: predecir la mediana del conjunto de entrenamiento.

# Configuración de 5 pliegues fijos para comparación equitativa
set.seed(2026)
pliegues_cv <- createFolds(datos$precio, k = 5, list = TRUE)

# Benchmark: Error prediciendo la mediana de entrenamiento
mae_benchmark_k <- sapply(pliegues_cv, function(idx_test) {
  df_train <- datos[-idx_test, ]
  df_test <- datos[idx_test, ]
  mediana_entrenamiento <- median(df_train$precio)
  mean(abs(df_test$precio - mediana_entrenamiento))
})
mae_benchmark <- mean(mae_benchmark_k)

# Validación cruzada de los modelos simples
evaluar_mae_simple <- function(formula_mod) {
  sapply(pliegues_cv, function(idx_test) {
    df_train <- datos[-idx_test, ]
    df_test <- datos[idx_test, ]
    fit <- lm(formula_mod, data = df_train)
    preds <- predict(fit, newdata = df_test)
    mean(abs(df_test$precio - preds))
  })
}

mae_m1 <- mean(evaluar_mae_simple(precio ~ kilometraje))
mae_m2 <- mean(evaluar_mae_simple(precio ~ transmision))
mae_m3 <- mean(evaluar_mae_simple(precio ~ modelo))

tabla_cv_simples <- data.frame(
  Modelo = c("Benchmark (Mediana)", "M1: Kilometraje", "M2: Transmisión", "M3: Año (Modelo)"),
  MAE_Promedio_COP = c(mae_benchmark, mae_m1, mae_m2, mae_m3),
  Reduccion_Error = c("0%", 
                      percent(1 - mae_m1 / mae_benchmark),
                      percent(1 - mae_m2 / mae_benchmark),
                      percent(1 - mae_m3 / mae_benchmark))
)

kable(tabla_cv_simples, digits = 0, format.args = list(big.mark = "."),
      caption = "Tabla 3. Desempeño Predictivo de Modelos Simples (5-Fold CV)")
Tabla 3. Desempeño Predictivo de Modelos Simples (5-Fold CV)
Modelo MAE_Promedio_COP Reduccion_Error
Benchmark (Mediana) 14.661.543 0%
M1: Kilometraje 8.946.220 39%
M2: Transmisión 14.530.940 1%
M3: Año (Modelo) 4.510.625 69%

Evaluación del desempeño predictivo y elección del mejor modelo simplePara determinar cuál de los tres modelos simples ofrece predicciones más confiables en un escenario real, evaluamos su desempeño mediante validación cruzada de 5 pliegues (5-Fold CV) y calculamos el Error Absoluto Medio (MAE). El MAE representa la diferencia promedio, en pesos colombianos (\(COP\)), entre el precio que predice el modelo y el precio real anunciado del vehículo.

Al comparar los resultados de la Tabla 3, se desprenden conclusiones determinantes para el negocio:

Punto de partida ingenuo (Benchmark de la mediana): Si la empresa no utilizara ningún modelo estadístico y decidiera cotizar cada carro asignándole simplemente el precio típico del inventario (la mediana de $42.000.000 COP), se equivocaría en promedio por $14.661.543 COP por vehículo. Un margen de error tan amplio resulta inviable comercialmente, pues llevaría a sobrepagar o subvalorar gravemente los automóviles.

Modelo 2 (Transmisión):Arroja un MAE de $14.530.940 COP, logrando apenas una reducción del 1% frente al benchmark. Saber únicamente si el carro tiene caja mecánica o automática prácticamente no mejora la precisión de la tasación. Aunque en el mercado existe una prima por las cajas automáticas, este factor no compensa la falta de información sobre el estado o la edad del auto, descartándolo como predictor único.

Modelo 1 (Kilometraje):Alcanza un MAE de $8.946.220 COP, lo que representa una reducción del 39% en el error frente a la mediana. Incorporar el odómetro reduce la incertidumbre en casi $5.7 millones de pesos por vehículo. A pesar de esta mejora notable, un error promedio cercano a los $9 millones de pesos sigue siendo elevado para el segmento de carros usados, pues un Mazda 2 con poco kilometraje pero de modelo antiguo no vale lo mismo que uno reciente con uso moderado.

Modelo 3 (Año del vehículo):Obtiene el desempeño más destacado con un MAE de $4.510.625 COP, alcanzando una reducción del 69% respecto al benchmark. Solo conociendo el año de fabricación, el modelo es capaz de reducir el margen de error promedio a menos de la tercera parte del error original.

##Veredicto y justificación del modelo seleccionado

El Modelo 3 (Precio en función del Año de fabricación) es seleccionado de forma indiscutible como el mejor modelo de regresión lineal simple por tres razones:

Precisión predictiva: Supera con creces a las otras opciones al registrar el error absoluto más bajo ($4.510.625 COP) y la mayor capacidad de captura de valor en validación cruzada.

Coherencia de mercado: El año del carro no solo refleja el paso del tiempo, sino que resume de manera natural el fin de las garantías oficiales, el cambio tecnológico de motores (como la entrada de los motores Skyactiv a partir de 2015) y la depreciación comercial estándar que maneja el sector automotriz en Colombia.

Interpretabilidad ejecutiva:¨ El modelo es simple y transparente: permite a cualquier asesor comercial entender que, en promedio, cada año de modernidad le añade cerca de $4.03 millones de pesos al valor de vitrina del carro.

A pesar de la solidez del Modelo 3, un margen de error promedio de $4.5 millones todavía deja espacio para mejoras operativas, ya que ignora si el vehículo ha sido muy recorrido o si cuenta con caja automática. Este hallazgo justifica el paso hacia una regresión lineal múltiple, donde la combinación simultánea de año, kilometraje y transmisión permita acotar aún más la incertidumbre.