1. Carga de datos

1.1 Archivo CSV

Dataset <- read.csv2("Dataset.csv")

1.2 Dataset

datos <- Dataset
str(datos)
## 'data.frame':    2996 obs. of  60 variables:
##  $ index                              : int  0 1 2 3 4 5 6 7 8 9 ...
##  $ FID                                : int  2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 ...
##  $ NGAID                              : logi  NA NA NA NA NA NA ...
##  $ SRCLNKID                           : int  3608932 3608933 3608941 3608943 4607236 4607273 3609147 3609148 3609264 4003177 ...
##  $ METLNKID                           : logi  NA NA NA NA NA NA ...
##  $ FEATTYPE                           : chr  "POINT" "POINT" "POINT" "POINT" ...
##  $ SECCLASS                           : chr  "UNCLASSIFIED" "UNCLASSIFIED" "UNCLASSIFIED" "UNCLASSIFIED" ...
##  $ NAME                               : chr  "DOUGLAS G. KLIMER QUARRIES - SHEA QUARRY" "ROCK RIDGE STONE - BURTS BROTHERS" "DAVID B. WILLIAMS - STANKAVAGE QUARRY" "SCOTT H ROSENKRANS - ROSENKRANS" ...
##  $ AREA_                              : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ PHONE                              : chr  " " " " " " " " ...
##  $ ADDRESS                            : chr  "BOWBRIDGE ROAD" "SHOWALTER ROAD" "STATE HIGHWAY 29" "BOLLES ROAD" ...
##  $ ADDRESS2                           : chr  " " " " " " " " ...
##  $ CITY                               : chr  "FRIENDSVILLE" "MONTROSE" "SPRINGVILLE" "MONTROSE" ...
##  $ STATE                              : chr  "PA" "PA" "PA" "PA" ...
##  $ ZIP                                : int  18818 18801 18844 18801 25140 25130 18822 16838 18657 37715 ...
##  $ ZIPP4                              : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ COUNTY                             : chr  "SUSQUEHANNA" "SUSQUEHANNA" "SUSQUEHANNA" "SUSQUEHANNA" ...
##  $ FIPS                               : int  42115 42115 42115 42115 54081 54005 42115 42033 42131 47025 ...
##  $ DIRECTIONS                         : chr  " " " " " " " " ...
##  $ EMERGTITLE                         : logi  NA NA NA NA NA NA ...
##  $ EMERGPHONE                         : logi  NA NA NA NA NA NA ...
##  $ EMERGEXT                           : logi  NA NA NA NA NA NA ...
##  $ CONTDATE                           : chr  "2006-08-09T00:00:00.000Z" "2006-08-09T00:00:00.000Z" "2006-08-09T00:00:00.000Z" "2006-08-16T00:00:00.000Z" ...
##  $ CONTHOW                            : chr  "ALT REF" "ALT REF" "ALT REF" "ALT REF" ...
##  $ GEODATE                            : chr  "2006-08-09T00:00:00.000Z" "2006-08-09T00:00:00.000Z" "2006-08-09T00:00:00.000Z" "2006-08-16T00:00:00.000Z" ...
##  $ GEOHOW                             : chr  "MANUAL" "MANUAL" "MANUAL" "MANUAL" ...
##  $ HSIPTHEMES                         : chr  "IMPORTANT INDUSTRY, CHEMICAL AND MANUFACTURING, MINING, OTHER MINING FACILITIES" "IMPORTANT INDUSTRY, CHEMICAL AND MANUFACTURING, MINING, OTHER MINING FACILITIES" "IMPORTANT INDUSTRY, CHEMICAL AND MANUFACTURING, MINING, OTHER MINING FACILITIES" "IMPORTANT INDUSTRY, CHEMICAL AND MANUFACTURING, MINING, OTHER MINING FACILITIES" ...
##  $ NAICSCODE                          : int  212311 212311 212311 212311 212112 212112 212311 212311 212311 212112 ...
##  $ NAICSDESCR                         : chr  "SANDSTONE MINING OR QUARRYING" "SANDSTONE MINING OR QUARRYING" "SANDSTONE MINING OR QUARRYING" "SANDSTONE MINING OR QUARRYING" ...
##  $ GEOLINKID                          : int  98024482 98081746 98341241 98309770 123523871 126688889 123356282 117022524 125411495 124170624 ...
##  $ SOURCE                             : chr  "TGS" "TGS" "TGS" "TGS" ...
##  $ x                                  : num  -76 -76 -75.9 -75.8 -81.5 ...
##  $ y                                  : chr  "41,965" "41,87054" "41,73163" "41,89329" ...
##  $ ST_VENDOR                          : chr  "NAVTEQ" "NAVTEQ" "NAVTEQ" "NAVTEQ" ...
##  $ ST_VERSION                         : chr  "2006Q1" "2006Q1" "2006Q1" "2006Q1" ...
##  $ GEOPREC                            : chr  "BLOCKFACE" "BLOCKFACE" "BLOCKFACE" "BLOCKFACE" ...
##  $ PHONELOC                           : chr  "NO" "NO" "NO" "NO" ...
##  $ QC_QA                              : chr  "TGS" "TGS" "TGS" "TGS" ...
##  $ MINE_ID                            : int  3608932 3608933 3608941 3608943 4607236 4607273 3609147 3609148 3609264 4003177 ...
##  $ INSPEC_OFF                         : int  2621 2621 2621 2621 401 406 2621 2681 2621 703 ...
##  $ SIC                                : int  14114 14114 14114 14114 12110 12110 14111 14114 14115 12110 ...
##  $ CANVASS                            : int  6 6 6 6 2 2 6 6 6 2 ...
##  $ MINE_TYPE                          : int  6 6 6 6 11 11 6 6 6 11 ...
##  $ STAT_CODE                          : chr  "2" "2" "2" "2" ...
##  $ STAT_DATE                          : int  20010327 20040520 20040630 20010330 19990524 19970527 20040219 20030529 20040709 20050817 ...
##  $ COMPNAME                           : chr  "DOUGLAS G. KLIMER QUARRIES" "ROCK RIDGE STONE" "DAVID B. WILLIAMS" "SCOTT H ROSENKRANS" ...
##  $ MINE_PLANT                         : chr  "SHEA QUARRY" "BURTS BROS" "STANKAVAGE QUARRY" "ROSENKRANS" ...
##  $ MADDRESS                           : chr  "RR 1 BOX 85K" "RR 2, BOX 151-B" "RR #2, BOX 197" "RD #3, BOX 94" ...
##  $ MCITY                              : chr  "UNIONDALE" "KINGSLEY" "KINGSLEY" "MONTROSE" ...
##  $ MSTATE                             : chr  "PA" "PA" "PA" "PA" ...
##  $ MZIP                               : int  18470 18826 18826 18801 25140 25130 18822 16833 18657 37752 ...
##  $ MCOUNTY                            : chr  "SUSQUEHANNA" "SUSQUEHANNA" "SUSQUEHANNA" "SUSQUEHANNA" ...
##  $ SUBUNIT_NU                         : int  2 1 1 1 2 3 1 2 1 2 ...
##  $ SUBUNIT_1                          : int  3 3 3 3 1 1 3 3 3 1 ...
##  $ SUBUNIT_2                          : int  99 NA NA NA 2 2 NA 99 NA 2 ...
##  $ SUBUNIT_3                          : int  NA NA NA NA NA 99 NA NA NA NA ...
##  $ SUBUNIT_4                          : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ CO2.total.emissions..tons..by.state: chr  "84463281.51" "84463281.51" "84463281.51" "84463281.51" ...
##  $ NOx.total.emissions..tons..by.state: chr  "46.962.424" "46.962.424" "46.962.424" "46.962.424" ...
##  $ CH4.total.emissions..tons..by.state: chr  "N/A" "N/A" "N/A" "N/A" ...

2. Identificación y selección de la variable

2.1 Tipo de variable

La variable STAT_CODE es una variable cualitativa nominal, ya que representa categorías del estado operativo de las instalaciones mineras y no posee un orden jerárquico entre sus categorías.

2.2 Justificación

El análisis de esta variable permite identificar la proporción de minas activas, temporalmente inactivas y cerradas, información fundamental para estudiar su relación con las emisiones de CO₂, NOx y CH₄.

3. Conteo general

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

4. Tabla de distribución de frecuencias

4.1 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.2 Construcción de la TDF

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. Gráficos estadísticos

5.1 Diagrama de barras (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 Diagrama de barras (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. Medidas de tendencia central

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]

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. Conclusiones

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₄.