Variable Original: x
Nombre Variable: LON
library(dplyr)
library(gt)
library(e1071)
datos <- read.csv("~/Estudio/TERCER SEMESTRE/Estadistica/Dataset.csv",
sep = ";", stringsAsFactors = FALSE)
LON <- as.numeric(gsub(",", ".", datos$x))
## Warning: NAs introducidos por coerción
LON <- LON[!is.na(LON)]
n <- length(LON)
min_lon <- min(LON)
max_lon <- max(LON)
R <- max_lon - min_lon
# Número de intervalos mediante la Regla de Sturges
k_detallado <- ceiling(1 + 3.322 * log10(n))
# Amplitud de clase
A <- R / k_detallado
cat("Número de intervalos (k):", k_detallado, "\n")
## Número de intervalos (k): 10
# Generación de límites de intervalo
Li <- seq(from = min_lon, to = max_lon - A, by = A)
Ls <- c(seq(from = min_lon + A, to = max_lon - A, by = A), max_lon)
# Marcas de clase (MC)
MC <- round((Li + Ls) / 2, 3)
# Frecuencias absolutas (ni)
ni <- numeric(length(Li))
for (i in 1:length(Li)) {
if (i < length(Li)) {
# Intervalo abierto por la derecha: [Li, Ls)
ni[i] <- sum(LON >= Li[i] & LON < Ls[i])
} else {
# Último intervalo cerrado: [Li, Ls]
ni[i] <- sum(LON >= Li[i] & LON <= Ls[i])
}
}
# Frecuencias relativas y acumuladas
hi <- (ni / n) * 100
Ni_asc <- cumsum(ni)
Ni_desc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_desc <- rev(cumsum(rev(hi)))
# Formatear la columna Intervalo
Intervalo <- paste0("[", round(Li, 3), " - ", round(Ls, 3), ")")
Intervalo[length(Intervalo)] <- paste0("[", round(Li[length(Li)], 3), " - ",
round(Ls[length(Ls)], 3), "]")
# Vector completo de breaks (incluye el límite superior del último
# intervalo) para usar directamente en hist()
breaks_hist <- c(Li, max_lon)
TDF_lon <- data.frame(
Intervalo = Intervalo,
MC = MC,
ni = ni,
hi = round(hi, 2),
Ni_ascendente = Ni_asc,
Ni_descendente = Ni_desc,
Hi_ascendente = round(Hi_asc, 2),
Hi_descendente = round(Hi_desc, 2)
)
totales <- data.frame(
Intervalo = "Totales", MC = "-", ni = sum(ni), hi = round(sum(hi), 2),
Ni_ascendente = "-", Ni_descendente = "-",
Hi_ascendente = "-", Hi_descendente = "-"
)
TDF_lon_completa <- rbind(TDF_lon, totales)
TDF_lon_completa %>%
gt() %>%
tab_header(
title = md("Tabla Nro. 1"),
subtitle = md("Distribución de frecuencia de Longitud Geográfica (LON) para el análisis de la actividad minera y emisión de gases en Estados Unidos.")
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = Intervalo == "Totales")
) %>%
tab_source_note(source_note = md("Autor: Luis Cruz"))
| Tabla Nro. 1 | |||||||
| Distribución de frecuencia de Longitud Geográfica (LON) para el análisis de la actividad minera y emisión de gases en Estados Unidos. | |||||||
| Intervalo | MC | ni | hi | Ni_ascendente | Ni_descendente | Hi_ascendente | Hi_descendente |
|---|---|---|---|---|---|---|---|
| [-988.037 - -896.481) | -942.259 | 25 | 9.58 | 25 | 261 | 9.58 | 100 |
| [-896.481 - -804.926) | -850.704 | 149 | 57.09 | 174 | 236 | 66.67 | 90.42 |
| [-804.926 - -713.37) | -759.148 | 53 | 20.31 | 227 | 87 | 86.97 | 33.33 |
| [-713.37 - -621.815) | -667.592 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-621.815 - -530.259) | -576.037 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-530.259 - -438.703) | -484.481 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-438.703 - -347.148) | -392.926 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-347.148 - -255.592) | -301.37 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-255.592 - -164.037) | -209.814 | 1 | 0.38 | 228 | 34 | 87.36 | 13.03 |
| [-164.037 - -72.481] | -118.259 | 33 | 12.64 | 261 | 33 | 100 | 12.64 |
| Totales | - | 261 | 100.00 | - | - | - | - |
| Autor: Luis Cruz | |||||||
brks2 <- pretty(LON, n = 10)
Li2 <- brks2[-length(brks2)]
Ls2 <- brks2[-1]
MC2 <- (Li2 + Ls2) / 2
ni2 <- numeric(length(Li2))
for (i in 1:length(Li2)) {
if (i < length(Li2)) {
ni2[i] <- sum(LON >= Li2[i] & LON < Ls2[i])
} else {
ni2[i] <- sum(LON >= Li2[i] & LON <= Ls2[i])
}
}
hi2 <- (ni2 / n) * 100
Ni2_asc <- cumsum(ni2)
Ni2_desc <- rev(cumsum(rev(ni2)))
Hi2_asc <- cumsum(hi2)
Hi2_desc <- rev(cumsum(rev(hi2)))
Intervalo2 <- paste0("[", round(Li2, 1), " - ", round(Ls2, 1), ")")
Intervalo2[length(Intervalo2)] <- paste0(
"[", round(Li2[length(Li2)], 1), " - ", round(Ls2[length(Ls2)], 1), "]")
TDF_lon_10 <- data.frame(
Intervalo = Intervalo2,
MC = round(MC2, 1),
ni = ni2,
hi = round(hi2, 2),
Ni_ascendente = Ni2_asc,
Ni_descendente = Ni2_desc,
Hi_ascendente = round(Hi2_asc, 2),
Hi_descendente = round(Hi2_desc, 2)
)
totales2 <- data.frame(
Intervalo = "Totales", MC = "-", ni = sum(ni2), hi = round(sum(hi2), 2),
Ni_ascendente = "-", Ni_descendente = "-",
Hi_ascendente = "-", Hi_descendente = "-"
)
TDF_lon_10_completa <- rbind(TDF_lon_10, totales2)
TDF_lon_10_completa %>%
gt() %>%
tab_header(
title = md("Tabla Nro. 2"),
subtitle = md("Distribución de frecuencia de Longitud Geográfica (LON), intervalos reducidos.")
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = Intervalo == "Totales")
) %>%
tab_source_note(source_note = md("Autor: Luis Cruz"))
| Tabla Nro. 2 | |||||||
| Distribución de frecuencia de Longitud Geográfica (LON), intervalos reducidos. | |||||||
| Intervalo | MC | ni | hi | Ni_ascendente | Ni_descendente | Hi_ascendente | Hi_descendente |
|---|---|---|---|---|---|---|---|
| [-1000 - -900) | -950 | 24 | 9.20 | 24 | 261 | 9.2 | 100 |
| [-900 - -800) | -850 | 158 | 60.54 | 182 | 237 | 69.73 | 90.8 |
| [-800 - -700) | -750 | 45 | 17.24 | 227 | 79 | 86.97 | 30.27 |
| [-700 - -600) | -650 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-600 - -500) | -550 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-500 - -400) | -450 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-400 - -300) | -350 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-300 - -200) | -250 | 0 | 0.00 | 227 | 34 | 86.97 | 13.03 |
| [-200 - -100) | -150 | 3 | 1.15 | 230 | 34 | 88.12 | 13.03 |
| [-100 - 0] | -50 | 31 | 11.88 | 261 | 31 | 100 | 11.88 |
| Totales | - | 261 | 100.00 | - | - | - | - |
| Autor: Luis Cruz | |||||||
Histograma general
par(mar = c(5, 5, 4, 2))
hist(LON, breaks = breaks_hist,
main = "Gráfica Nro. 1\nDistribución de LON en instalaciones\nmineras de Estados Unidos",
xlab = "Longitud (°)", ylab = "Cantidad",
col = "#C00000", border = "white",
cex.main = 0.9)
Histograma con relación al todo
par(mar = c(5, 5, 4, 2))
hist(LON, breaks = breaks_hist,
main = "Gráfica Nro. 2\nDistribución de LON en instalaciones\nmineras de Estados Unidos",
xlab = "Longitud (°)", ylab = "Cantidad",
col = "#C00000", border = "white",
ylim = c(0, n),
cex.main = 0.9)
Histograma porcentual general
par(mar = c(5, 5, 4, 2))
barplot(hi2,
names.arg = round(MC2, 1),
main = "Gráfica Nro. 3\nDistribución porcentual de LON en instalaciones\nmineras de Estados Unidos",
xlab = "Longitud (°)", ylab = "Porcentaje (%)",
col = "#FF9999", border = "black",
las = 2, cex.names = 0.8,
ylim = c(0, max(hi2) + 5))
Histograma porcentual con relación al todo
par(mar = c(5, 5, 4, 2))
barplot(hi2,
names.arg = round(MC2, 1),
main = "Gráfica Nro. 4\nDistribución porcentual de LON en instalaciones\nmineras de Estados Unidos",
xlab = "Longitud (°)", ylab = "Porcentaje (%)",
col = "#FF9999", border = "black",
las = 2, cex.names = 0.8,
ylim = c(0, 100))
options(scipen = 999)
boxplot(LON,
horizontal = TRUE,
main = "Gráfica Nro. 5\nDistribución de LON en instalaciones\nmineras de Estados Unidos",
xlab = "Longitud (°)",
col = "#FFB3B3",
border = "#7B0000",
pch = 1)
par(mar = c(5, 5, 4, 2))
plot(MC2, Ni2_asc,
type = "b", pch = 16, lwd = 2, col = "#C00000",
main = "Gráfica Nro. 6\nOjiva ascendente y descendente de\nLON",
xlab = "Longitud (°)", ylab = "Cantidad",
ylim = c(0, n))
lines(MC2, Ni2_desc, type = "b", pch = 16, lwd = 1, col = "black")
legend("right", legend = c("Ascendente","Descendente"),
col = c("#C00000","black"), lwd = 2, pch = 16, bty = "n", cex = 0.8)
grid()
box()
par(mar = c(5, 5, 4, 2))
plot(MC2, Hi2_asc,
type = "b", pch = 16, lwd = 2, col = "#C00000",
main = "Gráfica Nro. 7\nOjiva porcentual ascendente y descendente de\nLON",
xlab = "Longitud (°)", ylab = "Porcentaje (%)",
ylim = c(0, 100))
lines(MC2, Hi2_desc, type = "b", pch = 16, lwd = 1, col = "black")
legend("right", legend = c("Ascendente","Descendente"),
col = c("#C00000","black"), lwd = 2, pch = 16, bty = "n", cex = 0.8)
grid()
box()
X <- mean(LON)
Me <- median(LON)
# Moda: marca de clase del intervalo con mayor ni (tabla reducida)
moda_idx <- which.max(ni2)
Mo <- round(MC2[moda_idx], 2)
desv <- sd(LON)
V <- var(LON)
CV <- round((desv / abs(X)) * 100, 2)
As <- skewness(LON, type = 2)
K <- kurtosis(LON, type = 2)
# Outliers (regla de Tukey, 1.5*IQR) — se usan en la conclusión
q1 <- quantile(LON, 0.25)
q3 <- quantile(LON, 0.75)
iqr_val <- q3 - q1
lim_inf <- q1 - 1.5 * iqr_val
lim_sup <- q3 + 1.5 * iqr_val
outliers <- LON[LON < lim_inf | LON > lim_sup]
n_outliers <- length(outliers)
porc_outliers <- round(n_outliers / n * 100, 2)
Tabla_indicadores <- data.frame(
Variable = "LON",
Rango = paste0("[", round(min_lon, 3), " - ", round(max_lon, 3), "]"),
Media = round(X, 3),
Mediana = round(Me, 3),
Moda = Mo,
DesvEst = round(desv, 3),
CV = CV,
Asimetria = round(As, 4),
Curtosis = round(K, 4)
)
Tabla_indicadores %>%
gt() %>%
cols_label(
Variable = "Variable", Rango = "Rango",
Media = "Media (X)", Mediana = "Mediana (Me)", Moda = "Moda (Mo)",
DesvEst = "Desv. Est. (sd)", CV = "CV (%)",
Asimetria = "Asimetría (As)", Curtosis = "Curtosis (K)"
) %>%
tab_header(
title = md("Tabla Nro. 3"),
subtitle = md("Indicadores Estadísticos de LON para el análisis de la actividad minera y emisión de gases en Estados Unidos.")
) %>%
tab_spanner(label = "Tendencia Central", columns = c(Media, Mediana, Moda)) %>%
tab_spanner(label = "Dispersión", columns = c(DesvEst, CV)) %>%
tab_spanner(label = "Forma", columns = c(Asimetria, Curtosis)) %>%
cols_align(align = "center", columns = everything()) %>%
tab_source_note(source_note = md("Autor: Luis Cruz"))
| Tabla Nro. 3 | ||||||||
| Indicadores Estadísticos de LON para el análisis de la actividad minera y emisión de gases en Estados Unidos. | ||||||||
| Variable | Rango |
Tendencia Central
|
Dispersión
|
Forma
|
||||
|---|---|---|---|---|---|---|---|---|
| Media (X) | Mediana (Me) | Moda (Mo) | Desv. Est. (sd) | CV (%) | Asimetría (As) | Curtosis (K) | ||
| LON | [-988.037 - -72.481] | -735.016 | -818.479 | -850 | 256.063 | 34.84 | 2.0495 | 2.5576 |
| Autor: Luis Cruz | ||||||||
La variable LON fluctúa entre un mínimo de -988.037° y un máximo de -72.481°, y gira en torno a una media de -735.016°, con una desviación estándar de 256.063°. Se han detectado 59 valores atípicos (22.61% del total), lo que sugiere que la actividad minera no se distribuye de forma uniforme entre las distintas longitudes del país. Debido a un coeficiente de variación del 34.84%, es un conjunto de datos con dispersión alta, cuyos valores se agrupan fuertemente en la parte baja de LON. Por lo anterior, el comportamiento es perjudicial para la vigilancia ambiental, ya que la actividad minera se concentra en franjas longitudinales específicas, dificultando una cobertura regulatoria uniforme a lo largo del territorio.