# ============================================================
# LIBRERÍAS
# ============================================================
library(dplyr)
## 
## Adjuntando el paquete: '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)

# ============================================================
# CARGA DE DATOS
# ============================================================
datos <- read_excel("C:/Users/USUARIO/Downloads/datos_nuevoartes.xlsx")

# ============================================================
# 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
    )
  )

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

# ============================================================
# VARIABLES AUXILIARES
# ============================================================
categorias <- TDFMovimientos$landslide_category_consol
ni <- TDFMovimientos$ni
hi <- TDFMovimientos$hi

# ============================================================
# DIAGRAMAS DE BARRAS
# ============================================================

# 1. FRECUENCIA ABSOLUTA LOCAL (ni)
barplot(
  ni,
  main = "Gráfica Nº1: Frecuencia de los tipos de movimientos en masa (Local)",
  xlab = "Tipo de movimiento en masa",
  ylab = "Cantidad",
  col = "skyblue",
  names.arg = categorias,
  las = 2
)

# 2. FRECUENCIA ABSOLUTA GLOBAL (ni)
barplot(
  ni,
  main = "Gráfica Nº2: Frecuencia de los tipos de movimientos en masa (Global)",
  xlab = "Tipo de movimiento en masa",
  ylab = "Cantidad",
  col = "skyblue",
  names.arg = categorias,
  las = 2,
  ylim = c(0, max(ni) * 1.2)
)

# 3. FRECUENCIA RELATIVA LOCAL (hi)
barplot(
  hi,
  main = "Gráfica Nº3: Porcentaje de los tipos de movimientos en masa (Local)",
  xlab = "Tipo de movimiento en masa",
  ylab = "Porcentaje (%)",
  col = "steelblue",
  names.arg = categorias,
  las = 2
)

# 4. FRECUENCIA RELATIVA GLOBAL (hi)
barplot(
  hi,
  main = "Gráfica Nº4: Porcentaje de los tipos de movimientos en masa (Global)",
  xlab = "Tipo de movimiento en masa",
  ylab = "Porcentaje (%)",
  col = "steelblue",
  names.arg = categorias,
  las = 2,
  ylim = c(0, 100)
)

# ============================================================
# DIAGRAMA CIRCULAR
# ============================================================

# Márgenes grandes para leyenda externa
par(mar = c(5, 4, 4, 10))
par(xpd = TRUE)

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

# Gráfico circular con porcentajes dentro
pie(
  hi,
  labels = paste0(hi, "%"),
  main = "Gráfica Nº5: Distribución porcentual de los tipos de movimientos en masa",
  col = colores_pie,
  cex = 0.9
)

# Leyenda fuera del gráfico
legend(
  x = 1.2, y = 0,
  legend = categorias,
  fill = colores_pie,
  cex = 0.85,
  bty = "n"
)

# Restaurar parámetros gráficos
par(xpd = FALSE)

# ============================================================
# TABLA RESUMEN DE INDICADORES (VARIABLE NOMINAL)
# ============================================================

# Cálculo de la moda
moda <- TDFMovimientos %>%
  filter(ni == max(ni)) %>%
  select(landslide_category_consol, ni, hi)

# Tabla resumen
tabla_indicadores <- data.frame(
  Indicador = "Moda",
  Categoria = moda$landslide_category_consol,
  Frecuencia_ni = moda$ni,
  Porcentaje_hi = moda$hi
)

tabla_indicadores
##   Indicador               Categoria Frecuencia_ni Porcentaje_hi
## 1      Moda Deslizamiento de tierra          7648         69.33
library(knitr)

knitr::kable(
  tabla_indicadores,
  caption = "Tabla N° 2. Indicador estadístico de tendencia central (Moda)"
)
Tabla N° 2. Indicador estadístico de tendencia central (Moda)
Indicador Categoria Frecuencia_ni Porcentaje_hi
Moda Deslizamiento de tierra 7648 69.33
  #' ## Conclusión
  #'
  #' El análisis estadístico de los tipos de movimientos en masa, al tratarse de una
  #' variable cualitativa nominal, permite establecer que el único indicador de
  #' tendencia central aplicable es la moda.
  #'