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 marcas por país de origen (local)

barplot(resumen_pais$ni,
        names.arg = resumen_pais$Pais,
        main = "Distribución de marcas por país de origen",
        xlab = "País",
        ylab = "Cantidad",
        col = "skyblue",
        las = 2,
        cex.names = 0.8,
        cex.axis = 0.8,
        cex.lab = 1.2)

Gráfica 2: Distribución de marcas por país de origen (global)

barplot(resumen_pais$ni,
        names.arg = resumen_pais$Pais,
        main = "Distribución de marcas por país de origen",
        xlab = "País",
        ylab = "Cantidad",
        col = "blue",
        las = 2,
        cex.names = 0.8,
        cex.axis = 0.8,
        cex.lab = 1.2,
        ylim = c(0, max(resumen_pais$ni) * 2.2))

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

barplot(resumen_pais$Porcentaje,
        names.arg = resumen_pais$Pais,
        main = "Distribución porcentual de marcas por país de origen",
        xlab = "País",
        ylab = "Porcentaje (%)",
        col = "steelblue",
        las = 2,
        cex.names = 0.8,
        cex.axis = 0.8,
        cex.lab = 1.2)

Gráfica 4 : Distribución porcentual de marcas por país de origen (global)

barplot(resumen_pais$Porcentaje,
        names.arg = resumen_pais$Pais,
        main = "Distribución porcentual de marcas por país de origen",
        xlab = "País",
        ylab = "Porcentaje (%)",
        col = "darkgreen",
        las = 2,
        cex.names = 0.8,
        cex.axis = 0.8,
        cex.lab = 1.2,
        ylim = c(0, 100))

Gráfica 5 : Distribución de marcas por país de origen (diagrama circular)

etiqueta_Tipo <- paste0(round(resumen_pais$Porcentaje, 2), "%")
colores <- rev(heat.colors(nrow(resumen_pais)))
pie(resumen_pais$Porcentaje,
    main = "GrC!fica 5: Distribución de marcas por país de origen",
    radius = 1,
    col = colores,
    labels = etiqueta_Tipo,
    cex = 0.8)
legend("bottomleft", legend = resumen_pais$Pais,
       title = "Grupos",
       cex = 0.5,
       fill = colores)

INDICADORES

moda_make <- names(TDFMake)[which.max(TDFMake)]
print(paste("MODA (MARCA):", moda_make))
## [1] "MODA (MARCA): Chevrolet"

Conclusión

La variable presenta una gran cantidad de vehículos de la Marca Chevrolet, reconocida en América. Lo cual es beneficioso para la economía del combustible de ese país.

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 modelos (local)

barplot(resumen_model$ni,
        names.arg = resumen_model$Grupo,
        main = "Distribución de modelos agrupados",
        xlab = "Modelos",
        ylab = "Cantidad",
        col = "skyblue",
        las = 2,
        cex.names = 0.8,
        cex.axis = 0.8,
        cex.lab = 1.2)

Gráfica 2: Distribución de modelos (global)

barplot(resumen_model$ni,
        names.arg = resumen_model$Grupo,
        main = "Distribución de modelos agrupados",
        xlab = "Modelos",
        ylab = "Cantidad",
        col = "blue",
        las = 2,
        cex.names = 0.8,
        cex.axis = 0.8,
        cex.lab = 1.2,
        ylim = c(0, max(resumen_model$ni) * 2.2))

Gráfica 3: Distribución porcentual (local)

barplot(resumen_model$Porcentaje,
        names.arg = resumen_model$Grupo,
        main = "Distribución porcentual de modelos agrupados",
        xlab = "Modelos",
        ylab = "Porcentaje (%)",
        col = "steelblue",
        las = 2,
        cex.names = 0.8,
        cex.axis = 0.8,
        cex.lab = 1.2)

Gráfica 4: Distribución porcentual (global)

barplot(resumen_model$Porcentaje,
        names.arg = resumen_model$Grupo,
        main = "Distribución porcentual de modelos agrupados",
        xlab = "Modelos",
        ylab = "Porcentaje (%)",
        col = "darkgreen",
        las = 2,
        cex.names = 0.8,
        cex.axis = 0.8,
        cex.lab = 1.2,
        ylim = c(0, 100))

Gráfica 5: Diagrama circular

etiqueta_Modelo <- paste0(round(resumen_model$Porcentaje, 2), "%")
colores <- rev(heat.colors(nrow(resumen_model)))
pie(resumen_model$Porcentaje,
    main = "Gráfica 5: Distribución de modelos agrupados",
    radius = 1,
    col = colores,
    labels = etiqueta_Modelo,
    cex = 0.8)
legend("bottomleft", legend = resumen_model$Grupo,
       title = "Grupos",
       cex = 0.5,
       fill = colores)

INDICADORES

moda_model <- names(TDFModel)[which.max(TDFModel)]
print(paste("MODA (MODELO):", moda_model))
## [1] "MODA (MODELO): F150 Pickup 2WD"

Conclusión

La variable presenta una gran cantidad de vehículos del modelo vehicular F1150 Pickup 2WD, camionetas muy conocidas. Lo cual es beneficioso para la economía del combustible de ese país.

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 tracción (local)

