#**1. CARGA DE LIBRERÍA Y DATOS

library(gt)
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)
library(ggplot2)
datos <- read_excel("C:/Users/USUARIO/Downloads/datos_nuevoartes.xlsx")

#**2. 2. DEFINICIÓN DEL ORDEN DE LA VARIABLE ORDINAL

datos <- datos %>%
mutate(
landslide_size_ord = case_when(
landslide_size == "very_small"   ~ "Muy pequeño",
landslide_size == "small"        ~ "Pequeño",
landslide_size == "medium"       ~ "Mediano",
landslide_size == "large"        ~ "Grande",
landslide_size == "very_large"   ~ "Muy grande",
landslide_size == "catastrophic" ~ "Catastrófico",
TRUE ~ NA_character_
),
landslide_size_ord = factor(
landslide_size_ord,
levels = c(
"Muy pequeño",
"Pequeño",
"Mediano",
"Grande",
"Muy grande",
"Catastrófico"
),
ordered = TRUE
)
)

#3. TABLA DE DISTRIBUCIÓN DE FRECUENCIA ##3.1 Cálculo de frecuencias

TDF_size <- datos %>%
filter(!is.na(landslide_size_ord)) %>%
count(landslide_size_ord, name = "ni") %>%
arrange(landslide_size_ord) %>%
mutate(
hi = (ni / sum(ni)) * 100,
Ni = cumsum(ni),
Hi = cumsum(hi)
)

##**3.2. Tabla de frecuencias

TDF_size_total <- TDF_size %>%
add_row(
landslide_size_ord = "TOTAL",
ni = sum(TDF_size$ni),
hi = sum(TDF_size$hi),
Ni = NA,
Hi = NA
)

TDF_size_total
## # A tibble: 6 × 5
##   landslide_size_ord    ni       hi    Ni    Hi
##   <chr>              <int>    <dbl> <int> <dbl>
## 1 Pequeño             2767  27.2     2767  27.2
## 2 Mediano             6551  64.4     9318  91.6
## 3 Grande               750   7.37   10068  99.0
## 4 Muy grande           102   1.00   10170 100.0
## 5 Catastrófico           3   0.0295 10173 100  
## 6 TOTAL              10173 100         NA  NA

#Aquí los decimales se muestran tal como resultan del cálculo.

##**3.3. Tabla de presentación

TDF_size_total %>%
mutate(
hi = round(hi, 2),
Hi = round(Hi, 2)
) %>%
gt() %>%
tab_header(
title = md("**Tabla N°3**"),
subtitle = md("Distribución de frecuencias del tamaño de los deslizamientos")
) %>%
cols_label(
landslide_size_ord = "Tamaño del deslizamiento",
ni = "Frecuencia absoluta (ni)",
hi = "Frecuencia relativa (%)",
Ni = "Frecuencia acumulada (Ni)",
Hi = "Frecuencia relativa acumulada (%)"
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(rows = landslide_size_ord == "TOTAL")
) %>%
tab_source_note(
source_note = md("Variable cualitativa ordinal. Elaborado por el autor.")
)
Tabla N°3
Distribución de frecuencias del tamaño de los deslizamientos
Tamaño del deslizamiento Frecuencia absoluta (ni) Frecuencia relativa (%) Frecuencia acumulada (Ni) Frecuencia relativa acumulada (%)
Pequeño 2767 27.20 2767 27.20
Mediano 6551 64.40 9318 91.60
Grande 750 7.37 10068 98.97
Muy grande 102 1.00 10170 99.97
Catastrófico 3 0.03 10173 100.00
TOTAL 10173 100.00 NA NA
Variable cualitativa ordinal. Elaborado por el autor.

#4. DIAGRAMAS DE BARRAS ##4.1 Gráfica de frecuencias absolutas (ni)

ggplot(
TDF_size,
aes(x = landslide_size_ord, y = ni)
) +
geom_col(fill = "skyblue", color = "black") +
labs(
title = "Gráfica N°5: Distribución del tamaño de los deslizamientos",
x = "Tamaño del deslizamiento",
y = "Frecuencia absoluta (ni)"
) +
theme_minimal()

##5. DIAGRAMA CIRCULAR

ggplot(
TDF_size,
aes(x = "", y = hi, fill = landslide_size_ord)
) +
geom_col(width = 1, color = "white") +
coord_polar(theta = "y") +
geom_text(
aes(label = paste0(round(hi, 2), "%")),
position = position_stack(vjust = 0.5),
size = 4
) +
labs(
title = "Gráfica N°6: Distribución porcentual del tamaño de los deslizamientos",
fill = "Tamaño del deslizamiento"
) +
theme_void() +
theme(
legend.position = "right",
plot.margin = margin(10, 60, 10, 10)
)

##**INDICADORES ESTADÍSTICOS

# Moda

moda <- TDF_size %>%
filter(ni == max(ni)) %>%
pull(landslide_size_ord)

# Mediana ordinal

mediana <- TDF_size$landslide_size_ord[
which.min(abs(TDF_size$Hi - 50))
]
tabla_indicadores <- data.frame(
Indicador = c("Moda", "Mediana"),
Categoria = c(as.character(moda), as.character(mediana))
)

tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla N°4**"),
subtitle = md("Indicadores estadísticos del tamaño del deslizamiento")
) %>%
cols_label(
Indicador = "Indicador estadístico",
Categoria = "Categoría resultante"
) %>%
tab_source_note(
source_note = md(
"Variable cualitativa ordinal.
La moda y la mediana son indicadores estadísticos aplicables."
)
)
Tabla N°4
Indicadores estadísticos del tamaño del deslizamiento
Indicador estadístico Categoría resultante
Moda Mediano
Mediana Pequeño
Variable cualitativa ordinal. La moda y la mediana son indicadores estadísticos aplicables.

#’ ## Conclusión #’ #’ La variable tamaño del deslizamiento corresponde a una variable cualitativa de tipo ordinal, lo que permite el uso de indicadores estadísticos como la moda y la mediana. El análisis realizado evidencia cuál es el tamaño más frecuente de los eventos registrados, #’ así como la categoría central de la distribución acumulada, proporcionando una visión clara de la magnitud predominante de los deslizamientos dentro del conjunto de datos analizado. #’