Variable Original: CH4 total emissions (tons) by state

Nombre Variable: EMIS_CH4

Tipo: Cuantitativa Continua

Escala: Razón

Justificación de la variable: Las emisiones de CH4 están registradas a nivel estatal para el año 2018, asociadas a la variable STATE. El metano es especialmente relevante en minería de carbón subterránea y es uno de los gases de efecto invernadero con mayor potencial de calentamiento global.


1 Carga de Datos y Librerías

library(dplyr)
library(gt)
library(e1071)

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

2 Extraer y Limpiar la Variable

NOTA: CH4 requiere corrección DOBLE (punto = separador de miles, coma = decimal), igual que NOx.

EMIS_CH4 <- as.numeric(gsub(",", ".", gsub("\\.", "", datos$CH4.total.emissions..tons..by.state)))
## Warning: NAs introducidos por coerción
EMIS_CH4 <- EMIS_CH4[!is.na(EMIS_CH4)]
n <- length(EMIS_CH4)

cat("n validos :", n, "\n")
## n validos : 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

3 Tabla de Distribución de Parámetros por Sturges

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

parametros_sturges <- data.frame(
  Parametro = c("Rango (R)", "Número de datos (n)",
                "Número de intervalos (k)", "Amplitud de clase (A)"),
  Valor = c(round(rango, 0), n, k, am)
)

parametros_sturges %>%
  gt() %>%
  tab_header(title = md("**Tabla 1**"),
             subtitle = "Parámetros de Sturges para EMIS_CH4") %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 1
Parámetros de Sturges para EMIS_CH4
Parametro Valor
Rango (R) 7658760744
Número de datos (n) 1038
Número de intervalos (k) 12
Amplitud de clase (A) 638230062
Autor: Grupo 4 - Minas
breaks <- seq(min(EMIS_CH4), max(EMIS_CH4) + 1e-6, length.out = k + 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
)

TDF %>%
  gt() %>%
  tab_header(
    title    = md("**Tabla 2**"),
    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. %"
  ) %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 2
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 7664816242 7345701211 411 39.60 1038 411 100.00 39.60
Autor: Grupo 4 - Minas

4 Gráficas de Distribución de Cantidad

par(mar = c(5, 5, 4, 2))
hist(EMIS_CH4, breaks = breaks, col = "#70AD47", border = "white",
     main = "Gráfica 1: Frecuencia Absoluta Global — EMIS_CH4",
     xlab = "Emisiones CH4 (toneladas)", ylab = "Frecuencia absoluta")

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) + 1e-6, length.out = k_z + 1)

par(mar = c(5, 5, 4, 2))
hist(CH4_z, breaks = br_z, col = "#70AD47", border = "white",
     main = paste0("Gráfica 2: Rango Principal — EMIS_CH4 (hasta P95=",
                   round(p95/1e6,1), "M ton)"),
     xlab = "Emisiones CH4 (toneladas)", ylab = "Frecuencia absoluta")

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

par(mar = c(5, 5, 4, 2))
hist(EMIS_CH4, breaks = breaks, col = "#70AD47", border = "white",
     freq = FALSE,
     main = "Gráfica 4: Frecuencia Relativa Global — EMIS_CH4",
     xlab = "Emisiones CH4 (toneladas)", ylab = "Densidad")

h <- hist(EMIS_CH4, breaks = breaks, col = "#70AD47", border = "white",
          main = "Gráfica 5: Histograma con Polígono de Frecuencias — EMIS_CH4",
          xlab = "Emisiones CH4 (toneladas)", ylab = "Frecuencia absoluta")
lines(h$mids, h$counts, type = "o", pch = 16, col = "darkgreen", lwd = 1.5)

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 6: Ojivas Combinadas — EMIS_CH4",
     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")

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

hist(EMIS_CH4, breaks = breaks, col = "lightgray", border = "white",
     main = "Gráfica 8: Histograma con Diagrama de Caja Superpuesto — EMIS_CH4",
     xlab = "Emisiones CH4 (toneladas)", ylab = "Frecuencia absoluta")
boxplot(EMIS_CH4, horizontal = TRUE, add = TRUE,
        at = par("usr")[4] * 0.08, boxwex = par("usr")[4] * 0.06,
        col = rgb(0.2, 0.5, 0.2, 0.3), border = "#375623", xaxt = "n", yaxt = "n")

5 Indicadores Estadísticos y Outliers

minimo  <- min(EMIS_CH4)
maximo  <- max(EMIS_CH4)
media   <- mean(EMIS_CH4)
mediana <- median(EMIS_CH4)
moda    <- as.numeric(names(sort(table(EMIS_CH4), decreasing = TRUE))[1])
rango2  <- maximo - minimo

varianza <- var(EMIS_CH4)
desv     <- sd(EMIS_CH4)
cv       <- desv / media * 100
if (cv < 15) {
  interpretacion_cv <- "BAJA (CV < 15%)"
} else if (cv < 30) {
  interpretacion_cv <- "MODERADA (15% <= CV < 30%)"
} else {
  interpretacion_cv <- "ALTA (CV >= 30%)"
}