barplot(valores,
        main = "Distribución de tracción (local)",
        xlab = "Tipo de Tracción",
        ylab = "Cantidad",
        col = "skyblue",
        las = 2,
        cex.names = 0.6,
        cex.axis = 0.8,
        cex.lab = 1.2)

Gráfica 2: Distribución de tracción (global)

barplot(valores,
        main = "Distribución de tracción (global)",
        xlab = "Tipo de Tracción",
        ylab = "Cantidad",
        col = "blue",
        las = 2,
        cex.names = 0.6,
        cex.axis = 0.8,
        cex.lab = 1.2,
        ylim = c(0, max(tabla3$ni) * 2.2))

Gráfica 3: Distribución porcentual de tracción (local)

barplot(porcentajes,
        main = "Distribución porcentual de tracción (local)",
        xlab = "Tipo de Tracción",
        ylab = "Porcentaje (%)",
        col = "steelblue",
        las = 2,
        cex.names = 0.6,
        cex.axis = 0.8,
        cex.lab = 1.2)

Gráfica 4: Distribución porcentual de tracción (global)

barplot(porcentajes,
        main = "Distribución porcentual de tracción (global)",
        xlab = "Tipo de Tracción",
        ylab = "Porcentaje (%)",
        col = "darkgreen",
        las = 2,
        cex.names = 0.6,
        cex.axis = 0.8,
        cex.lab = 1.2,
        ylim = c(0, 100))

Gráfica 5: Distribución de tracción (diagrama circular)

etiqueta_Drive <- paste0(round(tabla3$hi_porc, 2), "%")
colores <- rev(heat.colors(nrow(tabla3)))
pie(tabla3$hi_porc,
    main = "Gráfica 5: Distribución de tracción",
    radius = 1,
    col = colores,
    labels = etiqueta_Drive,
    cex = 0.8)
legend("bottomleft", legend = tabla3$Tracción,
       title = "Grupos",
       cex = 0.5,
       fill = colores)

INDICADORES

moda_drive <- names(TDFDrive)[which.max(TDFDrive)]
print(paste("MODA (TRACCIÓN):", moda_drive))
## [1] "MODA (TRACCIÓN): Front-Wheel Drive"

Conclusión

La variable presenta una gran cantidad de vehículos con tracción delantera la cual mejora la eficiencia al reducir peso y complejidad mecánica. Esto disminuye el consumo de combustible, aumentando la economía del vehículo, lo cual es beneficioso.

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 tipos de combustible (local)

barplot(resumen_fuel$ni,
        names.arg = resumen_fuel$Grupo,
        main = "Distribución de tipos de combustible (local)",
        xlab = "Tipo de combustible",
        ylab = "Cantidad",
        col = "skyblue",
        las = 1,
        cex.names = 0.6,
        cex.axis = 0.8,
        cex.lab = 1.2)

Gráfica 2: Distribución de tipos de combustible (global)

barplot(resumen_fuel$ni,
        names.arg = resumen_fuel$Grupo,
        main = "Distribución de tipos de combustible (global)",
        xlab = "Tipo de combustible",
        ylab = "Cantidad",
        col = "blue",
        las = 1,
        cex.names = 0.6,
        cex.axis = 0.8,
        cex.lab = 1.2,
        ylim = c(0, max(resumen_fuel$ni) * 1.2))

Gráfica 3: Distribución porcentual de tipos de combustible (local)

barplot(resumen_fuel$Porcentaje,
        names.arg = resumen_fuel$Grupo,
        main = "Distribución porcentual de tipos de combustible (local)",
        xlab = "Tipo de combustible",
        ylab = "Porcentaje (%)",
        col = "steelblue",
        las = 1,
        cex.names = 0.6,
        cex.axis = 0.8,
        cex.lab = 1.2)

Gráfica 4: Distribución porcentual de tipos de combustible (global)

barplot(resumen_fuel$Porcentaje,
        names.arg = resumen_fuel$Grupo,
        main = "Distribución porcentual de tipos de combustible (global)",
        xlab = "Tipo de combustible",
        ylab = "Porcentaje (%)",
        col = "darkgreen",
        las = 1,
        cex.names = 0.6,
        cex.axis = 0.8,
        cex.lab = 1.2,
        ylim = c(0, 100))

Gráfica 5: Distribución de tipos de combustible (diagrama circular)

etiqueta_fuel <- paste0(round(resumen_fuel$Porcentaje, 2), "%")
colores <- rev(heat.colors(nrow(resumen_fuel)))
pie(resumen_fuel$Porcentaje,
    main = "Gráfica 5: Distribución de tipos de combustible",
    radius = 1,
    col = colores,
    labels = etiqueta_fuel,
    cex = 0.8)
legend("bottomleft", legend = resumen_fuel$Grupo,
       title = "Grupos",
       cex = 0.7,
       fill = colores)

INDICADORES

moda_fueltype <- names(TDFFuel.Type)[which.max(TDFFuel.Type)]
print(paste("MODA (TIPO DE COMBUSTIBLE):", moda_fueltype))
## [1] "MODA (TIPO DE COMBUSTIBLE): Regular"

Conclusión

La variable presenta una gran cantidad de vehículos que generan combustión a partir del la gasolina regular, la cual es mas barata en comparación con otros combustibles, lo que nos permite entender que los vehículos con este tipo de combustible nos ahorran mucho dinero, lo cual es beneficioso