Variable Cuantitativa Continua - Latitud La latitud representa la posición norte-sur donde ocurren los accidentes mineros. Esta variable permite analizar la distribución espacial de los incidentes, identificando zonas de mayor concentración y patrones geográficos de riesgo.

1 Carga y Prepación de Datos

En esta sección se limpia el entorno de trabajo, se cargan las librerías necesarias y se importa el dataset desde un archivo Excel. Además se extrae y prepara la variable LATITUDE para el análisis.

1.1 Carga de Librerías y Datos

# Limpiar entorno
rm(list = ls())

# Cargar librerías
if (!require("readxl")) install.packages("readxl")
if (!require("dplyr")) install.packages("dplyr")
if (!require("knitr")) install.packages("knitr")
library(readxl)
library(dplyr)
library(knitr)

# Cargar datos
ruta <- "C:/Users/klaus/Downloads/5000_Datos.xlsx"
datos <- read_excel(ruta)

cat("✓ Datos cargados exitosamente\n")
## ✓ Datos cargados exitosamente
cat("✓ Dimensiones:", nrow(datos), "observaciones\n")
## ✓ Dimensiones: 4945 observaciones
# Extraer y limpiar variable
LATITUDE_raw <- datos$LATITUDE
LATITUDE <- as.numeric(LATITUDE_raw)
LATITUDE <- LATITUDE[!is.na(LATITUDE)]
LATITUDE <- LATITUDE[LATITUDE != 0]

# Tamaño muestral
n <- length(LATITUDE)

2 Distribución de Frecuencias - Regla de Sturges

Método estadístico para determinar el número óptimo de intervalos (clases) al construir una tabla de frecuencias agrupadas o un histograma.

2.1 Parámetros de Sturges

Se calculan el número óptimo de intervalos y su amplitud.

# Parámetros de Sturges
R <- max(LATITUDE) - min(LATITUDE)
k <- floor(1 + 3.3 * log10(n))
A <- R / k

# Crear tabla de parámetros
parametros_sturges <- data.frame(
  Parámetro = c("Rango (R)", 
                "Número de datos (n)", 
                "Fórmula de k", 
                "Número de intervalos (k)", 
                "Amplitud de clase (A)"),
  Cálculo = c(
    paste("max(LATITUDE) - min(LATITUDE) =", round(max(LATITUDE), 4), "-", round(min(LATITUDE), 4)),
    paste("n =", n),
    paste("1 + 3.3 × log₁₀(", n, ")"),
    paste("floor(", round(1 + 3.3 * log10(n), 4), ") =", k),
    paste("R / k =", round(R, 4), "/", k, "=", round(A, 4))
  ),
  Valor = c(
    paste(round(R, 4), "grados"),
    n,
    round(1 + 3.3 * log10(n), 4),
    k,
    paste(round(A, 4), "grados")
  ),
  Unidad = c("grados", "datos", "", "intervalos", "grados/int.")
)

kable(parametros_sturges, 
      caption = "Tabla 1: Parámetros de la Regla de Sturges",
      align = "l")
Tabla 1: Parámetros de la Regla de Sturges
Parámetro Cálculo Valor Unidad
Rango (R) max(LATITUDE) - min(LATITUDE) = 48.8894 - 24.6853 24.2042 grados grados
Número de datos (n) n = 4945 4945 datos
Fórmula de k 1 + 3.3 × log₁₀( 4945 ) 13.1907
Número de intervalos (k) floor( 13.1907 ) = 13 13 intervalos
Amplitud de clase (A) R / k = 24.2042 / 13 = 1.8619 1.8619 grados grados/int.

2.2 Construcción de Intervalos de Clase

# Definir límites de clase según Sturges
Li <- seq(min(LATITUDE), max(LATITUDE) - A, by = A)
Ls <- seq(min(LATITUDE) + A, max(LATITUDE), by = A)
MC <- (Li + Ls) / 2

cat("**LÍMITES DE LOS INTERVALOS:**\n\n")
## **LÍMITES DE LOS INTERVALOS:**
cat(sprintf("• Límite inferior inicial: min(LATITUDE) = %.4f grados\n", round(min(LATITUDE), 4)))
## • Límite inferior inicial: min(LATITUDE) = 24.6853 grados
cat(sprintf("• Límite superior final:   max(LATITUDE) = %.4f grados\n", round(max(LATITUDE), 4)))
## • Límite superior final:   max(LATITUDE) = 48.8894 grados
cat(sprintf("• Amplitud constante:      A = %.4f grados\n", round(A, 4)))
## • Amplitud constante:      A = 1.8619 grados
cat(sprintf("• Número de clases:        k = %d\n", k))
## • Número de clases:        k = 13

