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_setting

3. CONTEO

3.1 Consolidación de categorías

datos <- datos %>%
  mutate(
    landslide_setting_consol = case_when(

      landslide_setting == "above_coast" ~ "Above coast",

      landslide_setting == "above_river" ~ "Above river",

      landslide_setting == "above_road" ~ "Above road",

      landslide_setting == "below_road" ~ "Below road",

      landslide_setting == "bluff" ~ "Bluff",

      landslide_setting == "burned_area" ~ "Burned area",

      landslide_setting == "deforested_slope" ~ "Deforested slope",

      landslide_setting == "engineered_slope" ~ "Engineered slope",

      landslide_setting == "mine" ~ "Mine",

      landslide_setting == "natural_slope" ~ "Natural slope",

      landslide_setting == "retaining_wall" ~ "Retaining wall",

      landslide_setting == "urban" ~ "Urban",

      landslide_setting %in% c("unknown", "Unknown", "", "NA") ~ NA_character_,

      TRUE ~ NA_character_

    )
  )

3.2 Conteo de datos

variable <- datos$landslide_setting_consol

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

N <- length(variable)

3.3 Cálculo de frecuencias

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

TDFSetting_total <- TDFSetting %>%
  add_row(
    landslide_setting_consol = "TOTAL",
    ni = sum(TDFSetting$ni),
    hi = round(sum(TDFSetting$hi), 2),
    hi_porcentaje = round(sum(TDFSetting$hi_porcentaje), 2)
  )

4. TABLA DE FRECUENCIAS

4.1 Tabla de frecuencias

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

TDFSetting_total <- TDFSetting %>%
  add_row(
    landslide_setting_consol = "TOTAL",
    ni = sum(TDFSetting$ni),
    hi = 1,
    hi_porcentaje = 100
  )

4.2 Presentación de la tabla

tabla_presentacion <- TDFSetting_total %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 1**"),
    subtitle = md("Distribución de frecuencias del entorno de deslizamiento")
  ) %>%
  cols_label(
    landslide_setting_consol = "Entorno de deslizamiento",
    ni = "Frecuencia absoluta (ni)",
    hi = "Frecuencia relativa",
    hi_porcentaje = "Frecuencia relativa (%)"
  ) %>%
  fmt_number(
    columns = hi,
    decimals = 4
  ) %>%
  fmt_number(
    columns = hi_porcentaje,
    decimals = 2
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = landslide_setting_consol == "TOTAL"
    )
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1 – Carrera de Geología")
  )

tabla_presentacion
Tabla N° 1
Distribución de frecuencias del entorno de deslizamiento
Entorno de deslizamiento Frecuencia absoluta (ni) Frecuencia relativa Frecuencia relativa (%)
Above coast 20 0.0043 0.43
Above river 149 0.0322 3.22
Above road 3104 0.6714 67.14
Below road 199 0.0430 4.30
Bluff 48 0.0104 1.04
Burned area 28 0.0061 0.61
Deforested slope 53 0.0115 1.15
Engineered slope 22 0.0048 0.48
Mine 157 0.0340 3.40
Natural slope 531 0.1149 11.49
Retaining wall 48 0.0104 1.04
Urban 264 0.0571 5.71
TOTAL 4623 1.0000 100.00
Autor: Grupo 1 – Carrera de Geología
tabla_graficos <- TDFSetting

5. GRÁFICAS

5.1 Distribución local del entorno de deslizamiento a nivel mundial

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

max_ni <- max(tabla_graficos$ni)

pos_x <- barplot(
  tabla_graficos$ni,
  names.arg = tabla_graficos$landslide_setting_consol,
  col = "steelblue",
  border = "black",
  space = 0.2,
  las = 2,
  ylim = c(0, max_ni + max_ni*0.10),
  yaxt = "n",
  main = "Gráfica 1: Distribución local del entorno de\ndeslizamiento a nivel mundial",
  xlab = "",
  ylab = "Cantidad",
  cex.names = 0.65
)

