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("Variable  : STAT_CODE\n")
## Variable  : STAT_CODE
cat("Nombre    : COD_ESTADO\n")
## Nombre    : COD_ESTADO
cat("n validos :", n, "\n")
## n validos : 2922

2. Recodificación de Categorías

# Codigos: A=Activa, B=Temp.Inactiva, C=Cerrada, F=Inactiva Perm.
# 1=Activa carbon, 2=Temp.Inactiva carbon, 3=Cerrada carbon
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")

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

cat("Categorías encontradas:\n")
## Categorías encontradas:
print(table(etiq))
## etiq
##        1-Activa Carbon 2-Temp.Inactiva Carbon       3-Cerrada Carbon 
##                    688                    471                     42 
##               A-Activa        B-Temp.Inactiva              C-Cerrada 
##                   1198                    202                    277 
##       F-Inactiva Perm. 
##                     44

3. Tabla de Distribución de Frecuencias

3.1 Cálculo de Frecuencias

TDF <- as.data.frame(table(etiq)) %>%
  rename(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)
  )

3.2 Tabla de Frecuencias (Salida Básica)

print(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

3.3 Presentación de la Tabla

TDF_total %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla 1**"),
    subtitle = md("Distribución de frecuencias por estado operativo — STAT_CODE")
  ) %>%
  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")
  ) %>%
  tab_source_note(md("Fuente: Dataset MSHA — Instalaciones Mineras EE.UU."))
Tabla 1
Distribución de frecuencias por estado operativo — STAT_CODE
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
Fuente: Dataset MSHA — Instalaciones Mineras EE.UU.

4. Diagramas de Barras

4.1 Frecuencia Absoluta

par(mar = c(10, 5, 4, 2))
barplot(
  TDF_graf$fi,
  names.arg = TDF_graf$Estado,
  las       = 2,
  col       = "#70AD47",
  main      = "Gráfica 1: Frecuencia Absoluta — COD_ESTADO",
  ylab      = "Frecuencia absoluta (fi)",
  cex.names = 0.85,
  cex.axis  = 0.9
)

4.2 Frecuencia Relativa

par(mar = c(10, 5, 4, 2))
barplot(
  TDF_graf$fri,
  names.arg = TDF_graf$Estado,
  las       = 2,
  col       = "#C5E0A8",
  main      = "Gráfica 2: Frecuencia Relativa — COD_ESTADO",
  ylab      = "Frecuencia relativa (%)",
  ylim      = c(0, max(TDF_graf$fri) + 5),
  cex.names = 0.85,
  cex.axis  = 0.9
)


5. Diagrama Circular

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

par(mar = c(5, 4, 4, 12), xpd = TRUE)
pie(
  TDF_graf$fri,
  labels = NA,
  col    = colores[1:nrow(TDF_graf)],
  main   = "Gráfica 3: Distribución Porcentual — COD_ESTADO"
)
legend(
  x      = 1.2,
  y      = 0,
  legend = paste0(TDF_graf$Estado, " (", TDF_graf$fri, "%)"),
  fill   = colores[1:nrow(TDF_graf)],
  cex    = 0.75,
  bty    = "n"
)

par(xpd = FALSE)

6. Indicadores Estadísticos

6.1 Moda

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]

cat("Moda:", moda, "(", moda_fi, "instalaciones,", moda_fri, "%)\n")
## Moda: A-Activa ( 1198 instalaciones, 41 %)

6.2 Tabla Resumen de Indicadores

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 — COD_ESTADO")
  ) %>%
  cols_label(
    Variable  = "Variable analizada",
    Indicador = "Indicador estadístico",
    Resultado = "Resultado"
  ) %>%
  tab_style(
    style     = cell_text(weight = "bold"),
    locations = cells_body()
  ) %>%
  tab_source_note(md("Fuente: Dataset MSHA — Instalaciones Mineras EE.UU."))
Tabla 2
Indicadores estadísticos — COD_ESTADO
Variable analizada Indicador estadístico Resultado
Estado operativo (STAT_CODE) Moda A-Activa (1198 instalaciones, 41%)
Fuente: Dataset MSHA — Instalaciones Mineras EE.UU.

7. Conclusión

cat(sprintf(
"La variable COD_ESTADO registra el estado operativo de cada
instalacion minera. El total de registros validos es %d.

El estado operativo mas frecuente es %s con %d registros
que representan el %.2f%% del total de la muestra.

Esta distribucion es fundamental para el proyecto: conocer
la proporcion de minas activas frente a cerradas o inactivas
permite segmentar correctamente el analisis de correlacion
con las emisiones de CO2, NOx y CH4, ya que solo las minas
en operacion contribuyen directamente al volumen de emisiones
reportadas por estado en 2018.\n",
  n, moda, moda_fi, moda_fri
))
## La variable COD_ESTADO registra el estado operativo de cada
## instalacion minera. El total de registros validos es 2922.
## 
## El estado operativo mas frecuente es A-Activa con 1198 registros
## que representan el 41.00% del total de la muestra.
## 
## Esta distribucion es fundamental para el proyecto: conocer
## la proporcion de minas activas frente a cerradas o inactivas
## permite segmentar correctamente el analisis de correlacion
## con las emisiones de CO2, NOx y CH4, ya que solo las minas
## en operacion contribuyen directamente al volumen de emisiones
## reportadas por estado en 2018.