Variable Original: x

Nombre Variable: LON

Tipo: Cuantitativa Continua

0.- Carga de Librerías

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

1.- Carga de Datos

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

2.- Selección de variable

LON <- as.numeric(gsub(",", ".", datos$x))
## Warning: NAs introducidos por coerción
LON <- LON[!is.na(LON)]
n <- length(LON)

3.- Frecuencia

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)

4.- Tabla de distribución de frecuencia

4.1- Tabla con regla de Sturges

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

4.2- Tabla de intervalos reducidos

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

5.- Gráficos de distribución de frecuencia

5.1- Histogramas de cantidad

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)

5.2- Histogramas Porcentuales

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))

5.3- Diagrama de caja y bigotes

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)

5.4- Diagrama de Ojivas

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()

6.- Indicadores Estadísticos

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

7.- Conclusión

La variable LON fluctúa entre un mínimo de -988.037° y un máximo de -72.481°, con una media de -735.016° y una desviación estándar de 256.063°. Debido a un coeficiente de variación del 34.84%, se concluye que es un conjunto de valores con dispersión alta, con una distribución de asimetría positiva (2.0495). 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.