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 Distribución local del desencadenante de deslizamientos a nivel mundial

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: Distribución local del desencadenante de\ndeslizamientos a nivel mundial",
  xlab = "",
  ylab = "Cantidad",
  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 Distribución global del desencadenante de deslizamientos a nivel mundial

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: Distribución global del desencadenante de\ndeslizamientos a nivel mundial",
  xlab = "",
  ylab = "Cantidad",
  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 Distribución local en porcentaje del desencadenante de deslizamientos a nivel mundial

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: Distribución local en porcentaje del desencadenante\nde deslizamientos a nivel mundial",
  xlab = "",
  ylab = "Porcentaje (%)",
  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 Distribución global en porcentaje del desencadenante de deslizamientos a nivel mundial

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: Distribución global en porcentaje del desencadenante\n de deslizamientos a nivel mundial",
  xlab = "",
  ylab = "Porcentaje (%)",
  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 a nivel mundial"
)

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 valor más frecuente de la variable desencadenate de deslizamiento es precipitación.