1 Introducción

El presente informe desarrolla un análisis estadístico descriptivo de las emisiones totales de metano (CH4) por estado para el año 2018. Se emplean tablas de frecuencia, histogramas, ojivas, diagramas de caja e indicadores estadísticos con el fin de caracterizar el comportamiento de la variable y evaluar su relación con la actividad minera.

2 Librerías y Preparación de Datos

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(gt)
library(e1071)

datos <- read.csv2(
  "Dataset.csv",
  header = FALSE,
  stringsAsFactors = FALSE
)
datos <- datos[-1, ]

EMIS_CH4 <- datos$V60
EMIS_CH4[EMIS_CH4 == "N/A"] <- NA
EMIS_CH4 <- gsub("\\.", "", EMIS_CH4)
EMIS_CH4 <- as.numeric(EMIS_CH4)
## Warning: NAs introducidos por coerción
EMIS_CH4 <- EMIS_CH4[!is.na(EMIS_CH4)]

n <- length(EMIS_CH4)

3 Descripción de la Variable

cat("Variable  : CH4 total emissions (tons) by state\n")
## Variable  : CH4 total emissions (tons) by state
cat("Nombre    : EMIS_CH4\n")
## Nombre    : EMIS_CH4
cat("n válidos :", n, "\n")
## n válidos : 1038
cat("Min       :", round(min(EMIS_CH4),0), "ton\n")
## Min       : 6055498 ton
cat("Max       :", round(max(EMIS_CH4),0), "ton\n")
## Max       : 7664816242 ton

La variable corresponde a las emisiones totales de metano (CH4) registradas por estado. El metano es uno de los gases de efecto invernadero más importantes debido a su elevado potencial de calentamiento global.

4 Parámetros de Clasificación

k  <- ceiling(1 + 3.322 * log10(n))
am <- (max(EMIS_CH4) - min(EMIS_CH4)) / k
am <- round(am, 0)

cat("k (Sturges):", k, "\n")
## k (Sturges): 12
cat("Amplitud ajustada:", am, "\n")
## Amplitud ajustada: 638230062

5 Construcción de la Tabla de Frecuencias

breaks <- seq(min(EMIS_CH4),
              min(EMIS_CH4) + k * am,
              length.out = k + 1)

breaks[length(breaks)] <- max(EMIS_CH4) + 1

cortes <- cut(
  EMIS_CH4,
  breaks = breaks,
  include.lowest = TRUE,
  right = FALSE
)

fi  <- as.vector(table(cortes))
fri <- round(fi / n * 100, 2)

Ni <- cumsum(fi)
Nd <- rev(cumsum(rev(fi)))

Hi <- round(Ni / n * 100, 2)
Hd <- round(Nd / n * 100, 2)

mc <- round(
  (breaks[-length(breaks)] + breaks[-1]) / 2,
  0
)

TDF <- data.frame(
  Desde = round(breaks[-length(breaks)], 0),
  Hasta = round(breaks[-1], 0),
  MC = mc,
  fi = fi,
  fri = fri,
  Ni = Ni,
  Nd = Nd,
  Hi = Hi,
  Hd = Hd
)

6 Tabla de Frecuencias

TDF %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 1**"),
    subtitle = md("Distribución de frecuencias — Emisiones CH4 (ton) por estado")
  ) %>%
  cols_label(
    Desde = "Desde (ton)",
    Hasta = "Hasta (ton)",
    MC = "Marca Clase",
    fi = "fi",
    fri = "fri (%)",
    Ni = "Ni Asc.",
    Nd = "Ni Desc.",
    Hi = "Hi Asc. %",
    Hd = "Hi Desc. %"
  )
