1. CARGA Y PREPARACIÓN DE LOS DATOS

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readxl)
library(gt)

# Lectura del archivo Excel (previamente cargado al proyecto)

datos <- read_excel("datos_nuevoartes.xlsx")

2. CONSOLIDACIÓN DE DESENCADENANTES

datos <- datos %>%
mutate(
landslide_trigger_consol = case_when(
landslide_trigger %in% c("downpour", "rain", "continuous_rain", "monsoon") ~
"Precipitación",
landslide_trigger %in% c("snowfall_snowmelt", "freeze_thaw") ~
"Fenómenos de nieve/hielo",
landslide_trigger %in% c("earthquake", "volcano") ~
"Actividad geológica",
landslide_trigger %in% c("mining", "construction", "vibration", "leaking_pipe") ~
"Desencadenante humano",
landslide_trigger %in% c("flooding", "dam_embankment_collapse") ~
"Estructuras",
landslide_trigger %in% c("unknown", "no_apparent_trigger", "other") ~
"Otros desencadenantes",
TRUE ~ NA_character_
)
)

3. TABLA DE DISTRIBUCIÓN DE FRECUENCIAS

3.1. Cálculo de frecuencias

TDFTrigger <- datos %>%
filter(!is.na(landslide_trigger_consol)) %>%
count(landslide_trigger_consol, name = "ni") %>%
mutate(
hi = (ni / sum(ni)) * 100
)

3.2. Tabla de frecuencias (Salida básica)

TDFTrigger_total <- TDFTrigger %>%
add_row(
landslide_trigger_consol = "Total",
ni = sum(TDFTrigger$ni),
hi = sum(TDFTrigger$hi)
)

TDFTrigger_total
## # A tibble: 7 × 3
##   landslide_trigger_consol    ni      hi
##   <chr>                    <int>   <dbl>
## 1 Actividad geológica         90   0.861
## 2 Desencadenante humano      186   1.78 
## 3 Estructuras                 87   0.833
## 4 Fenómenos de nieve/hielo   176   1.68 
## 5 Otros desencadenantes     1761  16.9  
## 6 Precipitación             8149  78.0  
## 7 Total                    10449 100

3.3 Presentación de la tabla

tabla_presentacion <- TDFTrigger_total %>%
mutate(
hi = round(hi, 2)
)

tabla_presentacion %>%
gt() %>%
tab_header(
title = md("**Tabla Nro. 1**"),
subtitle = md("Distribución de frecuencias de los desencadenantes de movimientos en masa")
) %>%
cols_label(
landslide_trigger_consol = "Tipo de desencadenante",
ni = "Frecuencia absoluta (ni)",
hi = "Frecuencia relativa (%)"
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = landslide_trigger_consol == "Total")
)
Tabla Nro. 1
Distribución de frecuencias de los desencadenantes de movimientos en masa
Tipo de desencadenante Frecuencia absoluta (ni) Frecuencia relativa (%)
Actividad geológica 90 0.86
Desencadenante humano 186 1.78
Estructuras 87 0.83
Fenómenos de nieve/hielo 176 1.68
Otros desencadenantes 1761 16.85
Precipitación 8149 77.99
Total 10449 100.00
Elaborado por: Grupo 2 – Carrera de Geología

4. DIAGRAMAS DE BARRAS

4.1. Frecuencia absoluta

par(mar = c(12, 5, 4, 2))  # margen inferior grande

barplot(
  tabla_presentacion$ni[-nrow(tabla_presentacion)],
  names.arg = tabla_presentacion$landslide_trigger_consol[-nrow(tabla_presentacion)],
  las = 2,                # etiquetas verticales
  col = "steelblue",
  main = "Gráfica 1: Frecuencia absoluta de los desencadenantes",
  ylab = "Frecuencia absoluta (ni)",
  xlab = "",
  cex.names = 0.75,       # tamaño del texto
  cex.axis = 0.9
)

4.2. Frecuencia Relativa

par(mar = c(12, 5, 4, 2))

barplot(
  tabla_presentacion$hi[-nrow(tabla_presentacion)],
  names.arg = tabla_presentacion$landslide_trigger_consol[-nrow(tabla_presentacion)],
  las = 2,
  col = "skyblue",
  main = "Gráfica 2: Frecuencia relativa de los desencadenantes",
  ylab = "Frecuencia relativa (%)",
  xlab = "",
  ylim = c(0, 100),
  cex.names = 0.75,
  cex.axis = 0.9
)

5. DIAGRAMA CIRCULAR

par(mar = c(5, 4, 4, 10))
par(xpd = TRUE)

hi_red <- round(
tabla_presentacion$hi[-nrow(tabla_presentacion)], 2
)

colores_pie <- c(
"#1f78b4", "#33a02c", "#e31a1c",
"#ff7f00", "#6a3d9a", "#b15928"
)

pie(
hi_red,
labels = paste0(hi_red, " %"),
main = "Gráfica 3: Distribución porcentual de los desencadenantes",
col = colores_pie
)

legend(
x = 1.3, y = 0,
legend = tabla_presentacion$landslide_trigger_consol[-nrow(tabla_presentacion)],
fill = colores_pie,
cex = 0.8,
bty = "n"
)

par(xpd = FALSE)

6. INDICADORES ESTADÍSTICOS

6.1. Moda

indice_moda <- which.max(TDFTrigger$ni)

moda_categoria <- TDFTrigger$landslide_trigger_consol[indice_moda]
moda_ni <- TDFTrigger$ni[indice_moda]
moda_hi <- round(TDFTrigger$hi[indice_moda], 2)

cat(
"La moda de la variable Desencadenante es:",
moda_categoria,
"con una frecuencia absoluta de",
moda_ni,
"eventos (",
moda_hi,
"% )."
)
## La moda de la variable Desencadenante es: Precipitación con una frecuencia absoluta de 8149 eventos ( 77.99 % ).

6.2. Tabla resumen de indicadores

tabla_resumen <- data.frame(
Variable = "Desencadenantes de movimientos en masa",
Indicador = "Moda",
Resultado = paste0(
moda_categoria, " (",
moda_ni, " eventos, ",
moda_hi, "%)"
)
)

tabla_resumen %>%
gt() %>%
tab_header(
title = md("**Tabla Nro. 2**"),
subtitle = md("Resumen de indicadores estadísticos de la variable nominal")
) %>%
cols_label(
Variable = "Variable analizada",
Indicador = "Indicador estadístico",
Resultado = "Resultado"
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body()
)
Tabla Nro. 2
Resumen de indicadores estadísticos de la variable nominal
Variable analizada Indicador estadístico Resultado
Desencadenantes de movimientos en masa Moda Precipitación (8149 eventos, 77.99%)
Elaborado por: Grupo 2 – Carrera de Geología

7. CONCLUSIÓN

El análisis estadístico de los desencadenantes de los movimientos en masa, al tratarse de una variable cualitativa nominal, permitió identificar que el único indicador de tendencia central aplicable es la moda. Los resultados evidencian que la precipitación constituye el desencadenante más frecuente, lo que resalta su papel dominante en la ocurrencia de estos eventos dentro del conjunto de datos analizado.