Variable Original:
CO2 total emissions (tons) by state
Nombre Variable: EMIS_CO2
Tipo: Cuantitativa Continua
Escala: Razón
Justificación de la variable: Las emisiones de CO2 están registradas a nivel estatal para el año 2018, asociadas a la variable STATE. Cada instalación minera hereda el valor de emisión del estado administrativo al que pertenece, lo que permite evaluar la correlación entre actividad minera y emisiones de CO2.
library(dplyr)
library(gt)
library(e1071)
datos <- read.csv("~/Estudio/TERCER SEMESTRE/Estadistica/Dataset.csv",
sep = ";", stringsAsFactors = FALSE)
EMIS_CO2 <- as.numeric(gsub(",", ".", datos$CO2.total.emissions..tons..by.state))
## Warning: NAs introducidos por coerción
EMIS_CO2 <- EMIS_CO2[!is.na(EMIS_CO2)]
n <- length(EMIS_CO2)
cat("n validos :", n, "\n")
## n validos : 2921
cat("Min :", round(min(EMIS_CO2), 2), "ton\n")
## Min : 49075.86 ton
cat("Max :", round(max(EMIS_CO2), 2), "ton\n")
## Max : 233425577 ton
k <- ceiling(1 + 3.322 * log10(n))
am <- round((max(EMIS_CO2) - min(EMIS_CO2)) / k, 2)
rango <- max(EMIS_CO2) - min(EMIS_CO2)
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, 2), n, k, am)
)
parametros_sturges %>%
gt() %>%
tab_header(title = md("**Tabla 1**"),
subtitle = "Parámetros de Sturges para EMIS_CO2") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 1 | |
| Parámetros de Sturges para EMIS_CO2 | |
| Parametro | Valor |
|---|---|
| Rango (R) | 233376501 |
| Número de datos (n) | 2921 |
| Número de intervalos (k) | 13 |
| Amplitud de clase (A) | 17952039 |
| Autor: Grupo 4 - Minas | |
breaks <- seq(min(EMIS_CO2), min(EMIS_CO2) + k * am, length.out = k + 1)
breaks[length(breaks)] <- max(EMIS_CO2) + 0.001
cortes <- cut(EMIS_CO2, 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, 2)
TDF <- data.frame(
Desde = round(breaks[-length(breaks)], 2),
Hasta = round(breaks[-1], 2),
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 CO2 (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 CO2 (ton) por estado | ||||||||
| Desde (ton) | Hasta (ton) | Marca Clase | fi | fri (%) | Ni Asc. | Ni Desc. | Hi Asc. % | Hi Desc. % |
|---|---|---|---|---|---|---|---|---|
| 49075.86 | 18001114 | 9025095 | 174 | 5.96 | 174 | 2921 | 5.96 | 100.00 |
| 18001114.42 | 35953153 | 26977134 | 468 | 16.02 | 642 | 2747 | 21.98 | 94.04 |
| 35953152.98 | 53905192 | 44929172 | 335 | 11.47 | 977 | 2279 | 33.45 | 78.02 |
| 53905191.54 | 71857230 | 62881211 | 1210 | 41.42 | 2187 | 1944 | 74.87 | 66.55 |
| 71857230.10 | 89809269 | 80833249 | 533 | 18.25 | 2720 | 734 | 93.12 | 25.13 |
| 89809268.66 | 107761307 | 98785288 | 62 | 2.12 | 2782 | 201 | 95.24 | 6.88 |
| 107761307.22 | 125713346 | 116737327 | 23 | 0.79 | 2805 | 139 | 96.03 | 4.76 |
| 125713345.78 | 143665384 | 134689365 | 0 | 0.00 | 2805 | 116 | 96.03 | 3.97 |
| 143665384.34 | 161617423 | 152641404 | 0 | 0.00 | 2805 | 116 | 96.03 | 3.97 |
| 161617422.90 | 179569461 | 170593442 | 0 | 0.00 | 2805 | 116 | 96.03 | 3.97 |
| 179569461.46 | 197521500 | 188545481 | 0 | 0.00 | 2805 | 116 | 96.03 | 3.97 |
| 197521500.02 | 215473539 | 206497519 | 0 | 0.00 | 2805 | 116 | 96.03 | 3.97 |
| 215473538.58 | 233425577 | 224449558 | 116 | 3.97 | 2921 | 116 | 100.00 | 3.97 |
| Autor: Grupo 4 - Minas | ||||||||
par(mar = c(5, 5, 4, 2))
hist(EMIS_CO2, breaks = breaks, col = "#2E75B6", border = "white",
main = "Gráfica 1: Frecuencia Absoluta Global — EMIS_CO2",
xlab = "Emisiones CO2 (toneladas)", ylab = "Frecuencia absoluta")
p95 <- quantile(EMIS_CO2, 0.95)
CO2_z <- EMIS_CO2[EMIS_CO2 <= p95]
k_z <- ceiling(1 + 3.322 * log10(length(CO2_z)))
br_z <- seq(min(CO2_z), max(CO2_z), length.out = k_z + 1)
par(mar = c(5, 5, 4, 2))
hist(CO2_z, breaks = br_z, col = "#2E75B6", border = "white",
main = paste0("Gráfica 2: Rango Principal — EMIS_CO2 (hasta P95=",
round(p95/1e6,1), "M ton)"),
xlab = "Emisiones CO2 (toneladas)", ylab = "Frecuencia absoluta")
hist(CO2_z, breaks = br_z, col = "#2E75B6", border = "white",
freq = FALSE,
main = "Gráfica 3: Frecuencia Relativa Local — EMIS_CO2",
xlab = "Emisiones CO2 (toneladas)", ylab = "Densidad")
par(mar = c(5, 5, 4, 2))
hist(EMIS_CO2, breaks = breaks, col = "#2E75B6", border = "white",
freq = FALSE,
main = "Gráfica 4: Frecuencia Relativa Global — EMIS_CO2",
xlab = "Emisiones CO2 (toneladas)", ylab = "Densidad")
h <- hist(EMIS_CO2, breaks = breaks, col = "#2E75B6", border = "white",
main = "Gráfica 5: Histograma con Polígono de Frecuencias — EMIS_CO2",
xlab = "Emisiones CO2 (toneladas)", ylab = "Frecuencia absoluta")
lines(h$mids, h$counts, type = "o", pch = 16, col = "darkred", 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_CO2",
xlab = "Emisiones CO2 (toneladas)", ylab = "Frecuencia acumulada")
lines(ojiva$mc, ojiva$Nd, type = "b", col = "#2E75B6", pch = 16, lwd = 1.5)
legend("right", legend = c("Ascendente","Descendente"),
col = c("black","#2E75B6"), lwd = 2, pch = 16, bty = "n")
boxplot(EMIS_CO2, horizontal = TRUE, col = "#AEC6E8", border = "#1F4E79",
main = "Gráfica 7: Diagrama de Caja — EMIS_CO2",
xlab = "Emisiones CO2 (toneladas)")
hist(EMIS_CO2, breaks = breaks, col = "lightgray", border = "white",
main = "Gráfica 8: Histograma con Diagrama de Caja Superpuesto — EMIS_CO2",
xlab = "Emisiones CO2 (toneladas)", ylab = "Frecuencia absoluta")
boxplot(EMIS_CO2, horizontal = TRUE, add = TRUE,
at = par("usr")[4] * 0.08, boxwex = par("usr")[4] * 0.06,
col = rgb(0.2, 0.2, 1, 0.3), border = "blue", xaxt = "n", yaxt = "n")
minimo <- min(EMIS_CO2)
maximo <- max(EMIS_CO2)
media <- mean(EMIS_CO2)
mediana <- median(EMIS_CO2)
moda <- as.numeric(names(sort(table(EMIS_CO2), decreasing = TRUE))[1])
rango2 <- maximo - minimo
varianza <- var(EMIS_CO2)
desv <- sd(EMIS_CO2)
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_CO2, 0.25)
q2 <- quantile(EMIS_CO2, 0.50)
q3 <- quantile(EMIS_CO2, 0.75)
iqr_val <- q3 - q1
lim_inf <- q1 - 1.5 * iqr_val
lim_sup <- q3 + 1.5 * iqr_val
outliers <- EMIS_CO2[EMIS_CO2 < lim_inf | EMIS_CO2 > lim_sup]
n_outliers <- length(outliers)
porc_outliers <- round(n_outliers / n * 100, 2)
asimetria <- skewness(EMIS_CO2)
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_CO2, 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), 2),
Unidad = rep("toneladas", 6)
) %>%
gt() %>%
tab_header(title = md("**Tabla 3**"),
subtitle = "Indicadores de Tendencia Central — EMIS_CO2") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 3 | ||
| Indicadores de Tendencia Central — EMIS_CO2 | ||
| Indicador | Valor | Unidad |
|---|---|---|
| Mínimo | 49075.86 | toneladas |
| Media | 65592226.50 | toneladas |
| Mediana | 65429380.98 | toneladas |
| Moda | 71797634.97 | toneladas |
| Máximo | 233425577.10 | toneladas |
| Rango | 233376501.24 | 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,2), round(desv,2), 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_CO2") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 4 | ||
| Indicadores de Dispersión — EMIS_CO2 | ||
| Indicador | Valor | Interpretacion |
|---|---|---|
| Varianza | 1687135846230875 | Medida de dispersión al cuadrado |
| Desviación Estándar | 41074759.24 | Dispersión promedio respecto a la media |
| Coeficiente de Variación | 62.62% | 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,2), round(q2,2), round(q3,2), round(iqr_val,2),
round(lim_inf,2), round(lim_sup,2),
paste0(n_outliers, " (", porc_outliers, "%)"))
) %>%
gt() %>%
tab_header(title = md("**Tabla 5**"),
subtitle = "Indicadores de Posición y Outliers — EMIS_CO2") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 5 | |
| Indicadores de Posición y Outliers — EMIS_CO2 | |
| Indicador | Valor |
|---|---|
| Cuartil 1 (Q1) | 38354703.57 |
| Cuartil 2 (Q2-Mediana) | 65429380.98 |
| Cuartil 3 (Q3) | 76406066.27 |
| Rango Intercuartílico (IQR) | 38051362.7 |
| Límite Inferior Outliers | -18722340.48 |
| Límite Superior Outliers | 133483110.32 |
| Número de Outliers | 116 (3.97%) |
| 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_CO2") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 6 | |
| Indicadores de Forma — EMIS_CO2 | |
| Indicador | Valor |
|---|---|
| Coeficiente de Asimetría (Fisher) | 2.4657 |
| Interpretación Asimetría | Asimetría positiva (sesgo a la derecha) |
| Coeficiente de Curtosis (Excedente) | 8.4536 |
| Interpretación Curtosis | Distribución leptocúrtica (picuda) |
| 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,2), round(media,2), round(mediana,2), round(moda,2),
round(maximo,2), round(rango2,2),
round(varianza,2), round(desv,2), paste0(round(cv,2),"%"),
round(q1,2), round(q2,2), round(q3,2), round(iqr_val,2),
round(asimetria,4), interpretacion_asimetria,
round(curtosis,4), interpretacion_curtosis)
) %>%
gt() %>%
tab_header(title = md("**Tabla 7**"),
subtitle = "Resumen Completo de Indicadores — EMIS_CO2") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 7 | ||
| Resumen Completo de Indicadores — EMIS_CO2 | ||
| Categoria | Indicador | Valor |
|---|---|---|
| Tendencia Central | Mínimo | 49075.86 |
| Tendencia Central | Media | 65592226.5 |
| Tendencia Central | Mediana | 65429380.98 |
| Tendencia Central | Moda | 71797634.97 |
| Tendencia Central | Máximo | 233425577.1 |
| Tendencia Central | Rango | 233376501.24 |
| Dispersión | Varianza | 1687135846230875 |
| Dispersión | Desviación Estándar | 41074759.24 |
| Dispersión | Coeficiente de Variación | 62.62% |
| Posición | Cuartil 1 (Q1) | 38354703.57 |
| Posición | Cuartil 2 (Q2) | 65429380.98 |
| Posición | Cuartil 3 (Q3) | 76406066.27 |
| Posición | Rango Intercuartílico | 38051362.7 |
| Forma | Asimetría (g1) | 2.4657 |
| Forma | Interpretación Asimetría | Asimetría positiva (sesgo a la derecha) |
| Forma | Curtosis (g2) | 8.4536 |
| Forma | Interpretación Curtosis | Distribución leptocúrtica (picuda) |
| Autor: Grupo 4 - Minas | ||
cat("Numero de valores atipicos:", n_outliers, "\n")
## Numero de valores atipicos: 116
if (n_outliers > 0) {
cat("Minimo outlier:", round(min(outliers), 2), "ton\n")
cat("Maximo outlier:", round(max(outliers), 2), "ton\n")
}
## Minimo outlier: 233425577 ton
## Maximo outlier: 233425577 ton
conclusion <- sprintf(
"La variable EMIS_CO2 registra las emisiones totales de CO2 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 %.2f y %.2f toneladas, con media de %.2f ton y mediana de %.2f ton. La asimetría (%s, As=%.4f) indica que la mayoría de los estados registran emisiones bajas mientras pocos estados concentran valores muy altos. El CV de %.2f%% (%s) confirma heterogeneidad entre estados. Se identificaron %d valores atípicos (%.2f%% del total), correspondientes a estados con alta densidad de instalaciones mineras activas, lo que respalda la hipótesis de correlación positiva entre actividad minera y emisiones de CO2 del proyecto.",
min(EMIS_CO2), max(EMIS_CO2), media, mediana, interpretacion_asimetria, asimetria,
cv, interpretacion_cv, n_outliers, porc_outliers
)
print(conclusion)
## [1] "La variable EMIS_CO2 registra las emisiones totales de CO2 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 49075.86 y 233425577.10 toneladas, con media de 65592226.50 ton y mediana de 65429380.98 ton. La asimetría (Asimetría positiva (sesgo a la derecha), As=2.4657) indica que la mayoría de los estados registran emisiones bajas mientras pocos estados concentran valores muy altos. El CV de 62.62% (ALTA (CV >= 30%)) confirma heterogeneidad entre estados. Se identificaron 116 valores atípicos (3.97% del total), correspondientes a estados con alta densidad de instalaciones mineras activas, lo que respalda la hipótesis de correlación positiva entre actividad minera y emisiones de CO2 del proyecto."