Variable Original: y
Nombre Variable: LAT
Tipo: Cuantitativa Continua
Escala: Razón
Justificación de la variable: La latitud geográfica permite identificar la distribución espacial norte-sur de las instalaciones mineras en EE.UU. Su análisis revela en qué zonas climáticas se concentra la actividad minera, complementando el análisis de correlación con las emisiones de CO2, NOx y CH4.
library(dplyr)
library(gt)
library(MASS)
library(e1071)
datos <- read.csv("~/Estudio/TERCER SEMESTRE/Estadistica/Dataset.csv",
sep = ";", stringsAsFactors = FALSE)
LAT <- as.numeric(gsub(",", ".", datos$y))
## Warning: NAs introducidos por coerción
LAT <- LAT[!is.na(LAT)]
n <- length(LAT)
cat("n validos :", n, "\n")
## n validos : 2993
cat("Min :", round(min(LAT), 3), "grados\n")
## Min : 18.375 grados
cat("Max :", round(max(LAT), 3), "grados\n")
## Max : 68.065 grados
k <- ceiling(1 + 3.322 * log10(n))
am <- round((max(LAT) - min(LAT)) / k, 1)
rango <- max(LAT) - min(LAT)
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, 3), n, k, am)
)
parametros_sturges %>%
gt() %>%
tab_header(title = md("**Tabla 1**"),
subtitle = "Parámetros de Sturges para LAT") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 1 | |
| Parámetros de Sturges para LAT | |
| Parametro | Valor |
|---|---|
| Rango (R) | 49.69 |
| Número de datos (n) | 2993.00 |
| Número de intervalos (k) | 13.00 |
| Amplitud de clase (A) | 3.80 |
| Autor: Grupo 4 - Minas | |
breaks <- seq(min(LAT), max(LAT) + 1e-6, length.out = k + 1)
cortes <- cut(LAT, 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, 3)
TDF <- data.frame(
Desde = round(breaks[-length(breaks)], 3),
Hasta = round(breaks[-1], 3),
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 — Latitud (y)")
) %>%
cols_label(
Desde = "Desde (°)", Hasta = "Hasta (°)", 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 — Latitud (y) | ||||||||
| Desde (°) | Hasta (°) | Marca Clase | fi | fri (%) | Ni Asc. | Ni Desc. | Hi Asc. % | Hi Desc. % |
|---|---|---|---|---|---|---|---|---|
| 18.375 | 22.198 | 20.286 | 5 | 0.17 | 5 | 2993 | 0.17 | 100.00 |
| 22.198 | 26.020 | 24.109 | 0 | 0.00 | 5 | 2988 | 0.17 | 99.83 |
| 26.020 | 29.842 | 27.931 | 38 | 1.27 | 43 | 2988 | 1.44 | 99.83 |
| 29.842 | 33.664 | 31.753 | 257 | 8.59 | 300 | 2950 | 10.02 | 98.56 |
| 33.664 | 37.487 | 35.576 | 1008 | 33.68 | 1308 | 2693 | 43.70 | 89.98 |
| 37.487 | 41.309 | 39.398 | 1262 | 42.17 | 2570 | 1685 | 85.87 | 56.30 |
| 41.309 | 45.131 | 43.220 | 314 | 10.49 | 2884 | 423 | 96.36 | 14.13 |
| 45.131 | 48.954 | 47.042 | 89 | 2.97 | 2973 | 109 | 99.33 | 3.64 |
| 48.954 | 52.776 | 50.865 | 0 | 0.00 | 2973 | 20 | 99.33 | 0.67 |
| 52.776 | 56.598 | 54.687 | 1 | 0.03 | 2974 | 20 | 99.37 | 0.67 |
| 56.598 | 60.421 | 58.509 | 1 | 0.03 | 2975 | 19 | 99.40 | 0.63 |
| 60.421 | 64.243 | 62.332 | 4 | 0.13 | 2979 | 18 | 99.53 | 0.60 |
| 64.243 | 68.065 | 66.154 | 14 | 0.47 | 2993 | 14 | 100.00 | 0.47 |
| Autor: Grupo 4 - Minas | ||||||||
par(mar = c(5, 5, 4, 2))
hist(LAT, breaks = breaks, col = "#FF0000", border = "white",
main = "Gráfica 1: Frecuencia Absoluta Global — Latitud (y)",
xlab = "Latitud (°)", ylab = "Frecuencia absoluta")
LAT_z <- LAT[LAT >= 30 & LAT <= 50]
if (length(LAT_z) > 1) {
k_z <- ceiling(1 + 3.322 * log10(length(LAT_z)))
br_z <- seq(min(LAT_z), max(LAT_z), length.out = k_z + 1)
par(mar = c(5, 5, 4, 2))
hist(LAT_z, breaks = br_z, col = "#FF0000", border = "white",
main = "Gráfica 2: Rango Principal — Latitud (30° a 50°)",
xlab = "Latitud (°)", ylab = "Frecuencia absoluta")
hist(LAT_z, breaks = br_z, col = "#FF0000", border = "white",
freq = FALSE,
main = "Gráfica 3: Frecuencia Relativa Local — Latitud",
xlab = "Latitud (°)", ylab = "Densidad")
}
par(mar = c(5, 5, 4, 2))
hist(LAT, breaks = breaks, col = "#FF0000", border = "white",
freq = FALSE,
main = "Gráfica 4: Frecuencia Relativa Global — Latitud (y)",
xlab = "Latitud (°)", ylab = "Densidad")
h <- hist(LAT, breaks = breaks, col = "#FF0000", border = "white",
main = "Gráfica 5: Histograma con Polígono de Frecuencias — Latitud",
xlab = "Latitud (°)", ylab = "Frecuencia absoluta")
lines(h$mids, h$counts, type = "o", pch = 16, col = "black", 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 — Latitud (y)",
xlab = "Latitud (°)", ylab = "Frecuencia acumulada")
lines(ojiva$mc, ojiva$Nd, type = "b", col = "#FF0000", pch = 16, lwd = 1.5)
legend("right", legend = c("Ascendente","Descendente"),
col = c("black","#FF0000"), lwd = 2, pch = 16, bty = "n")
boxplot(LAT, horizontal = TRUE, col = "#FFB3B3", border = "#7B0000",
main = "Gráfica 7: Diagrama de Caja — Latitud (y)",
xlab = "Latitud (°)")
hist(LAT, breaks = breaks, col = "lightgray", border = "white",
main = "Gráfica 8: Histograma con Diagrama de Caja Superpuesto — Latitud",
xlab = "Latitud (°)", ylab = "Frecuencia absoluta")
boxplot(LAT, horizontal = TRUE, add = TRUE,
at = par("usr")[4] * 0.08, boxwex = par("usr")[4] * 0.06,
col = rgb(1, 0, 0, 0.3), border = "#7B0000", xaxt = "n", yaxt = "n")
La latitud se agrupó en 3 zonas geográficas, cada una ajustada a un modelo probabilístico distinto según su comportamiento:
# Agrupacion 1: 18° a 35° — Modelo Exponencial
g1 <- LAT[LAT >= 18 & LAT < 35]
g1_pos <- g1 - 18 + 0.001
k1 <- ceiling(1 + 3.322 * log10(length(g1)))
br1 <- seq(min(g1), max(g1), length.out = k1 + 1)
lam <- 1 / mean(g1_pos)
cat("--- Agrupacion 1: 18 a 35 (Sur y Puerto Rico) ---\n")
## --- Agrupacion 1: 18 a 35 (Sur y Puerto Rico) ---
cat("n =", length(g1), "| lambda =", round(lam, 4), "\n")
## n = 461 | lambda = 0.0693
par(mar = c(5, 5, 4, 2))
hist(g1, breaks = br1, col = "#FFC7CE", border = "white", freq = FALSE,
main = "Gráfica 9: Modelo Exponencial — Latitud (18° a 35°)",
xlab = "Latitud (°)", ylab = "Densidad")
curve(dexp(x - 18 + 0.001, rate = lam), add = TRUE, col = "red", lwd = 2)
legend("topright", legend = c("Histograma","Modelo exponencial"),
fill = c("#FFC7CE", NA), lty = c(NA,1),
col = c("black","red"), lwd = c(NA,2), border = c("black",NA), bty = "n")
# Agrupacion 2: 35° a 45° — Modelo Normal
g2 <- LAT[LAT >= 35 & LAT < 45]
mu2 <- mean(g2)
sig2 <- sd(g2)
k2 <- ceiling(1 + 3.322 * log10(length(g2)))
br2 <- seq(min(g2), max(g2), length.out = k2 + 1)
cat("--- Agrupacion 2: 35 a 45 (Centro y Appalachia) ---\n")
## --- Agrupacion 2: 35 a 45 (Centro y Appalachia) ---
cat("n =", length(g2), "| mu =", round(mu2,3), "| sigma =", round(sig2,3), "\n")
## n = 2416 | mu = 38.798 | sigma = 2.191
par(mar = c(5, 5, 4, 2))
hist(g2, breaks = br2, col = "#C6EFCE", border = "white", freq = FALSE,
main = "Gráfica 10: Modelo Normal — Latitud (35° a 45°)",
xlab = "Latitud (°)", ylab = "Densidad")
curve(dnorm(x, mean = mu2, sd = sig2), add = TRUE, col = "darkgreen", lwd = 2)
legend("topright", legend = c("Histograma","Modelo normal"),
fill = c("#C6EFCE", NA), lty = c(NA,1),
col = c("black","darkgreen"), lwd = c(NA,2), border = c("black",NA), bty = "n")
# Agrupacion 3: 45° a 68° — Modelo Gamma
g3 <- LAT[LAT >= 45 & LAT <= 68]
g3_pos <- g3 - 45 + 0.001
k3 <- ceiling(1 + 3.322 * log10(length(g3)))
br3 <- seq(min(g3), max(g3), length.out = k3 + 1)
fg <- fitdistr(g3_pos, "gamma")
sh <- fg$estimate["shape"]
rt <- fg$estimate["rate"]
cat("--- Agrupacion 3: 45 a 68 (Norte y Alaska) ---\n")
## --- Agrupacion 3: 45 a 68 (Norte y Alaska) ---
cat("n =", length(g3), "| shape =", round(sh,4), "| rate =", round(rt,4), "\n")
## n = 115 | shape = 0.6979 | rate = 0.1498
par(mar = c(5, 5, 4, 2))
hist(g3, breaks = br3, col = "#DDEBF7", border = "white", freq = FALSE,
main = "Gráfica 11: Modelo Gamma — Latitud (45° a 68°)",
xlab = "Latitud (°)", ylab = "Densidad")
x_g3 <- seq(0.001, max(g3_pos), length.out = 200)
lines(x_g3 + 45, dgamma(x_g3, shape = sh, rate = rt), col = "blue", lwd = 2)
legend("topright", legend = c("Histograma","Modelo gamma"),
fill = c("#DDEBF7", NA), lty = c(NA,1),
col = c("black","blue"), lwd = c(NA,2), border = c("black",NA), bty = "n")
Tabla 3: Resumen de Modelos Probabilísticos
data.frame(
Agrupacion = c("18° a 35°","35° a 45°","45° a 68°"),
n = c(length(g1), length(g2), length(g3)),
Pct = c(round(length(g1)/n*100,1),
round(length(g2)/n*100,1),
round(length(g3)/n*100,1)),
Modelo = c("Exponencial","Normal","Gamma"),
Parametros = c(paste0("lambda=",round(lam,4)),
paste0("mu=",round(mu2,3)," | sigma=",round(sig2,3)),
paste0("shape=",round(sh,3)," | rate=",round(rt,3))),
Region = c("Sur y Puerto Rico",
"Centro y Appalachia",
"Norte y Alaska")
) %>%
gt() %>%
tab_header(
title = md("**Tabla 3**"),
subtitle = md("Resumen de modelos probabilísticos — Latitud (y)")
) %>%
cols_label(
Agrupacion="Agrupación", n="n", Pct="% total",
Modelo="Modelo", Parametros="Parámetros", Region="Región"
) %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 3 | |||||
| Resumen de modelos probabilísticos — Latitud (y) | |||||
| Agrupación | n | % total | Modelo | Parámetros | Región |
|---|---|---|---|---|---|
| 18° a 35° | 461 | 15.4 | Exponencial | lambda=0.0693 | Sur y Puerto Rico |
| 35° a 45° | 2416 | 80.7 | Normal | mu=38.798 | sigma=2.191 | Centro y Appalachia |
| 45° a 68° | 115 | 3.8 | Gamma | shape=0.698 | rate=0.15 | Norte y Alaska |
| Autor: Grupo 4 - Minas | |||||
minimo <- min(LAT)
maximo <- max(LAT)
media <- mean(LAT)
mediana <- median(LAT)
moda <- as.numeric(names(sort(table(LAT), decreasing = TRUE))[1])
rango2 <- maximo - minimo
varianza <- var(LAT)
desv <- sd(LAT)
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(LAT, 0.25)
q2 <- quantile(LAT, 0.50)
q3 <- quantile(LAT, 0.75)
iqr_val <- q3 - q1
lim_inf <- q1 - 1.5 * iqr_val
lim_sup <- q3 + 1.5 * iqr_val
outliers <- LAT[LAT < lim_inf | LAT > lim_sup]
n_outliers <- length(outliers)
porc_outliers <- round(n_outliers / n * 100, 2)
asimetria <- skewness(LAT)
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(LAT, 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 4: Tendencia Central
data.frame(
Indicador = c("Mínimo","Media","Mediana","Moda","Máximo","Rango"),
Valor = round(c(minimo, media, mediana, moda, maximo, rango2), 3),
Unidad = rep("grados", 6)
) %>%
gt() %>%
tab_header(title = md("**Tabla 4**"),
subtitle = "Indicadores de Tendencia Central — LAT") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 4 | ||
| Indicadores de Tendencia Central — LAT | ||
| Indicador | Valor | Unidad |
|---|---|---|
| Mínimo | 18.375 | grados |
| Media | 38.244 | grados |
| Mediana | 37.764 | grados |
| Moda | 37.853 | grados |
| Máximo | 68.065 | grados |
| Rango | 49.690 | grados |
| Autor: Grupo 4 - Minas | ||
Tabla 5: Dispersión
data.frame(
Indicador = c("Varianza","Desviación Estándar","Coeficiente de Variación"),
Valor = c(round(varianza,3), round(desv,3), 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 5**"),
subtitle = "Indicadores de Dispersión — LAT") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 5 | ||
| Indicadores de Dispersión — LAT | ||
| Indicador | Valor | Interpretacion |
|---|---|---|
| Varianza | 17.066 | Medida de dispersión al cuadrado |
| Desviación Estándar | 4.131 | Dispersión promedio respecto a la media |
| Coeficiente de Variación | 10.8% | Dispersión relativa: BAJA (CV < 15%) |
| Autor: Grupo 4 - Minas | ||
Tabla 6: 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,3), round(q2,3), round(q3,3), round(iqr_val,3),
round(lim_inf,3), round(lim_sup,3),
paste0(n_outliers, " (", porc_outliers, "%)"))
) %>%
gt() %>%
tab_header(title = md("**Tabla 6**"),
subtitle = "Indicadores de Posición y Outliers — LAT") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 6 | |
| Indicadores de Posición y Outliers — LAT | |
| Indicador | Valor |
|---|---|
| Cuartil 1 (Q1) | 36.79 |
| Cuartil 2 (Q2-Mediana) | 37.764 |
| Cuartil 3 (Q3) | 40.414 |
| Rango Intercuartílico (IQR) | 3.625 |
| Límite Inferior Outliers | 31.353 |
| Límite Superior Outliers | 45.851 |
| Número de Outliers | 201 (6.72%) |
| Autor: Grupo 4 - Minas | |
Tabla 7: 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 7**"),
subtitle = "Indicadores de Forma — LAT") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 7 | |
| Indicadores de Forma — LAT | |
| Indicador | Valor |
|---|---|
| Coeficiente de Asimetría (Fisher) | 1.4855 |
| Interpretación Asimetría | Asimetría positiva (sesgo a la derecha) |
| Coeficiente de Curtosis (Excedente) | 10.6051 |
| Interpretación Curtosis | Distribución leptocúrtica (picuda) |
| Autor: Grupo 4 - Minas | |
Tabla 8: 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,3), round(media,3), round(mediana,3), round(moda,3),
round(maximo,3), round(rango2,3),
round(varianza,3), round(desv,3), paste0(round(cv,2),"%"),
round(q1,3), round(q2,3), round(q3,3), round(iqr_val,3),
round(asimetria,4), interpretacion_asimetria,
round(curtosis,4), interpretacion_curtosis)
) %>%
gt() %>%
tab_header(title = md("**Tabla 8**"),
subtitle = "Resumen Completo de Indicadores — LAT") %>%
tab_source_note(md("Autor: Grupo 4 - Minas"))
| Tabla 8 | ||
| Resumen Completo de Indicadores — LAT | ||
| Categoria | Indicador | Valor |
|---|---|---|
| Tendencia Central | Mínimo | 18.375 |
| Tendencia Central | Media | 38.244 |
| Tendencia Central | Mediana | 37.764 |
| Tendencia Central | Moda | 37.853 |
| Tendencia Central | Máximo | 68.065 |
| Tendencia Central | Rango | 49.69 |
| Dispersión | Varianza | 17.066 |
| Dispersión | Desviación Estándar | 4.131 |
| Dispersión | Coeficiente de Variación | 10.8% |
| Posición | Cuartil 1 (Q1) | 36.79 |
| Posición | Cuartil 2 (Q2) | 37.764 |
| Posición | Cuartil 3 (Q3) | 40.414 |
| Posición | Rango Intercuartílico | 3.625 |
| Forma | Asimetría (g1) | 1.4855 |
| Forma | Interpretación Asimetría | Asimetría positiva (sesgo a la derecha) |
| Forma | Curtosis (g2) | 10.6051 |
| 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: 201
if (n_outliers > 0) {
cat("Minimo outlier:", round(min(outliers), 3), "grados\n")
cat("Maximo outlier:", round(max(outliers), 3), "grados\n")
}
## Minimo outlier: 18.375 grados
## Maximo outlier: 68.065 grados
conclusion <- sprintf(
"La variable LAT registra la latitud geográfica de cada instalación minera. Los valores oscilan entre %.3f° y %.3f°, con media de %.3f° y mediana de %.3f°. El análisis por agrupaciones geográficas muestra tres zonas: Sur y Puerto Rico (18° a 35°) con %.1f%% de las minas y distribución exponencial (baja densidad, datos dispersos); Centro y Appalachia (35° a 45°) con %.1f%% de las minas y distribución normal (zona de mayor concentración minera); y Norte y Alaska (45° a 68°) con %.1f%% de las minas y distribución gamma (asimétrica, pocos datos dispersos). La mayor concentración en la zona central confirma que Appalachia es el núcleo minero de EE.UU., consistente con los estados que reportan mayores emisiones de CO2, NOx y CH4 en 2018.",
min(LAT), max(LAT), media, mediana,
round(length(g1)/n*100,1),
round(length(g2)/n*100,1),
round(length(g3)/n*100,1)
)
print(conclusion)
## [1] "La variable LAT registra la latitud geográfica de cada instalación minera. Los valores oscilan entre 18.375° y 68.065°, con media de 38.244° y mediana de 37.764°. El análisis por agrupaciones geográficas muestra tres zonas: Sur y Puerto Rico (18° a 35°) con 15.4% de las minas y distribución exponencial (baja densidad, datos dispersos); Centro y Appalachia (35° a 45°) con 80.7% de las minas y distribución normal (zona de mayor concentración minera); y Norte y Alaska (45° a 68°) con 3.8% de las minas y distribución gamma (asimétrica, pocos datos dispersos). La mayor concentración en la zona central confirma que Appalachia es el núcleo minero de EE.UU., consistente con los estados que reportan mayores emisiones de CO2, NOx y CH4 en 2018."