library(dplyr) # o library(tidyverse)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
setwd("D:/Data")
datos <- read.csv("database.csv", header = TRUE, sep = ";", dec = ".")
str(datos)
## 'data.frame': 38113 obs. of 83 variables:
## $ Vehicle.ID : int 26587 27705 26561 27681 27550 28426 27549 28425 27593 28455 ...
## $ Year : int 1984 1984 1984 1984 1984 1984 1984 1984 1984 1984 ...
## $ Make : chr "Alfa Romeo" "Alfa Romeo" "Alfa Romeo" "Alfa Romeo" ...
## $ Model : chr "GT V6 2.5" "GT V6 2.5" "Spider Veloce 2000" "Spider Veloce 2000" ...
## $ Class : chr "Minicompact Cars" "Minicompact Cars" "Two Seaters" "Two Seaters" ...
## $ Drive : chr "" "}" "" "" ...
## $ Transmission : chr "Manual 5-Speed" "Manual 5-Speed" "Manual 5-Speed" "Manual 5-Speed" ...
## $ Transmission.Descriptor : chr "" "" "" "" ...
## $ Engine.Index : chr "9001" "9005" "9002" "9006" ...
## $ Engine.Descriptor : chr "(FFS)" "(FFS) CA model" "(FFS)" "(FFS) CA model" ...
## $ Engine.Cylinders : chr "6" "6" "4" "4" ...
## $ Engine.Displacement : chr "2.5" "2.5" "2" "2" ...
## $ Turbocharger : chr "" "" "" "" ...
## $ Supercharger : chr "" "" "" "" ...
## $ Fuel.Type : chr "Regular" "Regular" "Regular" "Regular" ...
## $ Fuel.Type.1 : chr "Regular Gasoline" "Regular Gasoline" "Regular Gasoline" "Regular Gasoline" ...
## $ Fuel.Type.2 : chr "" "" "" "" ...
## $ City.MPG..FT1. : chr "17" "17" "18" "18" ...
## $ Unrounded.City.MPG..FT1. : chr "0" "0" "0" "0" ...
## $ City.MPG..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Unrounded.City.MPG..FT2. : chr "0" "0" "0" "0" ...
## $ City.Gasoline.Consumption..CD. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ City.Electricity.Consumption : num 0 0 0 0 0 0 0 0 0 0 ...
## $ City.Utility.Factor : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.MPG..FT1. : int 24 24 25 25 17 17 13 13 20 19 ...
## $ Unrounded.Highway.MPG..FT1. : chr "0" "0" "0" "0" ...
## $ Highway.MPG..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Unrounded.Highway.MPG..FT2. : chr "0" "0" "0" "0" ...
## $ Highway.Gasoline.Consumption..CD. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.Electricity.Consumption : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.Utility.Factor : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Unadjusted.City.MPG..FT1. : chr "21" "21" "23" "23" ...
## $ Unadjusted.Highway.MPG..FT1. : chr "34" "34" "35" "35" ...
## $ Unadjusted.City.MPG..FT2. : chr "0" "0" "0" "0" ...
## $ Unadjusted.Highway.MPG..FT2. : chr "0" "0" "0" "0" ...
## $ Combined.MPG..FT1. : num 20 20 21 21 17 17 13 13 17 17 ...
## $ Unrounded.Combined.MPG..FT1. : chr "0" "0" "0" "0" ...
## $ Combined.MPG..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Unrounded.Combined.MPG..FT2. : chr "0" "0" "0" "0" ...
## $ Combined.Electricity.Consumption : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Combined.Gasoline.Consumption..CD. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Combined.Utility.Factor : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Annual.Fuel.Cost..FT1. : int 1750 1750 1650 1650 2050 2050 2700 2700 2050 2050 ...
## $ Annual.Fuel.Cost..FT2. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Gas.Guzzler.Tax : chr "" "" "" "" ...
## $ Save.or.Spend..5.Year. : chr "-2000" "-2000" "-1500" "-1500" ...
## $ Annual.Consumption.in.Barrels..FT1.: chr "164.805" "164.805" "156.957.142.857.143" "156.957.142.857.143" ...
## $ Annual.Consumption.in.Barrels..FT2.: chr "0" "0" "0" "0" ...
## $ Tailpipe.CO2..FT1. : chr "-1" "-1" "-1" "-1" ...
## $ Tailpipe.CO2.in.Grams.Mile..FT1. : chr "444.35" "444.35" "423.190.476.190.476" "423.190.476.190.476" ...
## $ Tailpipe.CO2..FT2. : chr "-1" "-1" "-1" "-1" ...
## $ Tailpipe.CO2.in.Grams.Mile..FT2. : chr "0" "0" "0" "0" ...
## $ Fuel.Economy.Score : chr "-1" "-1" "-1" "-1" ...
## $ GHG.Score : int -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
## $ GHG.Score..Alt.Fuel. : int -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
## $ My.MPG.Data : chr "N" "N" "N" "N" ...
## $ X2D.Passenger.Volume : chr "74" "74" "0" "0" ...
## $ X2D.Luggage.Volume : chr "7" "7" "0" "0" ...
## $ X4D.Passenger.Volume : int 0 0 0 0 0 0 0 0 0 0 ...
## $ X4D.Luggage.Volume : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Hatchback.Passenger.Volume : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Hatchback.Luggage.Volume : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Start.Stop.Technology : chr "" "" "" "" ...
## $ Alternative.Fuel.Technology : chr "" "" "" "" ...
## $ Electric.Motor : chr "" "" "" "" ...
## $ Manufacturer.Code : chr "" "" "" "" ...
## $ Gasoline.Electricity.Blended..CD. : chr "False" "False" "False" "False" ...
## $ Vehicle.Charger : chr "" "" "" "" ...
## $ Alternate.Charger : chr "" "" "" "" ...
## $ Hours.to.Charge..120V. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Hours.to.Charge..240V. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Hours.to.Charge..AC.240V. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Composite.City.MPG : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Composite.Highway.MPG : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Composite.Combined.MPG : int 0 0 0 0 0 0 0 0 0 0 ...
## $ Range..FT1. : int 0 0 0 0 0 0 0 0 0 0 ...
## $ City.Range..FT1. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Highway.Range..FT1. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Range..FT2. : chr "" "" "" "" ...
## $ City.Range..FT2. : chr "0" "0" "0" "0" ...
## $ Highway.Range..FT2. : num 0 0 0 0 0 0 0 0 0 0 ...
## $ X : int NA NA NA NA NA NA NA NA NA NA ...
## $ X.1 : int NA NA NA NA NA NA NA NA NA NA ...
Make <- datos$Make
TDFMake <- table(Make)
tabla1 <- as.data.frame(TDFMake)
colnames(tabla1) <- c("Marca", "ni")
hi <- tabla1$ni/ sum(tabla1$ni)
sum(hi)
## [1] 1
hi_porc <- round(hi * 100, 2)
tabla1 <- data.frame(tabla1, hi_porc)
# Agrupar por país
pais_dict <- c(
"E. P. Dutton" = "Estados Unidos", "PAS" = "Estados Unidos", "Tecstar" = "Estados Unidos",
"Acura" = "Japón", "AM General" = "Estados Unidos", "American Motors Corporation" = "Estados Unidos",
"ASC Incorporated" = "Estados Unidos", "Aurora Cars Ltd" = "Reino Unido", "Autokraft Limited" = "Reino Unido",
"Avanti Motor Corporation" = "Estados Unidos", "Azure Dynamics" = "Estados Unidos",
"Bill Dovell Motor Car Company" = "Estados Unidos", "BMW" = "Alemania", "BMW Alpina" = "Alemania",
"Buick" = "Estados Unidos", "Cadillac" = "Estados Unidos", "CCC Engineering" = "Estados Unidos",
"Chevrolet" = "Estados Unidos", "Chrysler" = "Estados Unidos", "CODA Automotive" = "Estados Unidos",
"Consulier Industries Inc" = "Estados Unidos", "CX Automotive" = "Estados Unidos",
"Dabryan Coach Builders Inc" = "Estados Unidos", "Dodge" = "Estados Unidos", "Eagle" = "Estados Unidos",
"Environmental Rsch and Devp Corp" = "Estados Unidos", "Evans Automobiles" = "Estados Unidos",
"Excalibur Autos" = "Estados Unidos", "Federal Coach" = "Estados Unidos", "Fisker" = "Estados Unidos",
"Ford" = "Estados Unidos", "General Motors" = "Estados Unidos", "Geo" = "Estados Unidos",
"GMC" = "Estados Unidos", "Grumman Allied Industries" = "Estados Unidos",
"Grumman Olson" = "Estados Unidos", "Hummer" = "Estados Unidos",
"Import Foreign Auto Sales Inc" = "Estados Unidos", "Import Trade Services" = "Estados Unidos",
"Isis Imports Ltd" = "Estados Unidos", "J.K. Motors" = "Estados Unidos", "Jeep" = "Estados Unidos",
"Kenyon Corporation Of America" = "Estados Unidos", "Laforza Automobile Inc" = "Italia",
"Lambda Control Systems" = "Estados Unidos", "Lincoln" = "Estados Unidos",
"London Coach Co Inc" = "Estados Unidos", "Maybach" = "Alemania", "Mcevoy Motors" = "Estados Unidos",
"McLaren Automotike" = "Reino Unido", "Mercury" = "Estados Unidos", "Merkur" = "Estados Unidos",
"Mobility Ventures LLC" = "Estados Unidos", "Oldsmobile" = "Estados Unidos",
"Panos" = "Estados Unidos", "Panoz Auto-Development" = "Estados Unidos",
"PAS Inc - GMC" = "Estados Unidos", "Plymouth" = "Estados Unidos", "Pontiac" = "Estados Unidos",
"Quantum Technologies" = "Estados Unidos", "Qvale" = "Estados Unidos", "Ram" = "Estados Unidos",
"Red Shift Ltd." = "Estados Unidos", "Roush Performance" = "Estados Unidos",
"S and S Coach Company E.p. Dutton" = "Estados Unidos", "Saleen" = "Estados Unidos",
"Saleen Performance" = "Estados Unidos", "Saturn" = "Estados Unidos", "Scion" = "Japón",
"Shelby" = "Estados Unidos", "SRT" = "Estados Unidos", "Sterling" = "Reino Unido",
"Superior Coaches Div E.p. Dutton" = "Estados Unidos", "Tesla" = "Estados Unidos",
"Texas Coach Company" = "Estados Unidos", "Vector" = "Estados Unidos",
"Vixen Motor Company" = "Estados Unidos", "VPG" = "Estados Unidos",
"Wallace Environmental" = "Estados Unidos",
# Japón
"Honda" = "Japón", "Infiniti" = "Japón", "Isuzu" = "Japón", "Lexus" = "Japón",
"Mazda" = "Japón", "Mitsubishi" = "Japón", "Nissan" = "Japón",
"Subaru" = "Japón", "Suzuki" = "Japón", "Toyota" = "Japón", "Daihatsu" = "Japón",
# Corea del Sur
"Hyundai" = "Corea del Sur", "Kia" = "Corea del Sur", "Genesis" = "Corea del Sur", "Daewoo" = "Corea del Sur",
# Alemania
"Audi" = "Alemania", "Bertone" = "Italia", "Bitter Gmbh and Co. Kg" = "Alemania",
"Mercedes-Benz" = "Alemania", "Opel" = "Alemania", "Porsche" = "Alemania",
"Ruf Automobile Gmbh" = "Alemania", "smart" = "Alemania", "Volkswagen" = "Alemania",
# Italia
"Alfa Romeo" = "Italia", "Ferrari" = "Italia", "Fiat" = "Italia",
"Lamborghini" = "Italia", "Maserati" = "Italia", "Pagani" = "Italia",
"Pininfarina" = "Italia",
# Francia
"Peugeot" = "Francia", "Renault" = "Francia", "Bugatti" = "Francia", "Citroën" = "Francia",
# Reino Unido
"Aston Martin" = "Reino Unido", "Bentley" = "Reino Unido", "Jaguar" = "Reino Unido",
"Land Rover" = "Reino Unido", "Lotus" = "Reino Unido", "McLaren" = "Reino Unido",
"MINI" = "Reino Unido", "Panther Car Company Limited" = "Reino Unido",
"Rolls-Royce" = "Reino Unido", "TVR Engineering Ltd" = "Reino Unido",
"Morgan" = "Reino Unido", "Goldacre" = "Reino Unido", "London Taxi" = "Reino Unido",
# Suecia
"Saab" = "Suecia", "Volvo" = "Suecia",
# China
"BYD" = "China",
# India
"Mahindra" = "India",
# Países Bajos
"Spyker" = "Países Bajos",
# Serbia
"Yugo" = "Serbia",
# Rusia
"Volga Associated Automobile" = "Rusia"
)
tabla1$Pais <- pais_dict[as.character(tabla1$Marca)]
tabla1$Pais[is.na(tabla1$Pais)] <- "Otros"
resumen_pais <- aggregate(ni ~ Pais, data = tabla1, FUN = sum)
resumen_pais <- resumen_pais[order(-resumen_pais$ni), ]
resumen_pais$Porcentaje <- round((resumen_pais$ni / sum(resumen_pais$ni)) * 100, 2)
barplot(resumen_pais$Porcentaje,
names.arg = resumen_pais$Pais,
main = "Distribución de probabilidad de marcas por país de origen",
xlab = "País",
ylab = "Probabilidad (%)",
col = "steelblue",
las = 2,
cex.names = 0.8,
cex.axis = 0.8,
cex.lab = 1.2)
Tabla_make <- data.frame(
País = resumen_pais$Pais,
`Probabilidad (%)` = resumen_pais$Porcentaje
)
colnames(Tabla_make) <- c("País", "Probabilidad (%)")
Tabla_make
## País Probabilidad (%)
## 1 Estados Unidos 48.26
## 2 Japón 24.07
## 3 Alemania 15.71
## 4 Reino Unido 3.55
## 5 Corea del Sur 3.28
## 6 Suecia 3.12
## 7 Italia 1.45
## 8 Francia 0.43
## 9 Otros 0.07
## 10 Países Bajos 0.03
## 11 Serbia 0.02
## 12 China 0.01
## 13 India 0.00
## 14 Rusia 0.00
La probabilidad es del 48,26 %
Model <- datos$Model
TDFModel <- table(Model)
tabla2 <- as.data.frame(TDFModel)
colnames(tabla2) <- c("Modelo", "ni")
hi <- tabla2$ni / sum(tabla2$ni)
sum(hi)
## [1] 1
hi_porc <- round(hi * 100, 2)
tabla2 <- data.frame(tabla2, hi_porc)
# Agrupación automática de modelos: top 15, resto "Otros"
top_modelos <- tabla2$Modelo[order(-tabla2$ni)][1:15]
tabla2$Grupo <- ifelse(tabla2$Modelo %in% top_modelos, tabla2$Modelo, "Otros")
# Agregado por grupo
resumen_model <- aggregate(ni ~ Grupo, data = tabla2, FUN = sum)
resumen_model <- resumen_model[order(-resumen_model$ni), ]
resumen_model$Porcentaje <- round((resumen_model$ni / sum(resumen_model$ni)) * 100, 2)
barplot(resumen_model$Porcentaje,
names.arg = resumen_model$Grupo,
main = "Distribución de probabilidad de modelos agrupados",
xlab = "Modelos",
ylab = "Probabilidad (%)",
col = "steelblue",
las = 2,
cex.names = 0.8,
cex.axis = 0.8,
cex.lab = 1.2)
Tabla_model <- data.frame(
Modelo = resumen_model$Grupo,
`Probabilidad (%)` = resumen_model$Porcentaje
)
colnames(Tabla_model) <- c("Modelo", "Probabilidad (%)")
Tabla_model
## Modelo Probabilidad (%)
## 1 Otros 93.78
## 2 1580 0.55
## 3 1583 0.49
## 4 3371 0.49
## 5 2366 0.48
## 6 1986 0.45
## 7 2678 0.44
## 8 897 0.44
## 9 1012 0.40
## 10 2989 0.39
## 11 2990 0.39
## 12 568 0.39
## 13 1382 0.35
## 14 1161 0.32
## 15 898 0.32
## 16 2950 0.31
La probabilidad es de 0,55 %
Drive <- datos$Drive
TDFDrive <- table(Drive)
tabla3 <- as.data.frame(TDFDrive)
colnames(tabla3) <- c("Tracción", "ni")
hi <- tabla3$ni / sum(tabla3$ni)
sum(hi)
## [1] 1
hi_porc <- round(hi * 100, 2)
tabla3 <- data.frame(tabla3, hi_porc)
tabla3$Tracción <- as.character(tabla3$Tracción)
# Crear vectores con nombres
valores <- setNames(tabla3$ni, tabla3$Tracción)
porcentajes <- setNames(tabla3$hi_porc, tabla3$Tracción)
barplot(porcentajes,
main = "Distribución de probabilidad de tracción",
xlab = "Tipo de Tracción",
ylab = "Probabilidad (%)",
col = "steelblue",
las = 2,
cex.names = 0.8,
cex.axis = 0.8,
cex.lab = 1.2)
Tabla_drive <- data.frame(
Tracción = tabla3$Tracción,
`Probabilidad (%)` = tabla3$hi_porc
)
colnames(Tabla_drive) <- c("Tracción", "Probabilidad (%)")
Tabla_drive
## Tracción Probabilidad (%)
## 1 3.12
## 2 Cargo Type" 1.15
## 3 Passenger Type" 0.82
## 4 } 0.00
## 5 2-Wheel Drive 0.97
## 6 4-Wheel Drive 2.89
## 7 4-Wheel or All-Wheel Drive 17.17
## 8 All-Wheel Drive 5.49
## 9 Front-Wheel Drive 35.02
## 10 Large Cars 0.00
## 11 Part-time 4-Wheel Drive 0.46
## 12 Rear-Wheel Drive 32.88
## 13 Small Pickup Trucks 0.00
## 14 Special Purpose Vehicles 0.01
## 15 Standard Pickup Trucks 2WD 0.01
## 16 Standard Pickup Trucks 4WD 0.01
La probabilidad es de 17,17 %
Fuel.Type <- datos$Fuel.Type
TDFFuel.Type <- table(Fuel.Type)
tabla4 <- as.data.frame(TDFFuel.Type)
colnames(tabla4) <- c("Combustible", "ni")
hi <- tabla4$ni / sum(tabla4$ni)
sum(hi)
## [1] 1
hi_porc <- round(hi * 100, 2)
tabla4 <- data.frame(tabla4, hi_porc)
# Agrupación
tabla4$Grupo <- NA
tabla4 <- tabla4 %>%
mutate(Grupo = case_when(
Combustible == "Diesel" ~ "Diesel",
Combustible == "Electricity" ~ "Eléctrico",
Combustible %in% c("Regular", "Regular Gas and Electricity") ~ "Gasolina regular",
Combustible %in% c("Premium", "Premium and Electricity", "Premium Gas or Electricity", "Premium or E85") ~ "Gasolina premium",
TRUE ~ "Otros"
))
# Agregado por grupo
resumen_fuel <- aggregate(ni ~ Grupo, data = tabla4, FUN = sum)
resumen_fuel <- resumen_fuel[order(-resumen_fuel$ni), ]
resumen_fuel$Porcentaje <- round((resumen_fuel$ni / sum(resumen_fuel$ni)) * 100, 2)
barplot(resumen_fuel$Porcentaje,
names.arg = resumen_fuel$Grupo,
main = "Distribución de probabilidad de tipos de combustible",
xlab = "Tipo de combustible",
ylab = "Probabilidad (%)",
col = "steelblue",
las = 1,
cex.names = 0.6,
cex.axis = 0.8,
cex.lab = 1.2)
Tabla_fuel <- data.frame(
`Tipo de Combustible` = resumen_fuel$Grupo,
`Probabilidad (%)` = resumen_fuel$Porcentaje
)
colnames(Tabla_fuel) <- c("Tipo de Combustible", "Probabilidad (%)")
Tabla_fuel
## Tipo de Combustible Probabilidad (%)
## 1 Gasolina regular 63.60
## 2 Gasolina premium 24.94
## 3 Otros 8.91
## 4 Diesel 2.20
## 5 Eléctrico 0.35
La probabilidad es de 63,60 %