Carga de datos y librerías Extraer la variable Conclusión

1. CARGA DE DATOS Y LIBRERÍAS

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)

datos <- read_excel("datos_deslizamientos.xlsx")

2. EXTRAER LA VARIABLE

variable <- datos$landslide_trigger

3. CONTEO

3.1 Consolidación de categorías

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.2 Conteo de datos

variable <- datos$landslide_trigger_consol

variable <- variable[!is.na(variable)]

N <- length(variable)

3.3 Cálculo de frecuencias

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

TDFTrigger_total <- TDFTrigger %>%
  add_row(
    landslide_trigger_consol = "TOTAL",
    ni = sum(TDFTrigger$ni),
    hi = 1,
    hi_porcentaje = 100
  )

4. TABLA DE FRECUENCIAS

4.1 Tabla de frecuencias

tabla_frecuencias <- TDFTrigger_total %>%
  mutate(
    hi = round(hi, 4),
    hi_porcentaje = round(hi_porcentaje, 2)
  )

tabla_frecuencias
## # A tibble: 7 × 4
##   landslide_trigger_consol    ni     hi hi_porcentaje
##   <chr>                    <int>  <dbl>         <dbl>
## 1 Actividad geológica         90 0.0086          0.86
## 2 Desencadenante humano      186 0.0178          1.78
## 3 Estructuras                 87 0.0083          0.83
## 4 Fenómenos de nieve/hielo   176 0.0168          1.68
## 5 Otros desencadenantes     1761 0.168          16.8 
## 6 Precipitación             8149 0.780          78.0 
## 7 TOTAL                    10449 1             100

4.2 Presentación de la tabla

