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

Cargar los datos

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 ...

Variable Nominal (Make)

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)

Gráfica 1 : Distribución de probabilidad de marcas por país de origen (local)

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)

Probabilidad

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

¿Cuál es la probabilidad que un vehículo de EE.UU sea fabricado en ese mismo país?

La probabilidad es del 48,26 %

Variable Nominal (Model)

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)

Gráfica 1: Distribución de probabilidad de modelos vehiculares

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)

Probabilidad

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

¿Cuál es la probabilidad que un modelo de auto sea 1580?

La probabilidad es de 0,55 %

Variable Nominal (Drive)

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)

Gráfica 1: Distribución de probabilidad de 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)

Probabilidad

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

¿Cuál es la probabilidad que un auto tenga tracción 4WD?

La probabilidad es de 17,17 %

Variable Nominal (Fuel.Type)

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)

Gráfica 1: Distribución de probabilidad de tipos de combustible

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)

Probabilidad

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

¿Cuál es la probabilidad de que un vehículo use gasolina regular?

La probabilidad es de 63,60 %