title: “Análisis de la Variable STAT_CODE” author: “Santiago Agila” date: “2026-06-04” output: html_document: toc: true toc_depth: 3 toc_float: true number_sections: true ———————

1. Justificación de la variable

La variable STAT_CODE representa el estado operativo de cada instalación minera.

Su análisis es importante porque permite diferenciar minas activas, temporalmente inactivas y cerradas. Esta clasificación es fundamental para interpretar correctamente la relación entre la actividad minera y las emisiones de CO₂, NOx y CH₄, ya que las minas fuera de operación no contribuyen de la misma manera a las emisiones registradas.

2. Preparación de datos

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

n <- length(COD_ESTADO)

data.frame(
  Variable = "STAT_CODE",
  Registros_Validos = n
)
##    Variable Registros_Validos
## 1 STAT_CODE              2922

3. Recodificación de categorías

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]
}

4. Tabla de frecuencias

TDF <- as.data.frame(table(COD_ESTADO_etiq)) %>%
  rename(
    Estado = COD_ESTADO_etiq,
    fi = Freq
  ) %>%
  arrange(desc(fi)) %>%
  mutate(
    fri = round(fi/n*100,2),
    Ni_asc = cumsum(fi),
    Ni_des = rev(cumsum(rev(fi))),
    Hi_asc = round(cumsum(fri),2),
    Hi_des = round(rev(cumsum(rev(fri))),2)
  )

TDF_total <- TDF %>%
  add_row(
    Estado = "Total",
    fi = sum(TDF$fi),
    fri = round(sum(TDF$fri),2),
    Ni_asc = max(TDF$Ni_asc),
    Ni_des = min(TDF$Ni_des),
    Hi_asc = max(TDF$Hi_asc),
    Hi_des = min(TDF$Hi_des)
  )

TDF_total
##                   Estado   fi    fri Ni_asc Ni_des Hi_asc Hi_des
## 1               A-Activa 1198  41.00   1198   2922  41.00 100.01
## 2        1-Activa Carbon  688  23.55   1886   1724  64.55  59.01
## 3 2-Temp.Inactiva Carbon  471  16.12   2357   1036  80.67  35.46
## 4              C-Cerrada  277   9.48   2634    565  90.15  19.34
## 5        B-Temp.Inactiva  202   6.91   2836    288  97.06   9.86
## 6       F-Inactiva Perm.   44   1.51   2880     86  98.57   2.95
## 7       3-Cerrada Carbon   42   1.44   2922     42 100.01   1.44
## 8                  Total 2922 100.01   2922     42 100.01   1.44

Tabla 1. Distribución de frecuencias

TDF_total %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 1**"),
    subtitle = md("Distribución de frecuencias por estado operativo")
  ) %>%
  cols_label(
    Estado = "Estado Operativo",
    fi = "fi",
    fri = "fri (%)",
    Ni_asc = "Ni Asc.",
    Ni_des = "Ni Desc.",
    Hi_asc = "Hi Asc. %",
    Hi_des = "Hi Desc. %"
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = Estado == "Total")
  )
Tabla 1
Distribución de frecuencias por estado operativo
Estado Operativo fi fri (%) Ni Asc. Ni Desc. Hi Asc. % Hi Desc. %
A-Activa 1198 41.00 1198 2922 41.00 100.01
1-Activa Carbon 688 23.55 1886 1724 64.55 59.01
2-Temp.Inactiva Carbon 471 16.12 2357 1036 80.67 35.46
C-Cerrada 277 9.48 2634 565 90.15 19.34
B-Temp.Inactiva 202 6.91 2836 288 97.06 9.86
F-Inactiva Perm. 44 1.51 2880 86 98.57 2.95
3-Cerrada Carbon 42 1.44 2922 42 100.01 1.44
Total 2922 100.01 2922 42 100.01 1.44
TDF_graf <- TDF_total %>%
  filter(Estado != "Total")

5. Representaciones gráficas

5.1 Frecuencia absoluta

par(mar = c(10,5,4,2))

barplot(
  TDF_graf$fi,
  names.arg = TDF_graf$Estado,
  las = 2,
  col = "#70AD47",
  main = "Frecuencia Absoluta — STAT_CODE",
  ylab = "Frecuencia absoluta (fi)"
)

5.2 Frecuencia relativa

par(mar = c(10,5,4,2))

barplot(
  TDF_graf$fri,
  names.arg = TDF_graf$Estado,
  las = 2,
  col = "#C5E0A8",
  main = "Frecuencia Relativa — STAT_CODE",
  ylab = "Frecuencia relativa (%)",
  ylim = c(0,max(TDF_graf$fri)+5)
)

5.3 Diagrama circular

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

pie(
  TDF_graf$fri,
  labels = NA,
  col = colores[1:nrow(TDF_graf)],
  main = "Distribución porcentual — STAT_CODE"
)

legend(
  "topright",
  legend = paste0(
    TDF_graf$Estado,
    " (",
    TDF_graf$fri,
    "%)"
  ),
  fill = colores[1:nrow(TDF_graf)],
  cex = 0.8
)

6. Indicadores estadísticos

moda_idx <- which.max(TDF_graf$fi)

moda <- TDF_graf$Estado[moda_idx]
moda_fi <- TDF_graf$fi[moda_idx]
moda_fri <- TDF_graf$fri[moda_idx]

data.frame(
  Variable = "Estado operativo (STAT_CODE)",
  Indicador = "Moda",
  Resultado = paste0(
    moda,
    " (",
    moda_fi,
    " instalaciones, ",
    moda_fri,
    "%)"
  )
) %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 2**"),
    subtitle = md("Indicadores estadísticos")
  )
Tabla 2
Indicadores estadísticos
Variable Indicador Resultado
Estado operativo (STAT_CODE) Moda A-Activa (1198 instalaciones, 41%)

7. Conclusión

La variable STAT_CODE registra el estado operativo de cada instalación minera. Se analizaron 2922 registros válidos. El estado operativo más frecuente fue A-Activa, con 1198 registros que representan 41% del total. Esta información permite identificar la proporción de minas activas e inactivas y constituye un elemento clave para el análisis de correlación entre la actividad minera y las emisiones de CO₂, NOx y CH₄.