Variable Original: STATE

Nombre Variable: ESTADO

Tipo: Cualitativa Nominal


0.- Carga de librerías

#Estadística descriptiva
#Variable cualitativa nominal: Estado Administrativo (STATE)
#Autor: Luis Cruz
#Fecha: 2026-07-05

library(dplyr)
library(gt)
library(knitr)

1.- Carga de datos

datos <- read.csv("~/Estudio/TERCER SEMESTRE/Estadistica/Dataset.csv",
                   sep = ";", stringsAsFactors = FALSE)

2.- Selección de la variable

Se selecciona la variable STATE y se agrupan los estados en 8 regiones geográficas para mantener la tabla con máximo 10 filas (recomendación académica). La agrupación es idéntica a la usada en MSTATE, para mantener consistencia metodológica entre ambas variables de estado.

ESTADO <- trimws(as.character(datos$STATE))
ESTADO <- ESTADO[!is.na(ESTADO) & ESTADO != ""]
n <- length(ESTADO)

region <- character(length(ESTADO))

for (i in 1:length(ESTADO)) {
  if (ESTADO[i] %in% c("KY","WV","VA","PA","TN")) {
    region[i] <- "Appalachia"
  } else if (ESTADO[i] %in% c("AL","GA","MS","AR","LA","FL","SC","NC","TX","OK")) {
    region[i] <- "Sur"
  } else if (ESTADO[i] %in% c("OH","IN","NY","MD","NJ","CT","MA","VT","NH","ME","RI","DE")) {
    region[i] <- "Noreste"
  } else if (ESTADO[i] %in% c("IL","MO","KS","IA","MN","WI","ND","SD","NE","MI")) {
    region[i] <- "Centro"
  } else if (ESTADO[i] %in% c("AZ","NM","CO","UT","NV","CA")) {
    region[i] <- "Suroeste"
  } else if (ESTADO[i] %in% c("WA","OR","ID","MT","WY")) {
    region[i] <- "Noroeste"
  } else if (ESTADO[i] %in% c("AK","HI")) {
    region[i] <- "Alaska/Hawaii"
  } else {
    region[i] <- "Otros"
  }
}

3.- Frecuencia

TDF_Region <- as.data.frame(table(region))
colnames(TDF_Region) <- c("Region", "ni")

ni <- TDF_Region$ni
hi <- round(ni / sum(ni) * 100, 2)

# Ajuste matemático para forzar que la suma de 'hi' sea exactamente 100
diferencia <- 100 - sum(hi)
if (diferencia != 0) {
  pos_max <- which.max(ni)
  hi[pos_max] <- hi[pos_max] + diferencia
}

TDF_Region <- data.frame(Region = TDF_Region$Region, ni, hi) %>%
  arrange(desc(ni))

# Fila de resumen (TOTAL)
Summary <- data.frame(Region = "TOTAL", ni = sum(TDF_Region$ni), hi = sum(TDF_Region$hi))
TDF_Region_suma <- rbind(TDF_Region, Summary)

colnames(TDF_Region_suma) <- c("Región", "ni", "hi(%)")

4.- Tabla de distribución de frecuencias

TDF_Region_suma %>%
  gt() %>%
  tab_header(
    title    = md("Tabla Nro. 1"),
    subtitle = md("Distribución de frecuencias de la variable Estado Administrativo (STATE) para el análisis de la actividad minera y emisión de gases en Estados Unidos.")
  ) %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = Región == "TOTAL")
  ) %>%
  tab_source_note(source_note = md("Autor: Luis Cruz"))
Tabla Nro. 1
Distribución de frecuencias de la variable Estado Administrativo (STATE) para el análisis de la actividad minera y emisión de gases en Estados Unidos.
Región ni hi(%)
Appalachia 1509 50.37
Sur 507 16.92
Noreste 352 11.75
Suroeste 325 10.85
Centro 155 5.17
Noroeste 123 4.11
Alaska/Hawaii 22 0.73
Otros 3 0.10
TOTAL 2996 100.00
Autor: Luis Cruz

5.- Gráficos de distribución de frecuencia

5.1- Diagrama de cantidad

par(mar = c(8, 5, 4, 2))
barplot(TDF_Region$ni,
        names.arg = TDF_Region$Region,
        main = "Gráfica Nro. 1\nDistribución de cantidad por región geográfica\nen instalaciones mineras de Estados Unidos",
        xlab = "", ylab = "Cantidad (ni)",
        col = "#C00000",
        las = 2, cex.names = 0.9)

5.2- Diagramas procentuales

par(mar = c(8, 5, 4, 2))
barplot(TDF_Region$hi,
        names.arg = TDF_Region$Region,
        main = "Gráfica Nro. 2\nDistribución de cantidad en porcentaje\npor región geográfica en instalaciones mineras de Estados Unidos",
        xlab = "", ylab = "Porcentaje (%)",
        col = "#FF9999",
        las = 2, cex.names = 0.9,
        ylim = c(0, 100))

5.3- Diagrama circular

colores <- c("#C00000","#FF9999","#7B0000","#FF6666",
             "#FF3333","#CC0000","#FF0000","#FFB3B3")

par(mar = c(5, 2, 4, 14), xpd = TRUE)
pie(TDF_Region$hi,
    labels = NA,
    col = colores[1:nrow(TDF_Region)],
    radius = 0.8,
    main = "Gráfica Nro. 3\nDistribución de cantidad en porcentaje\npor región geográfica")
legend("right",
       inset = c(-0.35, 0),
       legend = paste0(TDF_Region$Region, " (", TDF_Region$hi, "%)"),
       fill = colores[1:nrow(TDF_Region)],
       title = "REGIÓN",
       bty = "n", xpd = TRUE, cex = 0.8)

6.- Indicadores estadísticos

# Cálculo de la moda (Mo): la región con mayor frecuencia (ni)
Moda_row <- TDF_Region[which.max(TDF_Region$ni), ]
Mo <- as.character(Moda_row$Region[1])

tabla_indicadores <- data.frame(
  "Variable" = "Estado Administrativo (STATE)",
  "Rango" = "-",
  "X" = "-",
  "Me" = "-",
  "Mo" = Mo,
  "V" = "-",
  "Sd" = "-",
  "Cv" = "-",
  "As" = "-",
  "K" = "-",
  "Valores Atípicos" = "-"
)

kable(tabla_indicadores, align = 'c',
      caption = "Indicadores estadísticos de la variable Estado Administrativo (STATE)")
Indicadores estadísticos de la variable Estado Administrativo (STATE)
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Estado Administrativo (STATE) - - - Appalachia - - - - - -

7.- Conclusiones

En conclusión:

La variable estado administrativo (STATE) representa el estado en razón del cual se registran las emisiones de gases (a diferencia de MSTATE, que indica la ubicación física de la mina). La región con mayor concentración administrativa es Appalachia, con 1509 instalaciones (50.37% del total).