tabla_frecuencias %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nro. 1**"),
    subtitle = md("Distribución de frecuencias de los desencadenantes de deslizamientos a nivel mundial")
  ) %>%
  cols_label(
    landslide_trigger_consol = "Tipo de desencadenante",
    ni = "Frecuencia absoluta (ni)",
    hi = "Frecuencia relativa",
    hi_porcentaje = "Frecuencia relativa (%)"
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo 1 – 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 deslizamientos a nivel mundial
Tipo de desencadenante Frecuencia absoluta (ni) Frecuencia relativa Frecuencia relativa (%)
Actividad geológica 90 0.0086 0.86
Desencadenante humano 186 0.0178 1.78
Estructuras 87 0.0083 0.83
Fenómenos de nieve/hielo 176 0.0168 1.68
Otros desencadenantes 1761 0.1685 16.85
Precipitación 8149 0.7799 77.99
TOTAL 10449 1.0000 100.00
Elaborado por: Grupo 1 – Carrera de Geología
tabla_graficos <- TDFTrigger

5. GRÁFICAS

5.1 Diagrama de barras por defecto de la Frecuencia absoluta (ni)

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

max_ni <- max(tabla_graficos$ni)

pos_x <- barplot(
  tabla_graficos$ni,
  names.arg = tabla_graficos$landslide_trigger_consol,
  col = "steelblue",
  border = "black",
  space = 0.2,
  las = 2,
  ylim = c(0, max_ni),
  yaxt = "n",
  main = "Gráfica 1: Diagrama de barras por defecto de la \nFrecuencia absoluta (ni)",
  xlab = "",
  ylab = "Frecuencia absoluta (ni)",
  cex.names = 0.75
)

ticks_y <- round(
  seq(0, max_ni, length.out = 5),
  0
)

axis(
  side = 2,
  at = ticks_y,
  labels = ticks_y,
  las = 1
)

text(
  x = pos_x,
  y = tabla_graficos$ni,
  labels = tabla_graficos$ni,
  pos = 3,
  font = 2,
  cex = 0.8
)

5.2 Histograma extendido de la Frecuencia absoluta (ni)

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

N_total <- sum(tabla_graficos$ni)

pos_x <- barplot(
  tabla_graficos$ni,
  names.arg = tabla_graficos$landslide_trigger_consol,
  col = "steelblue",
  border = "black",
  space = 0.2,
  las = 2,
  ylim = c(0, N_total),
  yaxt = "n",
  main = "Gráfica 2: Diagrama de barras extendido de la \nFrecuencia absoluta (ni)",
  xlab = "",
  ylab = "Frecuencia absoluta (ni)",
  cex.names = 0.75
)

ticks_y <- round(
  seq(0, N_total, length.out = 6),
  0
)

axis(
  side = 2,
  at = ticks_y,
  labels = ticks_y,
  las = 1
)

abline(
  h = N_total,
  col = "red",
  lty = 2,
  lwd = 2
)

text(
  x = pos_x,
  y = tabla_graficos$ni,
  labels = tabla_graficos$ni,
  pos = 3,
  font = 2,
  cex = 0.8
)

5.3 Histograma por defecto de la Frecuencia relativa (hi)

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

max_hi <- max(tabla_graficos$hi_porcentaje)

pos_x <- barplot(
  tabla_graficos$hi_porcentaje,
  names.arg = tabla_graficos$landslide_trigger_consol,
  col = "skyblue",
  border = "black",
  space = 0.2,
  las = 2,
  ylim = c(0, 70),
  yaxt = "n",
  main = "Gráfica 3: Diagrama de barras por defecto de \nla Frecuencia relativa (hi)",
  xlab = "",
  ylab = "Frecuencia relativa (%)",
  cex.names = 0.75
)

ticks_y <- seq(0, 70, by = 10)

axis(
  side = 2,
  at = ticks_y,
  labels = ticks_y,
  las = 1
)

text(
  x = pos_x,
  y = tabla_graficos$hi_porcentaje,
  labels = round(tabla_graficos$hi_porcentaje,2),
  pos = 3,
  font = 2,
  cex = 0.8
)

5.4 Histograma extendido de la Frecuencia relativa (hi)

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

pos_x <- barplot(
  tabla_graficos$hi_porcentaje,
  names.arg = tabla_graficos$landslide_trigger_consol,
  col = "skyblue",
  border = "black",
  space = 0.2,
  las = 2,
  ylim = c(0,100),
  yaxt = "n",
  main = "Gráfica 4: Diagrama de barras extendido de \nla Frecuencia relativa (hi)",
  xlab = "",
  ylab = "Frecuencia relativa (%)",
  cex.names = 0.75
)

ticks_y <- seq(0,100,20)

axis(
  side = 2,
  at = ticks_y,
  labels = ticks_y,
  las = 1
)

abline(
  h = 100,
  col = "red",
  lty = 2,
  lwd = 2
)

text(
  x = pos_x,
  y = tabla_graficos$hi_porcentaje,
  labels = round(tabla_graficos$hi_porcentaje,2),
  pos = 3,
  font = 2,
  cex = 0.8
)

5.5 Diagrama circular

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

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

pie(
  tabla_graficos$hi_porcentaje,
  labels = NA,
  col = colores,
  radius = 0.90,
  main = "Gráfica 5: Distribución porcentual de los desencadenantes\n de deslizamientos(diagrama circular)"
)

legend(
  x = 1.15,
  y = 0,
  legend = tabla_graficos$landslide_trigger_consol,
  fill = colores,
  bty = "n",
  cex = 0.80
)

par(xpd = FALSE)

6. INDICADORES

6.1 Cálculo de indicadores

indice_moda <- which.max(tabla_graficos$ni)

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

n <- sum(tabla_graficos$ni)

numero_categorias <- nrow(tabla_graficos)

categoria_menos_frecuente <-
  tabla_graficos$landslide_trigger_consol[
    which.min(tabla_graficos$ni)
  ]

6.2 Tabla resumen de indicadores

tabla_indicadores <- data.frame(

  Indicador = c(
    "Tamaño de la muestra",
    "Número de categorías",
    "Moda",
    "Frecuencia absoluta de la moda",
    "Frecuencia relativa de la moda (%)",
    "Categoría menos frecuente"
  ),

  Resultado = c(
    n,
    numero_categorias,
    moda_categoria,
    moda_ni,
    moda_hi,
    categoria_menos_frecuente
  )

)

tabla_indicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nro. 2**"),
    subtitle = md("Indicadores estadísticos de los desencadenantes de deslizamientos")
  ) %>%
  cols_label(
    Indicador = "Indicador",
    Resultado = "Resultado"
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo 1 – Carrera de Geología")
  )
Tabla Nro. 2
Indicadores estadísticos de los desencadenantes de deslizamientos
Indicador Resultado
Tamaño de la muestra 10449
Número de categorías 6
Moda Precipitación
Frecuencia absoluta de la moda 8149
Frecuencia relativa de la moda (%) 77.99
Categoría menos frecuente Estructuras
Elaborado por: Grupo 1 – Carrera de Geología

7. CONCLUSIÓN

El análisis estadístico de la variable desencadenante de deslizamientos, al tratarse de una variable cualitativa nominal, permitió identificar que el único indicador de tendencia central aplicable es la moda. Del total de 10449 eventos analizados, agrupados en 6 categorías, el desencadenante más frecuente corresponde a Precipitación, con 8149 registros, lo que representa el 77.99 % del total de observaciones. Estos resultados evidencian que este tipo de desencadenante constituye el principal factor asociado a la ocurrencia de deslizamientos dentro del conjunto de datos analizado, aportando una referencia para comprender la distribución de los factores detonantes a escala mundial.