1. CARGA DE LIBRERÍAS Y DATOS
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)
# Carga del archivo Excel (previamente subido al entorno)
datos <- read_excel("datos_nuevoartes.xlsx")
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 (Salida básica)
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
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
categorias <- TDF_size$landslide_size_ord
ni <- TDF_size$ni
hi <- round(TDF_size$hi, 2)
4.1. Frecuencia absoluta
par(mar = c(9, 5, 4, 2))
barplot(
ni,
names.arg = categorias,
las = 1,
col = "steelblue",
main = "Gráfica N°5: Frecuencia absoluta del tamaño de los deslizamientos",
ylab = "Frecuencia absoluta (ni)",
xlab = "Tamaño del deslizamiento"
)

4.2. Frecuencia relativa
barplot(
hi,
names.arg = categorias,
las = 1,
col = "skyblue",
main = "Gráfica N°6: Frecuencia relativa del tamaño de los deslizamientos",
ylab = "Frecuencia relativa (%)",
xlab = "Tamaño del deslizamiento",
ylim = c(0, 100)
)

5. DIAGRAMA CIRCULAR
par(mar = c(5, 4, 4, 10))
par(xpd = TRUE)
colores <- c(
"#1f78b4", "#33a02c", "#ff7f00",
"#e31a1c", "#6a3d9a", "#b15928"
)
pie(
hi,
labels = NA, # ← evita porcentajes dentro del círculo
main = "Gráfica N°7: Distribución porcentual del tamaño de los deslizamientos",
col = colores
)
legend(
x = 1.25,
y = 0,
legend = paste0(
categorias, " (", hi, "%)"
),
fill = colores,
bty = "n",
cex = 0.9
)

par(xpd = FALSE)
6. INDICADORES ESTADÍSTICOS
6.2. Tabla de indicadores
tabla_indicadores <- data.frame(
Indicador = c("Moda", "Mediana"),
Resultado = c(as.character(moda), as.character(mediana))
)
tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla Nro. 4**"),
subtitle = md("Indicadores estadísticos del tamaño de los deslizamientos")
) %>%
cols_label(
Indicador = "Indicador estadístico",
Resultado = "Categoría resultante"
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body()
)
| Tabla Nro. 4 |
| Indicadores estadísticos del tamaño de los deslizamientos |
| Indicador estadístico |
Categoría resultante |
| Moda |
Mediano |
| Mediana |
Pequeño |
| Elaborado por: Grupo 2 – Carrera de Geología |
7. 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
que el tamaño más frecuente de los deslizamientos corresponde a la
categoría modal, mientras que la mediana representa la categoría central
de la distribución acumulada.