2.3 Tabla de Distribución de Frecuencias

2.3.1 Frecuencias Absolutas

Se cuenta cuántos valores caen en cada intervalo.

# Calcular frecuencias absolutas
ni <- numeric(k)
for (i in 1:k) {
  if (i == k) {
    ni[i] <- sum(LATITUDE >= Li[i] & LATITUDE <= Ls[i])
  } else {
    ni[i] <- sum(LATITUDE >= Li[i] & LATITUDE < Ls[i])
  }
}

2.3.2 Frecuencias Relativas y Acumuladas

# Calcular frecuencias relativas y acumuladas
hi <- round((ni / n) * 100, 2)
Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- round(cumsum(hi), 2)
Hidsc <- round(rev(cumsum(rev(hi))), 2)

2.3.3 Tabla de Frecuencias Relativas y Acumuladas

# Crear tabla de distribución de frecuencias
TDF <- data.frame(
  Clase = 1:k,
  "Lím. Inf." = round(Li, 2),
  "Lím. Sup." = round(Ls, 2),
  "Marca Clase" = round(MC, 2),
  "ni" = ni,
  "hi (%)" = hi,
  "Ni ↑" = Niasc,
  "Ni ↓" = Nidsc,
  "Hi ↑ (%)" = Hiasc,
  "Hi ↓ (%)" = Hidsc
)

# Mostrar tabla con kable
kable(TDF,
      caption = "Tabla 2: Distribución de frecuencias de la variable Latitud (LATITUDE) - Regla de Sturges",
      align = "c") 
Tabla 2: Distribución de frecuencias de la variable Latitud (LATITUDE) - Regla de Sturges
Clase Lím..Inf. Lím..Sup. Marca.Clase ni hi…. Ni.. Ni…1 Hi…… Hi…….1
1 24.69 26.55 25.62 17 0.34 17 4945 0.34 100.00
2 26.55 28.41 27.48 41 0.83 58 4928 1.17 99.66
3 28.41 30.27 29.34 98 1.98 156 4887 3.15 98.83
4 30.27 32.13 31.20 93 1.88 249 4789 5.03 96.85
5 32.13 33.99 33.06 582 11.77 831 4696 16.80 94.97
6 33.99 35.86 34.93 310 6.27 1141 4114 23.07 83.20
7 35.86 37.72 36.79 879 17.78 2020 3804 40.85 76.93
8 37.72 39.58 38.65 1075 21.74 3095 2925 62.59 59.15
9 39.58 41.44 40.51 1062 21.48 4157 1850 84.07 37.41
10 41.44 43.30 42.37 309 6.25 4466 788 90.32 15.93
11 43.30 45.17 44.23 188 3.80 4654 479 94.12 9.68
12 45.17 47.03 46.10 143 2.89 4797 291 97.01 5.88
13 47.03 48.89 47.96 148 2.99 4945 148 100.00 2.99

3 Gráficas

3.1 Diagrama de Barras

Generamos diagramas de barras tanto Global como Local para las frecuencias absolutas para visualizar el conteo de ocurrencias de los valores de la variable.

Histograma de Frecuencia Absoluta Local

# Calcular media y mediana para usar en abline()
media_local <- mean(LATITUDE)
mediana_local <- median(LATITUDE)

hist(
  LATITUDE,
  breaks = seq(min(LATITUDE), max(LATITUDE) + A, A),
  right = FALSE,
  main = "Gráfica 1: Histograma de Frecuencias Absolutas Locales",
  xlab = "Latitud (grados)",
  ylab = "Frecuencia Absoluta (ni)",
  col = "steelblue",
  border = "white"
)

# Añadir líneas de media y mediana (usando variables locales)
abline(v = media_local, col = "red", lwd = 2, lty = 2)
abline(v = mediana_local, col = "blue", lwd = 2, lty = 2)

