1 INTRODUCCIÓN

1.1 Contexto del Proyecto

1.2 El presente análisis forma parte del proyecto de investigación sobre Accidentes en Operaciones Mineras, desarrollado en la Carrera de Ingeniería en Minas de la Universidad Central del Ecuador (FIGEMPA).

2 CARGA Y PREPARACIÓN DE DATOS

# Limpiar entorno
rm(list = ls())

# Cargar datos
ruta <- "C:/Users/arian/OneDrive/Documentos/UNI/estadistica/PROYECTO/1. DATOS/5000_Datos.xlsx"

if(!file.exists(ruta)) {
  stop("ERROR: Archivo no encontrado. Por favor verifica la ruta.")
}

datos <- read_excel(ruta)

# Extraer y limpiar variable
LONGITUDE_raw <- datos$LONGITUDE
LONGITUDE <- as.numeric(LONGITUDE_raw)
LONGITUDE <- LONGITUDE[!is.na(LONGITUDE)]
LONGITUDE <- LONGITUDE[LONGITUDE != 0]

# Tamaño muestral
n <- length(LONGITUDE)
datos_originales <- nrow(datos)
tasa_validez <- round((n / datos_originales) * 100, 2)

2.1 Reporte de Datos

Resumen de Calidad de Datos
Indicador Valor
Datos originales 4945
Datos válidos 4945
Datos eliminados 0
Tasa de validez 100%

3 TABLAS DE DISTRIBUCIÓN DE FRECUENCIAS

3.1 Tabla de Frecuencias Simple

# Frecuencias simples
valores_unicos <- sort(unique(LONGITUDE))
Ni_simple <- as.numeric(table(LONGITUDE))
hi_simple <- (Ni_simple / n) * 100
Ni_asc_simple <- cumsum(Ni_simple)
Hi_asc_simple <- cumsum(hi_simple)
Ni_desc_simple <- rev(cumsum(rev(Ni_simple)))
Hi_desc_simple <- rev(cumsum(rev(hi_simple)))

TablaSimple <- data.frame(
  Valor = valores_unicos,
  Ni = Ni_simple,
  "hi (%)" = round(hi_simple, 2),
  "Ni Asc" = Ni_asc_simple,
  "Hi Asc (%)" = round(Hi_asc_simple, 2),
  "Ni Desc" = Ni_desc_simple,
  "Hi Desc (%)" = round(Hi_desc_simple, 2),
  check.names = FALSE
)

kable(head(TablaSimple, 20), align = 'c',
      caption = "Tabla de Distribución de Frecuencias Simple - LONGITUDE (primeros 20 valores)") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE,
                font_size = 12) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#3498db") %>%
  scroll_box(height = "400px")
Tabla de Distribución de Frecuencias Simple - LONGITUDE (primeros 20 valores)
Valor Ni hi (%) Ni Asc Hi Asc (%) Ni Desc Hi Desc (%)
-124.1028 1 0.02 1 0.02 4945 100.00
-124.0831 1 0.02 2 0.04 4944 99.98
-123.7850 1 0.02 3 0.06 4943 99.96
-123.3119 1 0.02 4 0.08 4942 99.94
-123.3106 1 0.02 5 0.10 4941 99.92
-123.1919 1 0.02 6 0.12 4940 99.90
-123.1072 2 0.04 8 0.16 4939 99.88
-123.0836 1 0.02 9 0.18 4937 99.84
-123.0664 1 0.02 10 0.20 4936 99.82
-123.0572 1 0.02 11 0.22 4935 99.80
-123.0508 1 0.02 12 0.24 4934 99.78
-123.0506 1 0.02 13 0.26 4933 99.76
-123.0433 1 0.02 14 0.28 4932 99.74
-123.0261 3 0.06 17 0.34 4931 99.72
-122.9233 1 0.02 18 0.36 4928 99.66
-122.9050 5 0.10 23 0.47 4927 99.64
-122.8503 1 0.02 24 0.49 4922 99.53
-122.8233 1 0.02 25 0.51 4921 99.51
-122.7842 1 0.02 26 0.53 4920 99.49
-122.7356 1 0.02 27 0.55 4919 99.47

3.2 Tabla de Frecuencias Agrupada (Sturges)

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