Tabla 1
Distribución de frecuencias — Emisiones CH4 (ton) por estado
Desde (ton) Hasta (ton) Marca Clase fi fri (%) Ni Asc. Ni Desc. Hi Asc. % Hi Desc. %
6055498 644285560 325170529 326 31.41 326 1038 31.41 100.00
644285560 1282515622 963400591 25 2.41 351 712 33.82 68.59
1282515622 1920745684 1601630653 0 0.00 351 687 33.82 66.18
1920745684 2558975746 2239860715 44 4.24 395 687 38.05 66.18
2558975746 3197205808 2878090777 154 14.84 549 643 52.89 61.95
3197205808 3835435870 3516320839 47 4.53 596 489 57.42 47.11
3835435870 4473665932 4154550901 0 0.00 596 442 57.42 42.58
4473665932 5111895994 4792780963 31 2.99 627 442 60.40 42.58
5111895994 5750126056 5431011025 0 0.00 627 411 60.40 39.60
5750126056 6388356118 6069241087 0 0.00 627 411 60.40 39.60
6388356118 7026586180 6707471149 0 0.00 627 411 60.40 39.60
7026586180 7664816243 7345701212 411 39.60 1038 411 100.00 39.60

7 Histograma de Frecuencia Absoluta Global

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

hist(
  EMIS_CH4,
  breaks = breaks,
  col = "#70AD47",
  border = "white",
  xaxt = "n",
  main = "Gráfica 1: Frecuencia Absoluta Global",
  xlab = "Emisiones CH4 (toneladas)",
  ylab = "Frecuencia absoluta"
)

axis(
  1,
  at = pretty(range(EMIS_CH4), n = 6),
  labels = format(
    pretty(range(EMIS_CH4), n = 6),
    scientific = FALSE,
    big.mark = ","
  ),
  cex.axis = 0.8
)

8 Histograma del Rango Principal (P95)

p95 <- quantile(EMIS_CH4, 0.95)

CH4_z <- EMIS_CH4[EMIS_CH4 <= p95]

k_z <- ceiling(1 + 3.322 * log10(length(CH4_z)))

br_z <- seq(
  min(CH4_z),
  max(CH4_z),
  length.out = k_z + 1
)

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

hist(
  CH4_z,
  breaks = br_z,
  col = "#70AD47",
  border = "white",
  xaxt = "n",
  main = paste0(
    "Gráfica 2: Rango Principal (P95 = ",
    round(p95/1e6,1),
    " millones ton)"
  ),
  xlab = "Emisiones CH4 (toneladas)",
  ylab = "Frecuencia absoluta"
)

axis(
  1,
  at = pretty(range(CH4_z), n = 6),
  labels = format(
    pretty(range(CH4_z), n = 6),
    scientific = FALSE,
    big.mark = ","
  ),
  cex.axis = 0.8
)

9 Histograma de Frecuencia Relativa Local

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

hist(
  CH4_z,
  breaks = br_z,
  col = "#70AD47",
  border = "white",
  freq = FALSE,
  xaxt = "n",
  main = "Gráfica 3: Frecuencia Relativa Local",
  xlab = "Emisiones CH4 (toneladas)",
  ylab = "Densidad"
)

axis(
  1,
  at = pretty(range(CH4_z), n = 6),
  labels = format(
    pretty(range(CH4_z), n = 6),
    scientific = FALSE,
    big.mark = ","
  ),
  cex.axis = 0.8
)

10 Histograma de Frecuencia Relativa Global

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

hist(
  EMIS_CH4,
  breaks = breaks,
  col = "#70AD47",
  border = "white",
  freq = FALSE,
  xaxt = "n",
  main = "Gráfica 4: Frecuencia Relativa Global",
  xlab = "Emisiones CH4 (toneladas)",
  ylab = "Densidad"
)

axis(
  1,
  at = pretty(range(EMIS_CH4), n = 6),
  labels = format(
    pretty(range(EMIS_CH4), n = 6),
    scientific = FALSE,
    big.mark = ","
  ),
  cex.axis = 0.8
)

11 Ojivas Combinadas

ojiva <- data.frame(
  mc = mc,
  Ni = Ni,
  Nd = Nd
)

plot(
  ojiva$mc,
  ojiva$Ni,
  type = "b",
  col = "black",
  pch = 16,
  lwd = 1.5,
  main = "Gráfica 5: Ojivas Combinadas",
  xlab = "Emisiones CH4 (toneladas)",
  ylab = "Frecuencia acumulada"
)

