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_category

3. CONTEO

3.1 Consolidación de categorías

datos <- datos %>%
  mutate(
    landslide_category_consol = case_when(
      landslide_category %in% c("debris_flow", "earth_flow", "lahar") ~
        "Flujos de suelo y rocas",

      landslide_category %in% c("creep", "topple", "translational_slide") ~
        "Deformación lenta del terreno",

      landslide_category %in% c("complex", "other", "unknown") ~
        "Movimientos complejos o no definidos",

      landslide_category %in% c("riverbank_collapse", "snow_avalanche") ~
        "Otros movimientos poco comunes",

      landslide_category == "landslide" ~
        "Deslizamiento de tierra",

      landslide_category == "mudslide" ~
        "Deslizamiento de lodo",

      landslide_category == "rock_fall" ~
        "Caída de rocas",

      TRUE ~ landslide_category
    )
  )

3.2 Conteo de datos

variable <- datos$landslide_category_consol

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

N <- length(variable)

3.3 Cálculo de frecuencias

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

TDFMovimientos_total <- TDFMovimientos %>%
  add_row(
    landslide_category_consol = "TOTAL",
    ni = sum(TDFMovimientos$ni),
    hi = round(sum(TDFMovimientos$hi), 2),
    hi_porcentaje = round(sum(TDFMovimientos$hi_porcentaje), 2)
  )

4. TABLA DE FRECUENCIAS

4.1 Tabla de frecuencias

# Tabla de frecuencias 

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

# Agregar fila TOTAL

TDFMovimientos_total <- TDFMovimientos %>%
  add_row(
    landslide_category_consol = "TOTAL",
    ni = sum(TDFMovimientos$ni),
    hi = 1,
    hi_porcentaje = 100
  )

4.2 Presentación de la tabla

tabla_presentacion <- TDFMovimientos_total %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 1**"),
    subtitle = md("Distribución de frecuencias de las categorías de deslizamientos a nivel mundial")
  ) %>%
  cols_label(
    landslide_category_consol = "Tipo de movimiento en masa",
    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_category_consol == "TOTAL"
    )
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1 – Carrera de Geología")
  )

tabla_presentacion
Tabla N° 1
Distribución de frecuencias de las categorías de deslizamientos a nivel mundial
Tipo de movimiento en masa Frecuencia absoluta (ni) Frecuencia relativa Frecuencia relativa (%)
Caída de rocas 671 0.0608 6.08
Deformación lenta del terreno 15 0.0014 0.14
Deslizamiento de lodo 2100 0.1904 19.04
Deslizamiento de tierra 7648 0.6933 69.33
Flujos de suelo y rocas 208 0.0189 1.89
Movimientos complejos o no definidos 338 0.0306 3.06
Otros movimientos poco comunes 52 0.0047 0.47
TOTAL 11032 1.0000 100.00
Autor: Grupo 1 – Carrera de Geología
# Tabla para los gráficos (sin la fila TOTAL)

tabla_graficos <- TDFMovimientos

5. GRÁFICAS

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

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

max_ni <- max(tabla_graficos$ni)

pos_x <- barplot(
  tabla_graficos$ni,
  names.arg = tabla_graficos$landslide_category_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 \nla frecuencia 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 Diagrama de barras extendido de la Frecuencia absoluta (ni)

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

N_total <- sum(tabla_graficos$ni)

pos_x <- barplot(
  tabla_graficos$ni,
  names.arg = tabla_graficos$landslide_category_consol,
  col = "steelblue",
  border = "black",
  space = 0.2,
  las = 2,
  ylim = c(0, N_total),
  yaxt = "n",
  main = "Gráfica 2: Diagrama de barras por defecto de \nla frecuencia 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 Diagrama de barras por defecto de la Frecuencia relativa (hi)

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

pos_x <- barplot(
  tabla_graficos$hi_porcentaje,
  names.arg = tabla_graficos$landslide_category_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.70
)

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 Diagrama de barras extendido de la Frecuencia relativa (hi)

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

pos_x <- barplot(
  tabla_graficos$hi_porcentaje,
  names.arg = tabla_graficos$landslide_category_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, 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.8
)


5.5 Diagrama circular

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

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

pie(
  tabla_graficos$hi_porcentaje,
  labels = NA,
  col = colores,
  radius = 0.80,
  main = "Gráfica 5\nDistribución porcentual de las categorías de deslizamientos"
)

legend(
  x = 0.80,
  y = 0,
  legend = paste0(
    tabla_graficos$landslide_category_consol,
    " (", round(tabla_graficos$hi_porcentaje, 2), "%)"
  ),
  fill = colores,
  cex = 0.70,
  bty = "n"
)

par(xpd = FALSE)

6. INDICADORES

6.1 Indicadores estadísticos

# Moda

indice_moda <- which.max(tabla_graficos$ni)

moda_categoria <- tabla_graficos$landslide_category_consol[indice_moda]

moda_ni <- tabla_graficos$ni[indice_moda]

moda_hi <- tabla_graficos$hi_porcentaje[indice_moda]

# Indicadores generales

n <- sum(tabla_graficos$ni)

numero_categorias <- nrow(tabla_graficos)

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

tabla_indicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N° 2**"),
    subtitle = md("Indicadores estadísticos de la variable Categoría de deslizamiento")
  ) %>%
  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 de la variable Categoría de deslizamiento
Indicador Resultado
Tamaño de la muestra 11032
Número de categorías 7
Moda Deslizamiento de tierra
Frecuencia absoluta de la moda 7648
Frecuencia relativa de la moda (%) 69.33
Categoría menos frecuente Deformación lenta del terreno
Autor: Grupo 1 – Carrera de Geología

7. CONCLUSIÓN

Debido a la naturaleza cualitativa nominal de la variable, se concluyó que el único indicador de tendencia central aplicable es la moda. El análisis estadístico de la variable cualitativa nominal Categoría de deslizamiento permitió identificar la distribución de los diferentes tipos de movimientos en masa registrados a nivel mundial. Los resultados muestran que la categoría Deslizamiento de tierra constituye la moda de la distribución, con una frecuencia absoluta de 7648 registros y una frecuencia relativa de 69.33 %, lo que evidencia que es el tipo de movimiento en masa predominante dentro del conjunto de datos analizado. En contraste, las demás categorías presentan una participación considerablemente menor, lo que indica una distribución desigual de las ocurrencias.