library(tidyverse)
used_cars <- read.csv("used_cars.csv")

Índice

\(Resumen\)

Se utilizo una base de datos de venta de carros usados para escoger tres marcas de carros de los cuales se analizarian los modelos en existencia, el año de dichos modelos y que tipo de transmision contaban cada uno

\(Introduccion\)

Se estudio una base de datos de venta de carros usados en estados unidos, se escogio tres marcas de carro diferentes para hacer analizadas bajo las siguientes tres preguntas, ¿¿Cuales son los modelos a la venta de cada marca?, ¿Cual es el tipo de transmision predominante en estos modelos?, ¿De que año son los modelos existentes?

\(Marco teorico\)

Se estudio una base de datos de venta de carros usados en estados unidos, se organizo de forma alfabetica A a Z para tener un orden, una vez ordenados los datos escogi tres marcas de mi preferencia las cuales fueron Honda, BMW y Nissan con el fin de encontrar cuales de estas marcas contaban con mas modelos a la venta, el tipo de transmision con la que cuentan y el año de su fabricacion.

\(Metodos\)

Se utilizo la siguiente tabla como referencia, de esta tabla ordenada alfabaeticaente de A a la Z, se seleccionaron tres marcas de carro las cuales fueron Honda, BMW, Nissan sin ningun motivo en especifico. Con estas tres marcas seleccionadas se plantearon las siguientes preguntas. ¿Cuales son los modelos a la venta de cada marca?, ¿Cual es el tipo de transmision predominante en estos modelos?, ¿De que año son los modelos existentes?

##Separar los carros por marcas
unique_brands <- sort(unique(used_cars$brand))
brands_table <- data.frame(Marcas = unique_brands)
knitr::kable(brands_table)
Marcas
Acura
Alfa
Aston
Audi
Bentley
BMW
Bugatti
Buick
Cadillac
Chevrolet
Chrysler
Dodge
Ferrari
FIAT
Ford
Genesis
GMC
Honda
Hummer
Hyundai
INFINITI
Jaguar
Jeep
Karma
Kia
Lamborghini
Land
Lexus
Lincoln
Lotus
Lucid
Maserati
Maybach
Mazda
McLaren
Mercedes-Benz
Mercury
MINI
Mitsubishi
Nissan
Plymouth
Polestar
Pontiac
Porsche
RAM
Rivian
Rolls-Royce
Saab
Saturn
Scion
smart
Subaru
Suzuki
Tesla
Toyota
Volkswagen
Volvo

\(Resultados\)

library(dplyr)
library(knitr)
library(tidyverse)
library(ggplot2)

Honda

Honda civic sedan EK
Honda civic sedan EK

Modelos de la marca Honda

honda_cars <- used_cars %>% filter(brand == "Honda")
modelos_honda <- unique(honda_cars$model)
kable(modelos_honda, caption = "Modelos de Honda", col.names = c("Modelos"), longtable = TRUE, rows.print = 10)
Modelos de Honda
Modelos
Passport Elite
CR-V EX-L
S2000 CR
Civic LX
CR-V EX
Ridgeline RTL-E
Accord EX-L
Civic EX
Pilot EX
Civic Si
Insight EX
S2000 Base
Civic Type R Touring
Pilot Elite
Accord EX-L 2.0T
Ridgeline Black Edition
Crosstour EX-L
Civic Si Base
Pilot Black Edition
Odyssey Elite
Civic Sport
Passport TrailSport
Odyssey EX-L
CR-V Touring
Odyssey LX
CR-V LX
Pilot EX-L
Accord Sport
Element EX
Prelude Type SH
Clarity Plug-In Hybrid Base
Accord Hybrid Touring
Fit Sport
Accord Crosstour EX-L
Accord Hybrid Base

En esta tabla estan todos los modelos de Honda a la venta

Tipo de transmision

honda_cars <- honda_cars %>% 
  mutate(tipo_transmision = ifelse(grepl("A/T|Automatic|dual shift", transmission), "Automáticos", "Estándar"))

honda_cars <- honda_cars %>% 
  mutate(tipo_transmision = ifelse(grepl("M/T", transmission), "Estándar", "Automáticos"))