q1  <- quantile(EMIS_CH4, 0.25)
q2  <- quantile(EMIS_CH4, 0.50)
q3  <- quantile(EMIS_CH4, 0.75)
iqr_val <- q3 - q1
lim_inf <- q1 - 1.5 * iqr_val
lim_sup <- q3 + 1.5 * iqr_val
outliers <- EMIS_CH4[EMIS_CH4 < lim_inf | EMIS_CH4 > lim_sup]
n_outliers <- length(outliers)
porc_outliers <- round(n_outliers / n * 100, 2)

asimetria <- skewness(EMIS_CH4)
if (abs(asimetria) < 0.5) {
  interpretacion_asimetria <- "Distribución simétrica"
} else if (asimetria > 0) {
  interpretacion_asimetria <- "Asimetría positiva (sesgo a la derecha)"
} else {
  interpretacion_asimetria <- "Asimetría negativa (sesgo a la izquierda)"
}

curtosis <- kurtosis(EMIS_CH4, type = 2)  # excedente (normal = 0)
if (abs(curtosis) < 0.5) {
  interpretacion_curtosis <- "Distribución mesocúrtica (normal)"
} else if (curtosis > 0) {
  interpretacion_curtosis <- "Distribución leptocúrtica (picuda)"
} else {
  interpretacion_curtosis <- "Distribución platicúrtica (aplanada)"
}

Tabla 3: Tendencia Central

data.frame(
  Indicador = c("Mínimo","Media","Mediana","Moda","Máximo","Rango"),
  Valor = round(c(minimo, media, mediana, moda, maximo, rango2), 0),
  Unidad = rep("toneladas", 6)
) %>%
  gt() %>%
  tab_header(title = md("**Tabla 3**"),
             subtitle = "Indicadores de Tendencia Central — EMIS_CH4") %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 3
Indicadores de Tendencia Central — EMIS_CH4
Indicador Valor Unidad
Mínimo 6055498 toneladas
Media 3979431764 toneladas
Mediana 3003562806 toneladas
Moda 7664816242 toneladas
Máximo 7664816242 toneladas
Rango 7658760744 toneladas
Autor: Grupo 4 - Minas

Tabla 4: Dispersión

data.frame(
  Indicador = c("Varianza","Desviación Estándar","Coeficiente de Variación"),
  Valor = c(round(varianza,0), round(desv,0), paste0(round(cv,2),"%")),
  Interpretacion = c("Medida de dispersión al cuadrado",
                      "Dispersión promedio respecto a la media",
                      paste("Dispersión relativa:", interpretacion_cv))
) %>%
  gt() %>%
  tab_header(title = md("**Tabla 4**"),
             subtitle = "Indicadores de Dispersión — EMIS_CH4") %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 4
Indicadores de Dispersión — EMIS_CH4
Indicador Valor Interpretacion
Varianza 10139199679285354496 Medida de dispersión al cuadrado
Desviación Estándar 3184210998 Dispersión promedio respecto a la media
Coeficiente de Variación 80.02% Dispersión relativa: ALTA (CV >= 30%)
Autor: Grupo 4 - Minas

Tabla 5: Posición y Outliers

data.frame(
  Indicador = c("Cuartil 1 (Q1)","Cuartil 2 (Q2-Mediana)","Cuartil 3 (Q3)",
                "Rango Intercuartílico (IQR)","Límite Inferior Outliers",
                "Límite Superior Outliers","Número de Outliers"),
  Valor = c(round(q1,0), round(q2,0), round(q3,0), round(iqr_val,0),
            round(lim_inf,0), round(lim_sup,0),
            paste0(n_outliers, " (", porc_outliers, "%)"))
) %>%
  gt() %>%
  tab_header(title = md("**Tabla 5**"),
             subtitle = "Indicadores de Posición y Outliers — EMIS_CH4") %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 5
Indicadores de Posición y Outliers — EMIS_CH4
Indicador Valor
Cuartil 1 (Q1) 518314257
Cuartil 2 (Q2-Mediana) 3003562806
Cuartil 3 (Q3) 7664816242
Rango Intercuartílico (IQR) 7146501985
Límite Inferior Outliers -10201438720
Límite Superior Outliers 18384569220
Número de Outliers 0 (0%)
Autor: Grupo 4 - Minas

Tabla 6: Forma de la Distribución

data.frame(
  Indicador = c("Coeficiente de Asimetría (Fisher)","Interpretación Asimetría",
                "Coeficiente de Curtosis (Excedente)","Interpretación Curtosis"),
  Valor = c(round(asimetria,4), interpretacion_asimetria,
            round(curtosis,4), interpretacion_curtosis)
) %>%
  gt() %>%
  tab_header(title = md("**Tabla 6**"),
             subtitle = "Indicadores de Forma — EMIS_CH4") %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 6
