“Vehicle Sales and Market Trends Dataset” proporciona una recopilación completa de información relacionada con las transacciones de ventas de varios vehículos. Este conjunto de datos abarca detalles como el año, marca, modelo, acabado, tipo de carrocería, tipo de transmisión, VIN (Número de identificación del vehículo), estado de registro, calificación de condición, lectura del odómetro, colores exteriores e interiores, información del vendedor, Valores de Manheim Market Report (MMR), precios de venta y fechas de venta. ## Información de la base de datos y variables Características clave: Vehicle details: incluye información específica sobre cada vehículo, como su marca, modelo, versión y año de fabricación.
Transaction information: proporciona información sobre las transacciones de ventas, incluidos los precios de venta y las fechas de venta.
Market Trends: los valores de MMR ofrecen una estimación del valor de mercado de cada vehículo, lo que permite analizar las tendencias y fluctuaciones del mercado.
Condition and Millage: Contiene datos sobre el estado de los vehículos, así como sus lecturas de odómetro, lo que permite analizar cómo estos factores influyen en los precios de venta.
En primera instancia se cargan las librerias y se importan los datos
library(tidyverse)
library(ggplot2)
cars <- read.csv("car_prices.csv")
A continuación se procede a la limpieza de datos Donde se eliminan las columnas innecesarias para este analísis, se eliminan datos atipicos y los espacios en blanco se cambian por NA para despues poder removerlos. Se eliminaron datos de odometros dado a que en automoviles del ultimo año tenian un recorrido de mas de 100,000 kilometros. Los NA fueron removidos ya que la base de datos inicialmente contaba con más de 500,000 observaciones, con esta limpieza se redujeron a 308,000 que sigue siendo un tamaño bastante considerable.
cars <- cars %>% select(-trim,-vin,-condition,-interior,-seller,-saledate)
cars <- subset(cars, odometer <= 75000)
cars<-cars %>% mutate(across(c(make,body,model,transmission,state,color), ~ na_if(., "")))
cars <- na.omit(cars)
Una vez teniendo la base de datos limpia podemos proceder a hacer el analísis estadístico
ggplot(cars)+
geom_point(aes(x=year,y=odometer))+
geom_smooth(aes(x=year,y=odometer))+
geom_point(aes(x=year,y=mean(odometer)),color="red")+
theme_minimal()+
labs(title = "Km recorridos por año de fabricación",caption="Vehicle Sales and
Market Trends Dataset", x="Año",y="Km recorridos")
ggplot(cars)+
geom_point(aes(x=sellingprice, y=mmr,fill=year))+
geom_smooth(aes(x=sellingprice, y=mmr))+
theme_minimal()+
labs(title = "Correlación precio de venta con estimacion de precio de venta",
caption = "Vehicle Sales and Market Trends Dataset",
x= "Precio de venta", y="Estimacion de Manheim Market Report")
Para responder las dos ultimas preguntas de investigación se tuvieron
que filtrar los datos, esto por un factor muy importante, la
inflacion, que esta puede afectar en gran medida
nuestros datos.
cars2015<- cars%>% filter(year==2010:2015)%>%filter(transmission=="automatic")
## Warning: There was 1 warning in `filter()`.
## ℹ In argument: `year == 2010:2015`.
## Caused by warning in `year == 2010:2015`:
## ! longitud de objeto mayor no es múltiplo de la longitud de uno menor
ggplot(cars2015)+
geom_boxplot(aes(x=make, y=sellingprice,fill=make))+
guides(fill=F)+
theme_minimal()+
theme(axis.text.x = element_text(angle = 45))+
labs(title="Rango de precios por marca", caption="Vehicle Sales and Market Trends Dataset",
x="Marca de autos", y="Precio de venta")
## Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
## of ggplot2 3.3.4.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggplot(cars2015)+
geom_boxplot(aes(x=state,y=sellingprice,fill=state))+
guides(fill=F)+
theme_minimal()+
labs(title="Rango de precio de compra por estado", caption="Vehicle Sales
and Market Trends Dataset", x="Estado", y="Precio de compra")