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_size

3. CONTEO

3.1 Definición del orden de las categorías

orden_size <- c(
  "small",
  "medium",
  "large",
  "very_large"
)

datos <- datos %>%
  mutate(
    landslide_size = factor(
      landslide_size,
      levels = orden_size,
      ordered = TRUE
    )
  )

3.2 Conteo de datos

variable <- datos$landslide_size

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

N <- length(variable)

3.3 Cálculo de frecuencias

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

TDFSize_total <- TDFSize %>%
  add_row(
    landslide_size = "TOTAL",
    ni = sum(TDFSize$ni),
    hi = 1,
    hi_porcentaje = 100,
    Ni = NA,
    Hi = NA,
    Hi_porcentaje = NA
  )

4. TABLA DE FRECUENCIAS

4.1 Tabla de frecuencias

tabla_frecuencias <- TDFSize_total %>%
  mutate(
    hi = round(hi, 2),
    hi_porcentaje = round(hi_porcentaje, 2),
    Hi = round(Hi, 2),
    Hi_porcentaje = round(Hi_porcentaje, 2)
  )

tabla_frecuencias
## # A tibble: 5 × 7
##   landslide_size    ni    hi hi_porcentaje    Ni    Hi Hi_porcentaje
##   <chr>          <int> <dbl>         <dbl> <int> <dbl>         <dbl>
## 1 small           2767  0.27         27.2   2767  0.27          27.2
## 2 medium          6551  0.64         64.4   9318  0.92          91.6
## 3 large            750  0.07          7.37 10068  0.99          99  
## 4 very_large       102  0.01          1    10170  1            100  
## 5 TOTAL          10170  1           100       NA NA             NA

4.2 Presentación de la tabla

tabla_frecuencias %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nro. 1**"),
    subtitle = md("Distribución de frecuencias del tamaño de los deslizamientos a nivel mundial")
  ) %>%
  cols_label(
    landslide_size = "Tamaño del deslizamiento",
    ni = "Frecuencia absoluta (ni)",
    hi = "Frecuencia relativa",
    hi_porcentaje = "Frecuencia relativa (%)",
    Ni = "Frecuencia acumulada (Ni)",
    Hi = "Frecuencia relativa acumulada",
    Hi_porcentaje = "Frecuencia relativa acumulada (%)"
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo 1 – Carrera de Geología")
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(rows = landslide_size == "TOTAL")
  )
Tabla Nro. 1
Distribución de frecuencias del tamaño de los deslizamientos a nivel mundial
Tamaño del deslizamiento Frecuencia absoluta (ni) Frecuencia relativa Frecuencia relativa (%) Frecuencia acumulada (Ni) Frecuencia relativa acumulada Frecuencia relativa acumulada (%)
small 2767 0.27 27.21 2767 0.27 27.21
medium 6551 0.64 64.41 9318 0.92 91.62
large 750 0.07 7.37 10068 0.99 99.00
very_large 102 0.01 1.00 10170 1.00 100.00
TOTAL 10170 1.00 100.00 NA NA NA
Elaborado por: Grupo 1 – Carrera de Geología

5. GRÁFICAS

tabla_graficos <- TDFSize

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

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

max_ni <- max(tabla_graficos$ni)

pos_x <- barplot(
  tabla_graficos$ni,
  col = "#EEDFCC",
  border = "black",
  space = 0.2,
  las = 1,
  ylim = c(0,max_ni),
  yaxt = "n",
  main = "Gráfica 1: Diagrama de barras por defecto de \nla Frecuencia absoluta (ni)\ndel tamaño de los deslizamientos",
  xlab = "Tamaño del deslizamiento",
  ylab = "Frecuencia absoluta (ni)"
)

ticks_y <- round(
  seq(0,max_ni,length.out=5),
  0
)

axis(
  side=2,
  at=ticks_y,
  labels=ticks_y,
  las=1
)

axis(
  side=1,
  at=0:length(tabla_graficos$ni),
  labels=c(as.character(tabla_graficos$landslide_size),"")
)

text(
  pos_x,
  tabla_graficos$ni,
  labels=tabla_graficos$ni,
  pos=3,
  font=2,
  cex=.8
)

5.2 Diagrama de barras extendido de la Frecuencia absoluta (ni)

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

N_total <- sum(tabla_graficos$ni)

barplot(
  tabla_graficos$ni,
  col="#EEDFCC",
  border="black",
  space=0.2,
  las=1,
  ylim=c(0,N_total),
  yaxt="n",
  main="Gráfica 2: Diagrama de barras extendido de \nla Frecuencia absoluta (ni)\ndel tamaño de los deslizamientos",
  xlab="Tamaño del deslizamiento",
  ylab="Frecuencia absoluta (ni)"
)

ticks_y <- round(
  seq(0,N_total,length.out=6),
  0
)

axis(
  side=2,
  at=ticks_y,
  labels=ticks_y,
  las=1
)

axis(
  side=1,
  at=0:length(tabla_graficos$ni),
  labels=c(as.character(tabla_graficos$landslide_size),"")
)

abline(
  h=N_total,
  col="red",
  lty=2,
  lwd=2
)