lines(
  ojiva$mc,
  ojiva$Nd,
  type = "b",
  col = "#70AD47",
  pch = 16,
  lwd = 1.5
)

legend(
  "right",
  legend = c("Ascendente", "Descendente"),
  col = c("black", "#70AD47"),
  lwd = 2,
  pch = 16,
  bty = "n"
)

12 Diagrama de Caja

boxplot(
  EMIS_CH4,
  horizontal = TRUE,
  col = "#C5E0A8",
  border = "#375623",
  main = "Gráfica 6: Diagrama de Caja",
  xlab = "Emisiones CH4 (toneladas)"
)

13 Indicadores Estadísticos

media   <- mean(EMIS_CH4)
mediana <- median(EMIS_CH4)
desv    <- sd(EMIS_CH4)

cv   <- desv / media * 100
asim <- skewness(EMIS_CH4)
kurt <- kurtosis(EMIS_CH4)

ic_inf <- media - qt(0.975, n-1) * desv / sqrt(n)
ic_sup <- media + qt(0.975, n-1) * desv / sqrt(n)

data.frame(
  Indicador = c(
    "Media (IC 95%)",
    "Mediana",
    "Desv. S",
    "CV (%)",
    "Asimetría",
    "Curtosis"
  ),
  Resultado = c(
    paste0(round(media,0),
           " [",
           round(ic_inf,0),
           " - ",
           round(ic_sup,0),
           "]"),
    round(mediana,0),
    round(desv,0),
    round(cv,2),
    round(asim,4),
    round(kurt,4)
  )
) %>%
  gt() %>%
  tab_header(
    title = md("**Tabla 2**"),
    subtitle = md("Indicadores estadísticos — EMIS_CH4")
  )
Tabla 2
Indicadores estadísticos — EMIS_CH4
Indicador Resultado
Media (IC 95%) 3979431764 [3785495762 - 4173367765]
Mediana 3003562806
Desv. S 3184210998
CV (%) 80.02
Asimetría 0.0997
Curtosis -1.7055

14 Valores Atípicos

q1 <- quantile(EMIS_CH4, 0.25)
q3 <- quantile(EMIS_CH4, 0.75)

outs <- EMIS_CH4[
  EMIS_CH4 < q1 - 1.5*(q3-q1) |
  EMIS_CH4 > q3 + 1.5*(q3-q1)
]

cat("Número de valores atípicos:", length(outs), "\n")
## Número de valores atípicos: 0
if(length(outs) > 0){
  cat("Mínimo outlier:", round(min(outs),0), "\n")
  cat("Máximo outlier:", round(max(outs),0), "\n")
}

15 Conclusión

cat(sprintf("
La variable EMIS_CH4 registra las emisiones totales de metano por estado para el año 2018.

Los valores oscilan entre %.0f y %.0f toneladas, con una media de %.0f toneladas y una mediana de %.0f toneladas.

La asimetría positiva (As = %.4f) indica que la mayoría de los estados presentan emisiones relativamente bajas, mientras que unos pocos estados muestran emisiones extremadamente elevadas.

El coeficiente de variación de %.2f%% evidencia una alta heterogeneidad entre estados.

Se identificaron %d valores atípicos, asociados principalmente a estados con intensa actividad minera.
",
min(EMIS_CH4),
max(EMIS_CH4),
media,
mediana,
asim,
cv,
length(outs)
))
## 
## La variable EMIS_CH4 registra las emisiones totales de metano por estado para el año 2018.
## 
## Los valores oscilan entre 6055498 y 7664816242 toneladas, con una media de 3979431764 toneladas y una mediana de 3003562806 toneladas.
## 
## La asimetría positiva (As = 0.0997) indica que la mayoría de los estados presentan emisiones relativamente bajas, mientras que unos pocos estados muestran emisiones extremadamente elevadas.
## 
## El coeficiente de variación de 80.02% evidencia una alta heterogeneidad entre estados.
## 
## Se identificaron 0 valores atípicos, asociados principalmente a estados con intensa actividad minera.