num_estandar <- nrow(honda_cars %>% filter(tipo_transmision == "Estándar"))
num_automáticos <- nrow(honda_cars %>% filter(tipo_transmision == "Automáticos"))

porcentaje_estandar <- num_estandar / (num_estandar + num_automáticos) * 100
porcentaje_automáticos <- num_automáticos / (num_estandar + num_automáticos) * 100
datos_pie <- data.frame(
  tipo_transmision = c("Estándar", "Automáticos"),
  cantidad = c(num_estandar, num_automáticos)
)
mis_colores=c ("pink","black")
grafico_pastel <- ggplot(datos_pie, aes(x = "", y = cantidad, fill = tipo_transmision)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  theme_minimal() +
  labs(title = "Distribución de tipos de transmisión de carros Honda",
       fill = "Tipo de Transmisión") +
  theme(legend.position = "right") +
  scale_fill_manual(values = mis_colores) +
  geom_text(aes(label = paste0(round(porcentaje_estandar, 1), "%"), 
                y = cantidad / 2), 
            position = position_stack(vjust = 0.5), 
            size = 4) +
  geom_text(aes(label = paste0(round(porcentaje_automáticos, 1), "%"), 
                y = cantidad / 2), 
            position = position_stack(vjust = 0.5), 
            size = 4)
print(grafico_pastel)

Grafica de distribucion de transmision en modelos Honda

Año de fabricacion de los carros Honda

class(honda_cars$model_yaer)
## [1] "NULL"
# Convertir la columna 'year' a valores numéricos si es necesario
honda_cars$model_year <- as.numeric(as.character(honda_cars$model_year))
limites <- c(1970, 1985, 1995, 2005, 2015, 2024)
# Verificar si el vector de límites y la columna 'year' tienen la misma longitud
length(limites) == nrow(honda_cars)
## [1] FALSE
# Asegurarse de que los límites sean adecuados para generar grupos
cut(honda_cars$model_year, breaks = limites, labels = c("1970-1985", "1986-1995", "1996-2005", "2006-2015", "2016-2024"), include.lowest = TRUE)
##  [1] 2016-2024 2016-2024 2006-2015 2016-2024 1996-2005 2016-2024 1996-2005
##  [8] 2006-2015 2016-2024 1986-1995 1996-2005 2006-2015 2016-2024 1996-2005
## [15] 2016-2024 2016-2024 1996-2005 2016-2024 2016-2024 2006-2015 2016-2024
## [22] 2016-2024 2016-2024 2016-2024 2016-2024 2016-2024 2016-2024 2016-2024
## [29] 2016-2024 2006-2015 2016-2024 2016-2024 1996-2005 2006-2015 2016-2024
## [36] 2006-2015 2006-2015 2016-2024 2016-2024 2006-2015 1996-2005 2006-2015
## [43] 2016-2024 2016-2024 2006-2015 2006-2015 2016-2024 2016-2024 2016-2024
## [50] 2006-2015 2006-2015 2016-2024 1996-2005 2006-2015 2006-2015 2006-2015
## [57] 2016-2024 2016-2024 1996-2005 2016-2024 1996-2005 2006-2015 2006-2015
## Levels: 1970-1985 1986-1995 1996-2005 2006-2015 2016-2024
# Crear una nueva columna que contenga los intervalos
honda_cars$grupo_año <- cut(honda_cars$model_year, breaks = limites, labels = c("1970-1985", "1986-1995", "1996-2005", "2006-2015", "2016-2024"), include.lowest = TRUE)
grafico_barras <- ggplot(honda_cars, aes(x = grupo_año)) +
  geom_bar(fill = "#FF9999") +
  labs(title = "Distribución de Modelos de Honda por Grupo de Años",
       x = "Grupo de Años",
       y = "Cantidad de Modelos") +
  theme_minimal() +
  ylim(0, 40)

# Mostrar la gráfica de barras
print(grafico_barras)

Grafica de los años de los modelos Honda a la venta

BMW

BMW M3 GTR
BMW M3 GTR

Modelo de carros de la marca BMW

BMW_cars <- used_cars %>% filter(brand == "BMW")
modelos_BMW <- unique(BMW_cars$model)
kable(modelos_BMW, caption = "Modelos de BMW", col.names = c("Modelos"), longtable = TRUE, rows.print = 10)
Modelos de BMW
Modelos
740 iL
440 Gran Coupe 440i xDrive
650 Gran Coupe i xDrive
i3 120Ah w/Range Extender
340 i
Z4 sDrive28i
M850 i xDrive
X4 M40i
M4 CS
M4 Base
740 Li
M6 Base
435 Gran Coupe i
525 i
i8 Base
540 i xDrive
750 750i xDrive
X7 xDrive40i
M5 Base
X5 3.0i
440 Gran Coupe i
X6 sDrive35i
M8 Competition
640 i
M550 i xDrive
X1 sDrive28i
X6 xDrive40i
X1 xDrive28i
328 xi
M235 i
X3 xDrive30i
440 i xDrive
Z4 3.0i Roadster
X3 M40i
750 Li xDrive
M3 CS
750 i xDrive
M3 Base
X5 M Base
M760 i xDrive
X2 xDrive28i
135 i
Z4 2.5i Roadster
550 Gran Turismo i
430 i xDrive
M2 Base
330e iPerformance
X5 PHEV xDrive45e
X6 M Base
430 430i
ALPINA B7 ALPINA B7 xDrive
M4 Competition xDrive
M240 i
328 i xDrive
X7 M50i
740 i
X7 ALPINA XB7
X7 xDrive50i
435 i
M440 i
X6 xDrive50i
X5 xDrive40i
M440 i xDrive
X5 eDrive xDrive40e
M340 i xDrive
ALPINA B7 Base
M6 Gran Coupe Base
650 i
X6 xDrive35i
M8 Base
i3 Base w/Range Extender
335 i
M5 Competition
M760 M760i xDrive
528 i xDrive
X5 xDrive50i
230 i
M2 Competition
Z4 sDrive35is
323 Ci
328 i
330 330i xDrive
530e Base
X5 xDrive35i
535 i
325 xi
X4 xDrive30i
330 i
535 i xDrive
428 i xDrive
X5 3.0si
228 Gran Coupe i xDrive
430 i
M8 Gran Coupe Competition
135 is
750 i
428 i
X3 xDrive35i
228 i
530 i
428 Gran Coupe i xDrive
650 i xDrive
640 Gran Coupe i
650 Gran Coupe i
M3 Competition xDrive
428 i xDrive SULEV
430 Gran Coupe i xDrive
640 Gran Coupe i xDrive
750 iL
840 i xDrive
X5 xDrive40e
335 is
335 i xDrive
M3 Competition
550 i xDrive
528 i
Z4 3.0si
330 i xDrive
X6 M50i
530 i xDrive
X4 M Competition
435 i xDrive
740e xDrive iPerformance
325 Ci
128 i
840 Gran Coupe i xDrive
X5 M50i
Z4 2.5i
320 i xDrive
750 Li
X3 M AWD
X1 xDrive 28i
325 i
i3 Base
M2 CS
X3 sDrive30i
Z3 3.0i Roadster
ALPINA B7 xDrive
i3 94 Ah
540 i
M4 Competition
X5 sDrive35i
X5 xDrive 35i Sport Activity
M240 i xDrive
X3 xDrive28i

En esta tabla estan todos los modelos de BMW a la venta

Tipo de transmision

BMW_cars <- BMW_cars %>% 
  mutate(tipo_transmision = ifelse(grepl("A/T|Automatic|dual shift", transmission), "Automáticos", "Estándar"))

BMW_cars <- BMW_cars %>% 
  mutate(tipo_transmision = ifelse(grepl("M/T", transmission), "Estándar", "Automáticos"))
num_estandar <- nrow(BMW_cars %>% filter(tipo_transmision == "Estándar"))
num_automáticos <- nrow(BMW_cars %>% filter(tipo_transmision == "Automáticos"))

porcentaje_estandar <- num_estandar / (num_estandar + num_automáticos) * 100
porcentaje_automáticos <- num_automáticos / (num_estandar + num_automáticos) * 100
mis_colores <- c("blue","purple")
grafico_pastel <- ggplot(datos_pie, aes(x = "", y = cantidad, fill = tipo_transmision)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  theme_minimal() +
  labs(title = "Distribución de tipos de transmisión de carros BMW",
       fill = "Tipo de Transmisión") +
  theme(legend.position = "right") +
  scale_fill_manual(values = mis_colores) +
  geom_text(aes(label = paste0(round(porcentaje_estandar, 1), "%"), 
                y = cantidad / 2), 
            position = position_stack(vjust = 0.5), 
            size = 4) +
  geom_text(aes(label = paste0(round(porcentaje_automáticos, 1), "%"), 
                y = cantidad / 2), 
            position = position_stack(vjust = 0.5), 
            size = 4)
print(grafico_pastel)

Grafica de distribucion de transmision en modelos BMW

Año de fabricacion de los carros BMW

BMW_cars$model_year <- as.numeric(as.character(BMW_cars$model_year))

# Crear una nueva columna que contenga los intervalos
BMW_cars$grupo_año <- cut(BMW_cars$model_year, breaks = limites, labels = c("1970-1985", "1986-1995", "1996-2005", "2006-2015", "2016-2024"), include.lowest = TRUE)
# Crear la gráfica de barras con límite de eje y ajustado para BMW_cars
grafico_barras_BMW <- ggplot(BMW_cars, aes(x = grupo_año)) +
  geom_bar(fill = "#66B2FF") +
  labs(title = "Distribución de Modelos de BMW por Grupo de Años",
       x = "Grupo de Años",
       y = "Cantidad de Modelos") +
  theme_minimal() +
  ylim(0, 250)
# Mostrar la gráfica de barras para BMW_cars
print(grafico_barras_BMW)

Grafica de los años de los modelos BMW a la venta

Nissan

Nissan 350z
Nissan 350z

Modelos de la marca Nissan

nissan_cars <- used_cars %>% filter(brand == "Nissan")
modelos_nissan <- unique(nissan_cars$model)
kable(modelos_nissan, caption = "Modelos de Nissan", col.names = c("Modelos"), longtable = TRUE, rows.print = 10)
Modelos de Nissan
Modelos
350Z Enthusiast
Sentra SR
Rogue SV
GT-R Premium
Armada SL
Titan XD SV
NV Passenger NV3500 HD SL V8
Titan XD S
370Z NISMO
370Z Base
Xterra S
Leaf S
Leaf SL
Z Proto Spec
350Z Touring
Murano SL
Juke SV
Maxima SV
Armada Platinum
Rogue S
Rogue SL
Leaf SV PLUS
370Z Touring
Versa 1.8 S
Frontier SL
Titan SE
Pathfinder SL
NV200 SV
Titan S
Frontier SV
NV200 S
NV Passenger NV3500 HD SV V8
300ZX Base
GT-R Black Edition
Pathfinder Platinum
370Z NISMO Tech
Titan SV
240SX Base
Cube 1.8 S
Xterra Pro-4X
Murano SV
Titan SL
Frontier SE Crew Cab
Rogue Sport S
Altima 2.5 SL
Altima 2.5 SV
Versa 1.6 SL
Pathfinder SV
Juke NISMO RS
Pathfinder S
Maxima 3.5 SR
Pickup Truck XE
Armada LE
Maxima SL
Quest SL
Pathfinder Silver
Juke SL
Armada SV
350Z NISMO
Altima 2.5 S
Maxima GLE
Kicks S

En esta tabla estan todos los modelos de Nissan a la venta

tipo de transmision

nissan_cars <- nissan_cars %>% 
  mutate(tipo_transmision = ifelse(grepl("A/T|Automatic|dual shift", transmission), "Automáticos", "Estándar"))

nissan_cars <- nissan_cars %>% 
  mutate(tipo_transmision = ifelse(grepl("M/T", transmission), "Estándar", "Automáticos"))
num_estandar <- nrow(nissan_cars %>% filter(tipo_transmision == "Estándar"))
num_automáticos <- nrow(nissan_cars %>% filter(tipo_transmision == "Automáticos"))

porcentaje_estandar <- num_estandar / (num_estandar + num_automáticos) * 100
porcentaje_automáticos <- num_automáticos / (num_estandar + num_automáticos) * 100
mis_colores=c ("pink","black")
grafico_pastel <- ggplot(datos_pie, aes(x = "", y = cantidad, fill = tipo_transmision)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  theme_minimal() +
  labs(title = "Distribución de tipos de transmisión de carros Nissan",
       fill = "Tipo de Transmisión") +
  theme(legend.position = "right") +
  scale_fill_manual(values = mis_colores) +
  geom_text(aes(label = paste0(round(porcentaje_estandar, 1), "%"), 
                y = cantidad / 2), 
            position = position_stack(vjust = 0.5), 
            size = 4) +
  geom_text(aes(label = paste0(round(porcentaje_automáticos, 1), "%"), 
                y = cantidad / 2), 
            position = position_stack(vjust = 0.5), 
            size = 4)
print(grafico_pastel)

Grafica de distribucion de transmision en modelos Nissan

Año de fabricacion de los carros Nissan

nissan_cars$model_year <- as.numeric(as.character(nissan_cars$model_year))

# Crear una nueva columna que contenga los intervalos
nissan_cars$grupo_año <- cut(nissan_cars$model_year, breaks = limites, labels = c("1970-1985", "1986-1995", "1996-2005", "2006-2015", "2016-2024"), include.lowest = TRUE)
# Crear la gráfica de barras con límite de eje y ajustado para Nissan_cars
grafico_barras_nissan <- ggplot(nissan_cars, aes(x = grupo_año)) +
  geom_bar(fill = "#99CC66") +
  labs(title = "Distribución de Modelos de Nissan por Grupo de Años",
       x = "Grupo de Años",
       y = "Cantidad de Modelos") +
  theme_minimal() +
  ylim(0, 100)
# Mostrar la gráfica de barras para Nissan_cars
print(grafico_barras_nissan)

Grafica de los años de los modelos Nissan a la venta

\(Discusion\)

Para responder a la primera pregunta se obtuvo que en la marca honda existen 35 modelos dsitintos de dicha marca, mientras en BMW existen 146 modelos distintos, por otra parte en Nissan existen 62 modelos distintos. Con estos datos se reflaja que en BMW tienes mas opciones a elegir en comparacion a Nissan y Honda, esta ultima con la menor variedad de modelos

Para responder a la segunda pregunta se obtuvo en las tres marcas distintinas los as dominantes fueron los carros con transmision automatica con alrededor de 75% a 80%

Y por ultimo la tercera pregunta obtuvimos en la marca BMW en total existen alrededor de 385 carros de los cuales mas de la mitad son de los años 2016-2024. La marca Nissan le sigue con un total aproximado de 123 carros teniendo un amplio margen del 2006 hasta 2024 puesto que en estos años es donde estan concentrados mas del 75% de los carros. Por otro lado la marca honda tiene alrededor de 65 carros donde el 50% se encuentra en los años 2016-2024

\(Conclusiones\)

Con los resultados obtenidos podemos concluir que si la persona busca mas variedad en modelos podria escoger la marca BMW puesto que hay muchos modelos y la gran mayoria son del 2016-2024 modelos recientes. En cambio si la persona esta interesada en un modelo antiguo podria ir por Nissan estos tienen la misma cantidad de carros de 2006-2015 que 2016-2024. Si el tipo de transmision es un factor clave podria darse cuenta que transmision estandar es poca con relacion a la cantidad de automaticos, estos ultimos superandolos por mucho. Con estas tablas y graficas se busca ser mas facil la busqueda de una marca dependiendo de tus requerimientos

\(Agradecimientos\)

Le agradezco este trabajo a un señor pelon de youtube, a las new jeans y a al monster por darme energia para no dormirme.

\(Referencias\)

Link de base de datos utilizada

used_cars <- read.csv("used_cars.csv")
used_cars