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.
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.
# 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)
Método estadístico para determinar el número óptimo de intervalos (clases) al construir una tabla de frecuencias agrupadas o un histograma.
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")
| 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. |
# 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
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])
}
}
# 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)
# 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")
| 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 |
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")
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)
# 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)
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.
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")
| 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 |
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")
| 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%) |
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")
| 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 |
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")
| 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 |
# 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)
| 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) |
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.