mtext("Entorno de deslizamiento", side = 1, line = 6, cex = 1)

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.6
)

5.2 Distribución global del entorno de deslizamiento a nivel mundial

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

N_total <- sum(tabla_graficos$ni)

pos_x <- barplot(
  tabla_graficos$ni,
  names.arg = tabla_graficos$landslide_setting_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 entorno de\ndeslizamiento a nivel mundial",
  xlab = "",
  ylab = "Cantidad",
  cex.names = 0.65
)

mtext("Entorno de deslizamiento", side = 1, line = 5, cex = 1)

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.6
)


5.3 Distribución local en porcentaje del entorno de deslizamiento a nivel mundial

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

pos_x <- barplot(
  tabla_graficos$hi_porcentaje,
  names.arg = tabla_graficos$landslide_setting_consol,
  col = "skyblue",
  border = "black",
  space = 0.2,
  las = 2,
  ylim = c(0, max(tabla_graficos$hi_porcentaje)),
  yaxt = "n",
  main = "Gráfica 3: Distribución local en porcentaje del\nentorno de deslizamiento a nivel mundial",
  xlab = "",
  ylab = "Porcentaje (%)",
  cex.names = 0.65
)

mtext("Entorno de deslizamiento", side = 1, line = 5, cex = 1)

ticks_y <- pretty(
  c(0, max(tabla_graficos$hi_porcentaje)),
  n = 6
)

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.6
)


5.4 Distribución global en porcentaje del entorno de deslizamiento a nivel mundial

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

pos_x <- barplot(
  tabla_graficos$hi_porcentaje,
  names.arg = tabla_graficos$landslide_setting_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\nentorno de deslizamiento a nivel mundial",
  xlab = "",
  ylab = "Frecuencia relativa (%)",
  cex.names = 0.65
)

mtext("Entorno de deslizamiento", side = 1, line = 5, cex = 1)

ticks_y <- seq(0, 100, by = 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.6
)


5.5 Diagrama circular

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

colores <- rainbow(nrow(tabla_graficos))

pie(
  tabla_graficos$hi_porcentaje,
  labels = NA,
  col = colores,
  radius = 0.80,
  main = "Gráfica 5. Distribución porcentual del entorno de\ndeslizamiento a nivel mundial"
)

legend(
  x = 0.85,
  y = 0,
  legend = paste0(
    tabla_graficos$landslide_setting_consol,
    " (", round(tabla_graficos$hi_porcentaje,2), "%)"
  ),
  fill = colores,
  cex = 0.45,
  bty = "n"
)

par(xpd = FALSE)

6. INDICADORES ESTADÍSTICOS

6.1 Indicadores estadísticos

indice_moda <- which.max(tabla_graficos$ni)

moda_setting <- tabla_graficos$landslide_setting_consol[indice_moda]

moda_ni <- tabla_graficos$ni[indice_moda]

moda_hi <- tabla_graficos$hi_porcentaje[indice_moda]

n <- sum(tabla_graficos$ni)

numero_categorias <- nrow(tabla_graficos)

categoria_menos_frecuente <- tabla_graficos$landslide_setting_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_setting,
    moda_ni,
    round(moda_hi, 2),
    categoria_menos_frecuente
  )
)

tabla_indicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 2**"),
    subtitle = md("Indicadores estadísticos del entorno de deslizamiento a nivel mundial")
  ) %>%
  cols_label(
    Indicador = "Indicador",
    Resultado = "Resultado"
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1 – Carrera de Geología")
  )
Tabla N° 2
Indicadores estadísticos del entorno de deslizamiento a nivel mundial
Indicador Resultado
Tamaño de la muestra 4623
Número de categorías 12
Moda Above road
Frecuencia absoluta de la moda 3104
Frecuencia relativa de la moda (%) 67.14
Categoría menos frecuente Above coast
Autor: Grupo 1 – Carrera de Geología

7. CONCLUSIÓN

El valor más frecuente de la variable entorno de deslizamiento es Above road.