Variable Original: STAT_CODE

Nombre Variable: COD_ESTADO

Tipo: Cualitativa Nominal

Justificación de la variable: El estado operativo de cada mina es relevante porque permite segmentar el análisis: una mina cerrada no contribuye a emisiones actuales. —

0.- Carga de librerías

#Estadística descriptiva
#Variable cualitativa nominal: Estado Operativo de la Mina (STAT_CODE)
#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 STAT_CODE y se recodifican sus códigos. Códigos: A=Activa, B=Temp. Inactiva, C=Cerrada, F=Inactiva Perm., 1=Activa carbón, 2=Temp. Inactiva carbón, 3=Cerrada carbón.

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

codigos   <- c("A","B","C","F","1","2","3")
etiquetas <- c("A-Activa","B-Temp.Inactiva","C-Cerrada",
               "F-Inactiva Perm.","1-Activa Carbon",
               "2-Temp.Inactiva Carbon","3-Cerrada Carbon")

COD_ESTADO_etiq <- COD_ESTADO
for (i in seq_along(codigos)) {
  COD_ESTADO_etiq[COD_ESTADO_etiq == codigos[i]] <- etiquetas[i]
}

3.- Frecuencia

TDF_Estado <- as.data.frame(table(COD_ESTADO_etiq))
colnames(TDF_Estado) <- c("Estado", "ni")

ni <- TDF_Estado$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_Estado <- data.frame(Estado = TDF_Estado$Estado, ni, hi) %>%
  arrange(desc(ni))

# Fila de resumen (TOTAL)
Summary <- data.frame(Estado = "TOTAL", ni = sum(TDF_Estado$ni), hi = sum(TDF_Estado$hi))
TDF_Estado_suma <- rbind(TDF_Estado, Summary)

colnames(TDF_Estado_suma) <- c("Estado Operativo", "ni", "hi(%)")

4.- Tabla de distribución de frecuencias

TDF_Estado_suma %>%
  gt() %>%
  tab_header(
    title    = md("Tabla Nro. 1"),
    subtitle = md("Distribución de frecuencias de la variable Estado Operativo de la Mina (STAT_CODE) 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 = `Estado Operativo` == "TOTAL")
  ) %>%
  tab_source_note(source_note = md("Autor: Luis Cruz"))
Tabla Nro. 1
Distribución de frecuencias de la variable Estado Operativo de la Mina (STAT_CODE) para el análisis de la actividad minera y emisión de gases en Estados Unidos.
Estado Operativo ni hi(%)
A-Activa 1198 40.99
1-Activa Carbon 688 23.55
2-Temp.Inactiva Carbon 471 16.12
C-Cerrada 277 9.48
B-Temp.Inactiva 202 6.91
F-Inactiva Perm. 44 1.51
3-Cerrada Carbon 42 1.44
TOTAL 2922 100.00
Autor: Luis Cruz

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

Diagrama de cantidad

par(mar = c(10, 5, 4, 2))
barplot(TDF_Estado$ni,
        names.arg = TDF_Estado$Estado,
        main = "Gráfica Nro. 1\nDistribución de cantidad por estado operativo\nen instalaciones mineras de Estados Unidos",
        xlab = "", ylab = "Cantidad (ni)",
        col = "#70AD47",
        las = 2, cex.names = 0.85)

Diagramas procentuales

par(mar = c(10, 5, 4, 2))
barplot(TDF_Estado$hi,
        names.arg = TDF_Estado$Estado,
        main = "Gráfica Nro. 2\nDistribución de cantidad en porcentaje\npor estado operativo en instalaciones mineras de Estados Unidos",
        xlab = "", ylab = "Porcentaje (%)",
        col = "#C5E0A8",
        las = 2, cex.names = 0.85,
        ylim = c(0, 100))

Diagrama circular

colores <- c("#70AD47","#C5E0A8","#375623","#A9D18E",
             "#255E24","#548235","#E2EFDA")

par(mar = c(5, 4, 4, 20), xpd = TRUE)
pie(TDF_Estado$hi,
    labels = NA,
    col = colores[1:nrow(TDF_Estado)],
    radius = 0.7,
    main = "Gráfica Nro. 3\nDistribución de cantidad en porcentaje\npor estado operativo")
legend("right",
       inset = c(-0.55, 0),
       legend = paste0(TDF_Estado$Estado, " (", TDF_Estado$hi, "%)"),
       fill = colores[1:nrow(TDF_Estado)],
       title = "ESTADO OPERATIVO",
       bty = "n", xpd = TRUE, cex = 0.7)

6.- Indicadores estadísticos

# Cálculo de la moda (Mo): el estado operativo con mayor frecuencia (ni)
Moda_row <- TDF_Estado[which.max(TDF_Estado$ni), ]
Mo <- as.character(Moda_row$Estado[1])

tabla_indicadores <- data.frame(
  "Variable" = "Estado Operativo de la Mina (STAT_CODE)",
  "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 Operativo de la Mina (STAT_CODE)")
Indicadores estadísticos de la variable Estado Operativo de la Mina (STAT_CODE)
Variable Rango X Me Mo V Sd Cv As K Valores.Atípicos
Estado Operativo de la Mina (STAT_CODE) - - - A-Activa - - - - - -

7.- Conclusiones

En conclusión:

La variable estado operativo registra la situación de cada instalación minera (activa, inactiva o cerrada). El estado operativo más frecuente es A-Activa, con 1198 registros (40.99% del total).