Variable Original: STAT_CODE

Nombre Variable: COD_ESTADO

Tipo: Cualitativa Nominal

Escala: 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. Conocer la proporción de minas activas vs. cerradas es clave para interpretar la correlación con las emisiones de CO2, NOx y CH4 reportadas en 2018.


1 Carga y Preparación de los Datos

library(dplyr)
library(gt)

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

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

cat("n validos :", n, "\n")
## n validos : 2922

2 Recodificación de Categorías

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.

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 Tabla de Distribución de Frecuencias

NOTA: al ser variable NOMINAL no se calculan frecuencias acumuladas (Ni/Hi), ya que las categorías no tienen un orden lógico entre sí.

TDF <- as.data.frame(table(COD_ESTADO_etiq)) %>%
  rename(Estado = COD_ESTADO_etiq, ni = Freq) %>%
  arrange(desc(ni)) %>%
  mutate(hi = round(ni / sum(ni) * 100, 2))

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

# Fila total
TDF_total <- TDF %>%
  mutate(Estado = as.character(Estado)) %>%
  bind_rows(
    data.frame(Estado = "TOTAL", ni = sum(TDF$ni), hi = sum(TDF$hi))
  )

TDF_total %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla N°1**"),
    subtitle = "Distribución Nominal por Estado Operativo (STAT_CODE)"
  ) %>%
  cols_label(Estado = "Estado Operativo", ni = "Frecuencia", hi = "Porcentaje (%)") %>%
  cols_align(align = "center", columns = everything()) %>%
  fmt_number(columns = c(ni, hi), decimals = 0) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = Estado == "TOTAL")
  ) %>%
  tab_source_note(source_note = md("Autor: Grupo 4 - Minas"))
Tabla N°1
Distribución Nominal por Estado Operativo (STAT_CODE)
Estado Operativo Frecuencia Porcentaje (%)
A-Activa 1,198 41
1-Activa Carbon 688 24
2-Temp.Inactiva Carbon 471 16
C-Cerrada 277 9
B-Temp.Inactiva 202 7
F-Inactiva Perm. 44 2
3-Cerrada Carbon 42 1
TOTAL 2,922 100
Autor: Grupo 4 - Minas

4 Diagramas de Barras

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

par(mar = c(10, 5, 4, 2))
barplot(TDF_graf$hi,
        names.arg = TDF_graf$Estado,
        main = "Gráfica N°2: Distribució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, max(TDF_graf$hi) * 1.2))

5 Diagrama Circular

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

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

par(xpd = FALSE)

6 Indicadores Estadísticos

moda_estado <- TDF_graf[TDF_graf$ni == max(TDF_graf$ni), ]
moda_estado
##     Estado   ni    hi
## 1 A-Activa 1198 40.99

7 Conclusión

conclusion <- sprintf(
  "La variable estado operativo registra la situación de cada instalación minera (activa, inactiva o cerrada). El total de registros válidos es %d. El estado operativo más frecuente es '%s', con %d registros (%.0f%% del total). Esta distribución es fundamental para el proyecto: conocer la proporción de minas activas frente a cerradas o inactivas permite segmentar correctamente el análisis de correlación con las emisiones de CO2, NOx y CH4, ya que solo las minas en operación contribuyen directamente al volumen de emisiones reportadas por estado en 2018."
  , n, moda_estado$Estado[1], moda_estado$ni[1], moda_estado$hi[1]
)
print(conclusion)
## [1] "La variable estado operativo registra la situación de cada instalación minera (activa, inactiva o cerrada). El total de registros válidos es 2922. El estado operativo más frecuente es 'A-Activa', con 1198 registros (41% del total). Esta distribución es fundamental para el proyecto: conocer la proporción de minas activas frente a cerradas o inactivas permite segmentar correctamente el análisis de correlación con las emisiones de CO2, NOx y CH4, ya que solo las minas en operación contribuyen directamente al volumen de emisiones reportadas por estado en 2018."