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.
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)
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.
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
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
)
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 |
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
)
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
)
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
)
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
)
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"
)
boxplot(
EMIS_CH4,
horizontal = TRUE,
col = "#C5E0A8",
border = "#375623",
main = "Gráfica 6: Diagrama de Caja",
xlab = "Emisiones CH4 (toneladas)"
)
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 |
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")
}
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.