# Límites de clase
liminf <- seq(from = min(LONGITUDE), to = max(LONGITUDE) - A, by = A)
limsup <- seq(from = min(LONGITUDE) + A, to = max(LONGITUDE), by = A)
MC <- (liminf + limsup) / 2

# Frecuencias agrupadas
n_i <- numeric(k)
for (i in 1:k) {
  if (i == k) {
    n_i[i] <- sum(LONGITUDE >= liminf[i] & LONGITUDE <= limsup[i])
  } else {
    n_i[i] <- sum(LONGITUDE >= liminf[i] & LONGITUDE < limsup[i])
  }
}

h_i <- (n_i / sum(n_i)) * 100
Ni_asc <- cumsum(n_i)
Hi_asc <- cumsum(h_i)
Ni_desc <- rev(cumsum(rev(n_i)))
Hi_desc <- rev(cumsum(rev(h_i)))

TablaAgrupada <- data.frame(
  Clase = 1:k,
  "Lím. Inf." = round(liminf, 2),
  "Lím. Sup." = round(limsup, 2),
  "M.C." = round(MC, 2),
  Ni = n_i,
  "hi (%)" = round(h_i, 2),
  "Ni Asc" = Ni_asc,
  "Hi Asc (%)" = round(Hi_asc, 2),
  "Ni Desc" = Ni_desc,
  "Hi Desc (%)" = round(Hi_desc, 2),
  check.names = FALSE
)

kable(TablaAgrupada, align = 'c',
      caption = "Tabla de Distribución de Frecuencias Agrupada (Sturges) - LONGITUDE") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE,
                font_size = 11) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#2ecc71")
Tabla de Distribución de Frecuencias Agrupada (Sturges) - LONGITUDE
Clase Lím. Inf. Lím. Sup. M.C. Ni hi (%) Ni Asc Hi Asc (%) Ni Desc Hi Desc (%)
1 -124.10 -119.86 -121.98 108 2.18 108 2.18 4945 100.00
2 -119.86 -115.63 -117.75 324 6.55 432 8.74 4837 97.82
3 -115.63 -111.39 -113.51 158 3.20 590 11.93 4513 91.26
4 -111.39 -107.15 -109.27 421 8.51 1011 20.44 4355 88.07
5 -107.15 -102.91 -105.03 172 3.48 1183 23.92 3934 79.56
6 -102.91 -98.67 -100.79 45 0.91 1228 24.83 3762 76.08
7 -98.67 -94.44 -96.55 245 4.95 1473 29.79 3717 75.17
8 -94.44 -90.20 -92.32 321 6.49 1794 36.28 3472 70.21
9 -90.20 -85.96 -88.08 995 20.12 2789 56.40 3151 63.72
10 -85.96 -81.72 -83.84 889 17.98 3678 74.38 2156 43.60
11 -81.72 -77.48 -79.60 934 18.89 4612 93.27 1267 25.62
12 -77.48 -73.24 -75.36 286 5.78 4898 99.05 333 6.73
13 -73.24 -69.01 -71.13 47 0.95 4945 100.00 47 0.95

3.2.1 Parámetros de Sturges

Parámetro Valor
Rango (R) 55.0964 grados
Número de intervalos (k) 13
Amplitud de clase (A) 4.2382 grados

4 INDICADORES DE TENDENCIA CENTRAL

minimo <- min(LONGITUDE)
maximo <- max(LONGITUDE)
rango <- maximo - minimo
media <- mean(LONGITUDE)
mediana <- median(LONGITUDE)
moda <- as.numeric(names(sort(table(LONGITUDE), decreasing = TRUE)[1]))

indicadores <- data.frame(
  Indicador = c("Mínimo", "Media", "Mediana", "Moda", "Máximo", "Rango"),
  Valor = round(c(minimo, media, mediana, moda, maximo, rango), 4),
  Unidad = rep("grados", 6)
)

kable(indicadores, align = 'lrc',
      caption = "Indicadores de Tendencia Central - LONGITUDE") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#9b59b6") %>%
  row_spec(c(2, 3), bold = TRUE, background = "#ecf0f1")
Indicadores de Tendencia Central - LONGITUDE
Indicador Valor Unidad
Mínimo -124.1028 grados
Media -91.4508 grados
Mediana -87.3753 grados
Moda -109.3350 grados
Máximo -69.0064 grados
Rango 55.0964 grados