Indicadores de Forma — EMIS_CH4
Indicador Valor
Coeficiente de Asimetría (Fisher) 0.0997
Interpretación Asimetría Distribución simétrica
Coeficiente de Curtosis (Excedente) -1.7055
Interpretación Curtosis Distribución platicúrtica (aplanada)
Autor: Grupo 4 - Minas

Tabla 7: Resumen Completo

data.frame(
  Categoria = c("Tendencia Central","Tendencia Central","Tendencia Central",
                "Tendencia Central","Tendencia Central","Tendencia Central",
                "Dispersión","Dispersión","Dispersión",
                "Posición","Posición","Posición","Posición",
                "Forma","Forma","Forma","Forma"),
  Indicador = c("Mínimo","Media","Mediana","Moda","Máximo","Rango",
                "Varianza","Desviación Estándar","Coeficiente de Variación",
                "Cuartil 1 (Q1)","Cuartil 2 (Q2)","Cuartil 3 (Q3)","Rango Intercuartílico",
                "Asimetría (g1)","Interpretación Asimetría",
                "Curtosis (g2)","Interpretación Curtosis"),
  Valor = c(round(minimo,0), round(media,0), round(mediana,0), round(moda,0),
            round(maximo,0), round(rango2,0),
            round(varianza,0), round(desv,0), paste0(round(cv,2),"%"),
            round(q1,0), round(q2,0), round(q3,0), round(iqr_val,0),
            round(asimetria,4), interpretacion_asimetria,
            round(curtosis,4), interpretacion_curtosis)
) %>%
  gt() %>%
  tab_header(title = md("**Tabla 7**"),
             subtitle = "Resumen Completo de Indicadores — EMIS_CH4") %>%
  tab_source_note(md("Autor: Grupo 4 - Minas"))
Tabla 7
Resumen Completo de Indicadores — EMIS_CH4
Categoria Indicador Valor
Tendencia Central Mínimo 6055498
Tendencia Central Media 3979431764
Tendencia Central Mediana 3003562806
Tendencia Central Moda 7664816242
Tendencia Central Máximo 7664816242
Tendencia Central Rango 7658760744
Dispersión Varianza 10139199679285354496
Dispersión Desviación Estándar 3184210998
Dispersión Coeficiente de Variación 80.02%
Posición Cuartil 1 (Q1) 518314257
Posición Cuartil 2 (Q2) 3003562806
Posición Cuartil 3 (Q3) 7664816242
Posición Rango Intercuartílico 7146501985
Forma Asimetría (g1) 0.0997
Forma Interpretación Asimetría Distribución simétrica
Forma Curtosis (g2) -1.7055
Forma Interpretación Curtosis Distribución platicúrtica (aplanada)
Autor: Grupo 4 - Minas
cat("Numero de valores atipicos:", n_outliers, "\n")
## Numero de valores atipicos: 0
if (n_outliers > 0) {
  cat("Minimo outlier:", round(min(outliers), 0), "ton\n")
  cat("Maximo outlier:", round(max(outliers), 0), "ton\n")
}

6 Conclusión

conclusion <- sprintf(
"La variable EMIS_CH4 registra las emisiones totales de metano en toneladas por estado administrativo (STATE) para 2018. Cada instalación minera hereda el valor del estado al que pertenece administrativamente. Los valores oscilan entre %.0f y %.0f toneladas, con media de %.0f ton y mediana de %.0f ton. La asimetría (%s, As=%.4f) indica que la mayoría de los estados registran emisiones bajas de CH4, mientras que los estados con mayor actividad minera de carbón subterránea presentan valores extremadamente altos. El CV de %.2f%% (%s) refleja una alta heterogeneidad entre estados. Se identificaron %d valores atípicos (%.2f%% del total) que corresponden principalmente a estados con alta densidad de minas de carbón subterráneas, reforzando la hipótesis de correlación entre tipo de actividad minera y emisiones de CH4 del proyecto.",
min(EMIS_CH4), max(EMIS_CH4), media, mediana, interpretacion_asimetria, asimetria, cv, interpretacion_cv, n_outliers, porc_outliers
)
print(conclusion)
## [1] "La variable EMIS_CH4 registra las emisiones totales de metano en toneladas por estado administrativo (STATE) para 2018. Cada instalación minera hereda el valor del estado al que pertenece administrativamente. Los valores oscilan entre 6055498 y 7664816242 toneladas, con media de 3979431764 ton y mediana de 3003562806 ton. La asimetría (Distribución simétrica, As=0.0997) indica que la mayoría de los estados registran emisiones bajas de CH4, mientras que los estados con mayor actividad minera de carbón subterránea presentan valores extremadamente altos. El CV de 80.02% (ALTA (CV >= 30%)) refleja una alta heterogeneidad entre estados. Se identificaron 0 valores atípicos (0.00% del total) que corresponden principalmente a estados con alta densidad de minas de carbón subterráneas, reforzando la hipótesis de correlación entre tipo de actividad minera y emisiones de CH4 del proyecto."