legend("topright",
       legend = c(paste("Media =", round(media_local, 2)),
                  paste("Mediana =", round(mediana_local, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

Histograma de Frecuencia Absoluta Global

media_global <- mean(LATITUDE)
mediana_global <- median(LATITUDE)

hist(
  LATITUDE,
  breaks = seq(min(LATITUDE), max(LATITUDE) + A, A),
  right = FALSE,
  main = "Gráfica 2: Histograma de Frecuencias Absolutas Globales",
  xlab = "Latitud (grados)",
  ylab = "Frecuencia Absoluta (ni)",
  col = "lightcoral",
  ylim = c(0, max(ni) + 5),
  border = "white"
)

# Añadir líneas de media y mediana
abline(v = media_global, col = "red", lwd = 2, lty = 2)
abline(v = mediana_global, col = "blue", lwd = 2, lty = 2)

legend("topright",
       legend = c(paste("Media =", round(media_global, 2)),
                  paste("Mediana =", round(mediana_global, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

Histograma de Frecuencia Relativa Local

# Calcular media y mediana para posicionar las líneas
media_rel_local <- mean(LATITUDE)
mediana_rel_local <- median(LATITUDE)

intervalos <- paste(round(Li, 2), round(Ls, 2), sep = " - ")

# Calcular posición de las líneas en el barplot
# La posición en barplot es: (valor - mínimo) / A * 1 
pos_media_bar <- (media_rel_local - min(Li)) / A * 1
pos_mediana_bar <- (mediana_rel_local - min(Li)) / A * 1

barplot(
  hi,
  names.arg = intervalos,
  col= "darkorange",
  ylim = c(0, max(hi) + 5),
  space = 0,
  cex.names = 0.7,
  ylab = "Frecuencia Relativa (%)",
  xlab = "Intervalos de Latitud (grados)",
  main = "Gráfica 3: Histograma de Frecuencias Relativas Locales",
  las = 2,
  border = "white"
)

# Añadir líneas verticales de media y mediana
abline(v = pos_media_bar, col = "red", lwd = 2, lty = 2)
abline(v = pos_mediana_bar, col = "blue", lwd = 2, lty = 2)

# Añadir leyenda
legend("topright",
       legend = c(paste("Media =", round(media_rel_local, 2)),
                  paste("Mediana =", round(mediana_rel_local, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

Histograma de Frecuencia Relativa Global

# Calcular media y mediana 
media_rel_global <- mean(LATITUDE)
mediana_rel_global <- median(LATITUDE)

# Calcular posición de las líneas en el barplot
pos_media_bar_global <- (media_rel_global - min(Li)) / A * 1
pos_mediana_bar_global <- (mediana_rel_global - min(Li)) / A * 1

barplot(
  hi,
  names.arg = intervalos,
  col = "mediumpurple",
  ylim = c(0, 100),
  cex.names = 0.7,
  space = 0,
  ylab = "Frecuencia Relativa (%)",
  xlab = "Intervalos de Latitud (grados)",
  main = "Gráfica 4: Histograma de Frecuencias Relativas Globales",
  las = 2,
  border = "white"
)

# Añadir líneas verticales de media y mediana
abline(v = pos_media_bar_global, col = "red", lwd = 2, lty = 2)
abline(v = pos_mediana_bar_global, col = "blue", lwd = 2, lty = 2)

# Añadir leyenda
legend("topright",
       legend = c(paste("Media =", round(media_rel_global, 2)),
                  paste("Mediana =", round(mediana_rel_global, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

3.2 Ojivas

Adicionalmente, generamos las ojivas que nos representa las frecuencias acumuladas y, de igual manera, el intercepto de las gráficas de la ojiva ascendente y la descendente.

Ojiva Absoluta (Ni)

plot(Ls, Niasc, 
     type = "o", 
     pch = 16, 
     col = "blue",
     main = "Gráfica 5: Ojiva de Frecuencias Absolutas",
     xlab = "Latitud (grados)",
     ylab = "Frecuencia Acumulada Absoluta (Ni)")

lines(Ls, Nidsc, 
      type = "o", 
      pch = 16, 
      col = "red")

legend("topleft",
       c("Ni Ascendente", "Ni Descendente"),
       col = c("blue", "red"),
       pch = 16)

Ojiva Relativa (Hi)

plot(Ls, Hiasc, 
     type = "o", 
     pch = 16, 
     col = "blue",
     main = "Gráfica 6: Ojiva de Frecuencias Relativas",
     xlab = "Latitud (grados)",
     ylab = "Frecuencia Acumulada Relativa (%)")

lines(Ls, Hidsc, 
      type = "o", 
      pch = 16, 
      col = "red")

legend("bottomright", 
       c("Hi Ascendente", "Hi Descendente"),
       col = c("blue", "red"), 
       pch = 16)

3.3 Diagrama de Caja

# Calcular todas las variables necesarias para el boxplot
media_box <- mean(LATITUDE)
mediana_box <- median(LATITUDE)
Q1_box <- quantile(LATITUDE, 0.25)
Q3_box <- quantile(LATITUDE, 0.75)
IQR_box <- IQR(LATITUDE)

# Calcular outliers 
lim_inf_outlier_box <- Q1_box - 1.5 * IQR_box
lim_sup_outlier_box <- Q3_box + 1.5 * IQR_box
outliers_box <- LATITUDE[LATITUDE < lim_inf_outlier_box | LATITUDE > lim_sup_outlier_box]
n_outliers_box <- length(outliers_box)

boxplot(LATITUDE,
        horizontal = TRUE,
        col = "lightblue",
        main = "Gráfica 7: Diagrama de Caja - Variable LATITUDE",
        xlab = "Latitud (grados)",
        ylab = "",
        border = "darkblue")

# Añadir estadísticos importantes (usando variables locales)
points(media_box, 1, pch = 23, bg = "red", cex = 1.2)
legend("topright",
       legend = c(paste("Media:", round(media_box, 2)),
                  paste("Mediana:", round(mediana_box, 2)),
                  paste("Q1:", round(Q1_box, 2)),
                  paste("Q3:", round(Q3_box, 2)),
                  paste("Outliers:", n_outliers_box)),
       bty = "n",
       cex = 0.8)

4 Indicadores

Son valores numéricos que resumen, describen y analizan características de un conjunto de datos. Permiten simplificar y entender grandes volúmenes de información de manera más eficiente.

4.1 Indicadores de Tendencia Central

Son medidas estadísticas que identifican el valor central o típico de un conjunto de datos.

# Calcular indicadores de tendencia central
minimo <- min(LATITUDE)
maximo <- max(LATITUDE)
rango <- maximo - minimo
media <- mean(LATITUDE)
mediana <- median(LATITUDE)
moda <- as.numeric(names(sort(table(LATITUDE), decreasing = TRUE)[1]))

# Crear tabla
tendencia_central <- data.frame(
  Indicador = c("Mínimo", "Media", "Mediana", "Moda", "Máximo", "Rango"),
  Valor = c(
    round(minimo, 4),
    round(media, 4),
    round(mediana, 4),
    round(moda, 4),
    round(maximo, 4),
    round(rango, 4)
  ),
  Unidad = rep("grados", 6),
  Interpretación = c(
    "Valor mínimo observado",
    "Promedio de todos los valores",
    "Valor que divide la muestra en dos partes iguales",
    "Valor más frecuente en la muestra",
    "Valor máximo observado",
    "Diferencia entre el máximo y el mínimo"
  )
)

kable(tendencia_central,
      caption = "Tabla 3: Indicadores de Tendencia Central",
      align = "l")
Tabla 3: Indicadores de Tendencia Central
Indicador Valor Unidad Interpretación
Mínimo 24.6853 grados Valor mínimo observado
Media 38.2586 grados Promedio de todos los valores
Mediana 38.1544 grados Valor que divide la muestra en dos partes iguales
Moda 33.0633 grados Valor más frecuente en la muestra
Máximo 48.8894 grados Valor máximo observado
Rango 24.2042 grados Diferencia entre el máximo y el mínimo

4.2 Indicadores de Dispersión

Se calculan medidas que indican la variabilidad de los datos: varianza, desviación estándar y coeficiente de variación.

# Calcular indicadores de dispersión
varianza <- var(LATITUDE)
desv_est <- sd(LATITUDE)
CV <- (desv_est / media) * 100

# Interpretación del CV
if(CV < 15) {
  interpretacion_CV <- "BAJA (CV < 15%)"
} else if(CV < 30) {
  interpretacion_CV <- "MODERADA (15% ≤ CV < 30%)"
} else {
  interpretacion_CV <- "ALTA (CV ≥ 30%)"
}

# Crear tabla
dispersion <- data.frame(
  Indicador = c("Varianza", "Desviación Estándar", "Coeficiente de Variación"),
  Valor = c(
    round(varianza, 4),
    round(desv_est, 4),
    paste0(round(CV, 2), "%")
  ),
  Unidad = c("grados²", "grados", ""),
  Interpretación = c(
    "Medida de dispersión al cuadrado",
    "Dispersión promedio respecto a la media",
    paste("Dispersión relativa:", interpretacion_CV)
  )
)

kable(dispersion,
      caption = "Tabla 4: Indicadores de Dispersión",
      align = "l")
Tabla 4: Indicadores de Dispersión
Indicador Valor Unidad Interpretación
Varianza 15.4864 grados² Medida de dispersión al cuadrado
Desviación Estándar 3.9353 grados Dispersión promedio respecto a la media
Coeficiente de Variación 10.29% Dispersión relativa: BAJA (CV < 15%)

4.3 Indicadores de Posición

Se calculan medidas que dividen la distribución en partes iguales: cuartiles y rango intercuartílico.

# Calcular indicadores de posición
cuartiles <- quantile(LATITUDE)
Q1 <- cuartiles[2]
Q2 <- cuartiles[3]
Q3 <- cuartiles[4]
IQR_val <- IQR(LATITUDE)

# Detección de outliers
lim_inf_outlier <- Q1 - 1.5 * IQR_val
lim_sup_outlier <- Q3 + 1.5 * IQR_val
outliers <- LATITUDE[LATITUDE < lim_inf_outlier | LATITUDE > lim_sup_outlier]
n_outliers <- length(outliers)
porc_outliers <- round((n_outliers / n) * 100, 2)

# Crear tabla
posicion <- 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, 4),
    round(Q2, 4),
    round(Q3, 4),
    round(IQR_val, 4),
    round(lim_inf_outlier, 4),
    round(lim_sup_outlier, 4),
    paste0(n_outliers, " (", porc_outliers, "%)")
  ),
  Unidad = c(rep("grados", 6), "observaciones"),
  Interpretación = c(
    "25% de datos por debajo de este valor",
    "50% de datos por debajo de este valor (coincide con mediana)",
    "75% de datos por debajo de este valor",
    "Rango del 50% central de datos (Q3 - Q1)",
    "Límite inferior para detección de valores atípicos",
    "Límite superior para detección de valores atípicos",
    "Cantidad y porcentaje de valores atípicos detectados"
  )
)

kable(posicion,
      caption = "Tabla 5: Indicadores de Posición y Detección de Outliers",
      align = "l")
Tabla 5: Indicadores de Posición y Detección de Outliers
Indicador Valor Unidad Interpretación
Cuartil 1 (Q1) 36.7192 grados 25% de datos por debajo de este valor
Cuartil 2 (Q2 - Mediana) 38.1544 grados 50% de datos por debajo de este valor (coincide con mediana)
Cuartil 3 (Q3) 40.3517 grados 75% de datos por debajo de este valor
Rango Intercuartílico (IQR) 3.6325 grados Rango del 50% central de datos (Q3 - Q1)
Límite Inferior Outliers 31.2704 grados Límite inferior para detección de valores atípicos
Límite Superior Outliers 45.8004 grados Límite superior para detección de valores atípicos
Número de Outliers 415 (8.39%) observaciones Cantidad y porcentaje de valores atípicos detectados

4.4 Indicadores de Forma

Se calculan medidas que describen la forma de la distribución: asimetría y curtosis.

# Calcular coeficiente de asimetría de Fisher
asimetria <- moments::skewness(LATITUDE)

# Interpretación de asimetría
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)"
}

# Calcular coeficiente de curtosis (exceso)
curtosis <- moments::kurtosis(LATITUDE) - 3  # Restamos 3 para exceso de curtosis

# Interpretación de curtosis
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)"
}

# Crear tabla
forma <- data.frame(
  Indicador = c("Coeficiente de Asimetría (Fisher)", "Interpretación Asimetría",
                "Coeficiente de Curtosis (Exceso)", "Interpretación Curtosis"),
  Valor = c(
    round(asimetria, 4),
    interpretacion_asimetria,
    round(curtosis, 4),
    interpretacion_curtosis
  ),
  Fórmula = c(
    "g₁ = E[(X-μ)³]/σ³",
    "|g₁| < 0.5: Simétrica; g₁ > 0: Positiva; g₁ < 0: Negativa",
    "g₂ = E[(X-μ)⁴]/σ⁴ - 3",
    "|g₂| < 0.5: Mesocúrtica; g₂ > 0: Leptocúrtica; g₂ < 0: Platicúrtica"
  )
)

kable(forma,
      caption = "Tabla 6: Indicadores de Forma de la Distribución",
      align = "l")
Tabla 6: Indicadores de Forma de la Distribución
Indicador Valor Fórmula
Coeficiente de Asimetría (Fisher) -0.0624 g₁ = E[(X-μ)³]/σ³
Interpretación Asimetría Distribución simétrica |g₁| < 0.5: Simétrica; g₁ > 0: Positiva; g₁ < 0: Negativa
Coeficiente de Curtosis (Exceso) 0.4733 g₂ = E[(X-μ)⁴]/σ⁴ - 3
Interpretación Curtosis Distribución mesocúrtica (normal) |g₂| < 0.5: Mesocúrtica; g₂ > 0: Leptocúrtica; g₂ < 0: Platicúrtica

4.5 Tabla resumen de Indicadores

# Crear tabla resumen completa
tabla_resumen <- data.frame(
  Categoría = 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 (g₁)", "Interpretación Asimetría",
                "Curtosis (g₂)", "Interpretación Curtosis"),
  Valor = c(
    round(minimo, 4), round(media, 4), round(mediana, 4), round(moda, 4), 
    round(maximo, 4), round(rango, 4),
    round(varianza, 4), round(desv_est, 4), paste0(round(CV, 2), "%"),
    round(Q1, 4), round(Q2, 4), round(Q3, 4), round(IQR_val, 4),
    round(asimetria, 4), interpretacion_asimetria,
    round(curtosis, 4), interpretacion_curtosis
  ),
  Unidad = c("grados", "grados", "grados", "grados", "grados", "grados",
             "grados²", "grados", "", "grados", "grados", "grados", "grados",
             "", "", "", "")
)

kable(tabla_resumen,
      caption = "Tabla 7: Resumen Completo de Indicadores Estadísticos - Variable LATITUDE",
      align = "l",
      row.names = FALSE)
Tabla 7: Resumen Completo de Indicadores Estadísticos - Variable LATITUDE
Categoría Indicador Valor Unidad
Tendencia Central Mínimo 24.6853 grados
Tendencia Central Media 38.2586 grados
Tendencia Central Mediana 38.1544 grados
Tendencia Central Moda 33.0633 grados
Tendencia Central Máximo 48.8894 grados
Tendencia Central Rango 24.2042 grados
Dispersión Varianza 15.4864 grados²
Dispersión Desviación Estándar 3.9353 grados
Dispersión Coeficiente de Variación 10.29%
Posición Cuartil 1 (Q1) 36.7192 grados
Posición Cuartil 2 (Q2) 38.1544 grados
Posición Cuartil 3 (Q3) 40.3517 grados
Posición Rango Intercuartílico 3.6325 grados
Forma Asimetría (g₁) -0.0624
Forma Interpretación Asimetría Distribución simétrica
Forma Curtosis (g₂) 0.4733
Forma Interpretación Curtosis Distribución mesocúrtica (normal)

5 Conclusiones

La variable LATITUDE fluctúa entre [24.69°:48.89°], y sus valores giran en torno a 38.26° / 38.15°, con una desviación estándar de 3.94 grados, presentando un coeficiente de variación de 10.29% (altamente homogéneo). La distribución es aproximadamente simétrica y leptocúrtica con la existencia de 415 valores atípicos que empiezan desde 24.69°.

Por todo lo anterior, el comportamiento de la variable es favorable para análisis inferenciales, indicando que los accidentes mineros se concentran predominantemente en la región central de Estados Unidos (alrededor de 38° de latitud), con una dispersión geográfica limitada que permite focalizar eficazmente las estrategias de seguridad minera. Sin embargo, la presencia de 415 valores atípicos (aproximadamente 8.3% de la muestra) sugiere la existencia de operaciones mineras en zonas geográficas atípicas que requieren investigación específica para determinar factores de riesgo particulares.