5 VISUALIZACIONES

5.1 Histogramas

par(mfrow = c(1, 2), mar = c(4, 4, 3, 1))

# HISTOGRAMA GLOBAL - FRECUENCIAS ABSOLUTAS
cat("Generando Histograma Global de Frecuencias Absolutas...\n")
## Generando Histograma Global de Frecuencias Absolutas...
hist(LONGITUDE,
     main = "Histograma Global de Frecuencias Absolutas\nVariable LONGITUDE",
     xlab = "Longitud (grados)",
     ylab = "Frecuencia Absoluta",
     col = "steelblue",
     border = "white",
     las = 1,
     breaks = k)
abline(v = media, col = "red", lwd = 2, lty = 2)
abline(v = mediana, col = "blue", lwd = 2, lty = 2)
legend("topright",
       legend = c(paste("Media =", round(media, 2)),
                  paste("Mediana =", round(mediana, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

# HISTOGRAMA LOCAL - FRECUENCIAS ABSOLUTAS
hist(LONGITUDE,
     main = "Histograma Local de Frecuencias Absolutas\nVariable LONGITUDE",
     xlab = "Longitud (grados)",
     ylab = "Frecuencia Absoluta",
     col = "lightcoral",
     border = "white",
     las = 1,
     breaks = k,
     ylim = c(0, max(n_i) * 1.2))
abline(v = media, col = "red", lwd = 2, lty = 2)
abline(v = mediana, col = "blue", lwd = 2, lty = 2)
legend("topright",
       legend = c(paste("Media =", round(media, 2)),
                  paste("Mediana =", round(mediana, 2))),
       col = c("red", "blue"),
       lty = 2,
       lwd = 2,
       bty = "n")

# HISTOGRAMA GLOBAL - FRECUENCIAS RELATIVAS
barplot(h_i,
        main = "Histograma Global de Frecuencias Relativas\nVariable LONGITUDE",
        xlab = "Marca de Clase",
        ylab = "Porcentaje (%)",
        col = "darkorange",
        border = "white",
        names.arg = round(MC, 1),
        las = 2,
        cex.names = 0.7,
        space = 0)
abline(h = 0)

# HISTOGRAMA LOCAL - FRECUENCIAS RELATIVAS
barplot(h_i,
        main = "Histograma Local de Frecuencias Relativas\nVariable LONGITUDE",
        xlab = "Marca de Clase",
        ylab = "Porcentaje (%)",
        col = "mediumpurple",
        border = "white",
        names.arg = round(MC, 1),
        las = 2,
        cex.names = 0.7,
        space = 0,
        ylim = c(0, 100))
abline(h = 0)

# DIAGRAMA DE CAJA
boxplot(LONGITUDE,
        horizontal = TRUE,
        main = "Diagrama de Caja\nVariable LONGITUDE",
        xlab = "Longitud (grados)",
        col = "lightgreen",
        border = "darkgreen",
        outcol = "red",
        outpch = 16,
        las = 1)
points(media, 1, pch = 23, bg = "blue", cex = 1.5)

5.2 Ojivas

par(mfrow = c(1, 2), mar = c(4, 4, 3, 1))

# Ojivas Absolutas
plot(MC, Ni_asc, type = "b",
     main = "Ojivas - Frecuencias Absolutas",
     xlab = "Marca de Clase (grados)",
     ylab = "Frecuencia Acumulada (Ni)",
     col = "#3498db", lwd = 2, pch = 16, cex = 1.2,
     ylim = c(0, n), las = 1)
lines(MC, Ni_desc, type = "b",
      col = "#e74c3c", lwd = 2, pch = 16, cex = 1.2)
legend("right", 
       legend = c("Ascendente", "Descendente"),
       col = c("#3498db", "#e74c3c"), 
       lty = 1, lwd = 2, pch = 16, cex = 0.8, bty = "n")
grid(col = "gray", lty = "dotted")

# Ojivas Relativas
plot(MC, Hi_asc, type = "b",
     main = "Ojivas - Frecuencias Relativas",
     xlab = "Marca de Clase (grados)",
     ylab = "Porcentaje Acumulado (Hi %)",
     col = "#3498db", lwd = 2, pch = 16, cex = 1.2,
     ylim = c(0, 100), las = 1)
lines(MC, Hi_desc, type = "b",
      col = "#e74c3c", lwd = 2, pch = 16, cex = 1.2)
legend("right", 
       legend = c("Ascendente", "Descendente"),
       col = c("#3498db", "#e74c3c"), 
       lty = 1, lwd = 2, pch = 16, cex = 0.8, bty = "n")
grid(col = "gray", lty = "dotted")


6 ANÁLISIS ESPACIAL

6.1 Distribución por Cuartiles Geográficos

Distribución de Accidentes por Región Geográfica
Región Rango Longitud Accidentes Porcentaje (%)
Oeste (Q1) < -98.44 ° 1236 25.0
Centro-Oeste (Q1-Q2) -98.44 ° a -87.38 ° 1236 25.0
Centro-Este (Q2-Q3) -87.38 ° a -81.69 ° 1233 24.9
Este (Q3+) ≥ -81.69 ° 1240 25.1

7 CONCLUSIONES

7.1 Validez y Calidad de los Datos

Se trabajó con 4945 observaciones válidas de ubicaciones geográficas, representando el 100% del total de registros. La eliminación de valores cero y NA asegura que solo se analicen ubicaciones geográficas válidas y verificables.

7.2 Distribución Geográfica

7.2.1 Indicadores Centrales de Ubicación

  • Longitud media: -91.45° (centro geográfico ponderado de accidentes)
  • Longitud mediana: -87.38° (punto que divide los datos en dos mitades iguales)
  • Longitud modal: -109.33° (ubicación con mayor frecuencia de accidentes)

La media menor que la mediana sugiere una concentración hacia el oeste (longitudes más negativas). Esto indica que existen operaciones mineras con mayor accidentabilidad en zonas occidentales que desplazan el promedio.

7.3 Cobertura Geográfica

7.3.1 Extensión del Área de Análisis

  • Longitud mínima: -124.1° (extremo occidental)
  • Longitud máxima: -69.01° (extremo oriental)
  • Rango total: 55.1° de extensión longitudinal

Este rango amplio indica una cobertura geográfica extensa que abarca múltiples regiones y posiblemente estados o provincias.

7.4 Concentración Espacial y Zonas Críticas

7.4.1 Análisis por Regiones

El análisis por cuartiles geográficos revela que la región ** Este ** concentra la mayor cantidad de accidentes con ** 1240 casos ( 25.1 %)**. Esta concentración espacial sugiere:

  • Distribución relativamente uniforme: Los accidentes no se concentran excesivamente en una sola región
  • Factores de riesgo distribuidos a lo largo del área de estudio

7.4.2 Identificación de Clusters Geográficos

El intervalo de longitud con mayor concentración de accidentes es la Clase 9 ( -90.2 ° a -85.96 °) con ** 995 casos ( 20.1 %)**.

Esta zona constituye un cluster geográfico crítico que requiere:

  • Análisis detallado de operaciones mineras en este rango
  • Inspecciones prioritarias de seguridad
  • Evaluación de factores geológicos o ambientales locales
  • Capacitación regional especializada

7.5 Implicaciones para la Gestión de Seguridad Minera

7.5.1 1. Estrategia Regional Diferenciada

La distribución geográfica de accidentes justifica un enfoque regional en la gestión de seguridad:

7.5.1.1 Zonas de Alta Prioridad

Las siguientes zonas requieren atención prioritaria inmediata:

  • Zona 9 : -90.2 ° a -85.96 ° ( 995 accidentes, 20.1 %)
  • Zona 10 : -85.96 ° a -81.72 ° ( 889 accidentes, 18 %)
  • Zona 11 : -81.72 ° a -77.48 ° ( 934 accidentes, 18.9 %)

7.5.1.2 Acciones Recomendadas por Región

  1. Regiones de alta incidencia:
    • Auditorías de seguridad trimestrales
    • Presencia permanente de supervisores especializados
    • Programas intensivos de capacitación
    • Inversión prioritaria en tecnología de seguridad
  2. Regiones de incidencia media:
    • Auditorías semestrales
    • Monitoreo regular de indicadores
    • Capacitación estándar con refuerzos periódicos
  3. Regiones de baja incidencia:
    • Mantener mejores prácticas actuales
    • Documentar y replicar factores de éxito
    • Auditorías anuales de verificación

7.5.2 2. Análisis de Factores Geográficos

La ubicación geográfica puede correlacionar con:

7.5.2.1 Factores Geológicos

  • Tipo de mineralización predominante en cada zona
  • Estabilidad geológica del terreno
  • Profundidad de operaciones típica por región
  • Presencia de agua subterránea o riesgos específicos

7.5.2.2 Factores Ambientales

  • Condiciones climáticas regionales (temperatura, precipitación)
  • Altitud y sus efectos en trabajadores y equipos
  • Accesibilidad y tiempos de respuesta a emergencias

7.5.2.3 Factores Operacionales

  • Tamaño y tipo de operaciones mineras por región
  • Tecnología empleada (artesanal vs. industrial)
  • Regulación local y cumplimiento normativo
  • Disponibilidad de personal calificado

Recomendación crítica: Realizar un estudio correlacional entre LONGITUDE y variables como ACCIDENT_TYPE, NATURE_INJURY, y MINE_EXPER para identificar patrones regionales específicos.

7.5.3 3. Optimización de Recursos

La información geográfica permite:

7.5.3.1 Distribución Estratégica de Recursos

  • Ubicación de centros de respuesta: Establecer bases en las zonas de mayor incidencia (alrededor de -109.33 °)
  • Asignación de inspectores: Distribuir personal proporcionalmente a la concentración de accidentes
  • Inventario de equipos de emergencia: Posicionar recursos cerca de clusters críticos
  • Centros de capacitación regionales: Establecer en zonas de fácil acceso a operaciones de alta incidencia

7.5.3.2 Planificación Logística

  • Tiempos de respuesta optimizados mediante ubicación estratégica
  • Costos reducidos al focalizar recursos en zonas críticas
  • Coordinación regional entre operaciones cercanas
  • Economías de escala en capacitación y servicios compartidos

7.5.4 4. Monitoreo y Sistema de Alerta

Implementar un sistema de vigilancia geográfica:

7.5.4.1 Indicadores Espaciales

  • Densidad de accidentes por grado de longitud
  • Tendencias temporales por región
  • Aparición de nuevos clusters
  • Migración de zonas críticas

7.5.4.2 Alertas Automatizadas

  • Activación cuando una zona supera P75 histórico de accidentabilidad
  • Notificación de cambios súbitos en patrones espaciales
  • Comparación con benchmarks regionales

7.5.5 5. Colaboración Inter-Regional

La distribución geográfica facilita:

  • Redes de intercambio de mejores prácticas entre regiones
  • Protocolos de asistencia mutua en emergencias mayores
  • Estudios comparativos entre regiones de alta y baja incidencia
  • Economías de escala en capacitación y adquisición de equipos

7.6 Reflexión Final

El análisis geográfico de accidentes mineros revela que la ubicación importa. Los accidentes no se distribuyen uniformemente en el espacio, sino que muestran patrones que reflejan la interacción compleja de factores geológicos, ambientales, tecnológicos y humanos específicos de cada región.

7.6.1 Lecciones Clave

  1. Concentración espacial: 25.1% de accidentes en la región Este demuestra la necesidad de estrategias focalizadas

  2. Diversidad regional: Las diferencias entre zonas sugieren que no existe una solución única para toda el área de estudio

  3. Oportunidades de aprendizaje: Las regiones de baja incidencia guardan lecciones valiosas que pueden replicarse

  4. Eficiencia de recursos: La focalización geográfica puede multiplicar el impacto de inversiones en seguridad

7.6.2 Visión Estratégica

La gestión moderna de seguridad minera debe evolucionar hacia un modelo basado en inteligencia geoespacial:

  • Prevención predictiva usando análisis espacial avanzado
  • Respuesta optimizada mediante ubicación estratégica de recursos
  • Aprendizaje regional con intercambio sistemático de experiencias
  • Inversión focalizada en zonas de mayor necesidad y oportunidad

El mapa de accidentabilidad no es estático. Requiere actualización continua, análisis dinámico y adaptación flexible de estrategias según evolucionen los patrones espaciales.


Universidad Central del Ecuador - FIGEMPA
Carrera de Ingeniería en Minas
Análisis Geoespacial: LONGITUDE
Diciembre 2024

“La seguridad minera tiene coordenadas: entender dónde ocurren los accidentes es el primer paso para prevenirlos”