text(
  pos_x,
  tabla_graficos$ni,
  labels=tabla_graficos$ni,
  pos=3,
  font=2,
  cex=.8
)

5.3 Diagrama de barras por defecto de la Frecuencia relativa (hi)

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

pos_x <- barplot(
  tabla_graficos$hi_porcentaje,
  col="#EEDFCC",
  border="black",
  space=0.2,
  las=1,
  ylim=c(0,70),
  yaxt="n",
  main="Gráfica 3: Histograma por defecto de \nla Frecuencia relativa (hi)\ndel tamaño de los deslizamientos",
  xlab="Tamaño del deslizamiento",
  ylab="Frecuencia relativa (%)"
)

ticks_y <- seq(0,70,10)

axis(
  side=2,
  at=ticks_y,
  labels=ticks_y,
  las=1
)

axis(
  side=1,
  at=0:length(tabla_graficos$ni),
  labels=c(as.character(tabla_graficos$landslide_size),"")
)

text(
  pos_x,
  tabla_graficos$hi_porcentaje,
  labels=round(tabla_graficos$hi_porcentaje,2),
  pos=3,
  font=2,
  cex=.8
)

5.4 Diagrama de barras extendido de la Frecuencia relativa (hi)

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

barplot(
  tabla_graficos$hi_porcentaje,
  col="#EEDFCC",
  border="black",
  space=0.2,
  las=1,
  ylim=c(0,100),
  yaxt="n",
  main="Gráfica 4: Histograma global de \nla Frecuencia relativa (hi)\ndel tamaño de los deslizamientos",
  xlab="Tamaño del deslizamiento",
  ylab="Frecuencia relativa (%)"
)

ticks_y <- seq(0,100,20)

axis(
  side=2,
  at=ticks_y,
  labels=ticks_y,
  las=1
)

axis(
  side=1,
  at=0:length(tabla_graficos$ni),
  labels=c(as.character(tabla_graficos$landslide_size),"")
)

abline(
  h=100,
  col="red",
  lty=2,
  lwd=2
)

text(
  pos_x,
  tabla_graficos$hi_porcentaje,
  labels=round(tabla_graficos$hi_porcentaje,2),
  pos=3,
  font=2,
  cex=.8
)

5.5 Diagrama circular

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

colores <- c(
  "#1f78b4",
  "#33a02c",
  "#ff7f00",
  "#e31a1c"
)

pie(
  tabla_graficos$hi_porcentaje,
  labels=NA,
  radius=0.90,
  col=colores,
  main="Gráfica 5: Distribución porcentual del tamaño de \nlos deslizamientos (diagrama circular)"
)

legend(
  x=1.15,
  y=0,
  legend = paste0(
    tabla_graficos$landslide_size,
    " (", round(tabla_graficos$hi_porcentaje, 2), "%)"
  ),
  fill = colores,
  cex = 0.90,
  bty = "n"
)

par(xpd=FALSE)

6. INDICADORES

6.1 Cálculo de indicadores

# Tamaño de la muestra
n <- sum(tabla_graficos$ni)

# Número de categorías
numero_categorias <- nrow(tabla_graficos)

# Moda
indice_moda <- which.max(tabla_graficos$ni)

moda <- as.character(
  tabla_graficos$landslide_size[indice_moda]
)

moda_ni <- tabla_graficos$ni[indice_moda]

moda_hi <- round(
  tabla_graficos$hi_porcentaje[indice_moda],
  2
)

# Mediana ordinal
indice_mediana <- which(
  tabla_graficos$Hi >= 0.5
)[1]

mediana <- as.character(
  tabla_graficos$landslide_size[indice_mediana]
)

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 (%)",
    "Mediana"
  ),

  Resultado = c(
    n,
    numero_categorias,
    moda,
    moda_ni,
    moda_hi,
    mediana
  )

)

tabla_indicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nro. 2**"),
    subtitle = md("Indicadores estadísticos del tamaño de los deslizamientos")
  ) %>%
  cols_label(
    Indicador = "Indicador",
    Resultado = "Resultado"
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo 1 – Carrera de Geología")
  )
Tabla Nro. 2
Indicadores estadísticos del tamaño de los deslizamientos
Indicador Resultado
Tamaño de la muestra 10170
Número de categorías 4
Moda medium
Frecuencia absoluta de la moda 6551
Frecuencia relativa de la moda (%) 64.41
Mediana medium
Elaborado por: Grupo 1 – Carrera de Geología

7. CONCLUSIÓN

El análisis estadístico del tamaño de los deslizamientos, al tratarse de una variable cualitativa ordinal, permitió identificar tanto la categoría más frecuente mediante la moda como la categoría central de la distribución mediante la mediana. Los resultados evidencian que la categoría medium representa el tamaño de deslizamiento con mayor frecuencia dentro del conjunto de datos, registrando 6551 eventos, equivalentes al 64.41 % del total analizado. Asimismo, la mediana se ubica en la categoría medium, indicando que al menos el 50 % de los deslizamientos registrados corresponden a esta categoría o a categorías de menor magnitud, lo que permite caracterizar la distribución del tamaño de los eventos a nivel mundial.