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",
  "catastrophic"
)

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
  )


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

4. TABLA DE FRECUENCIAS

4.1 Tabla de frecuencias

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

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 (%)"
) %>%
  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 (%)
small 2767 0.27 27.20
medium 6551 0.64 64.40
large 750 0.07 7.37
very_large 102 0.01 1.00
catastrophic 3 0.00 0.03
TOTAL 10173 1.00 100.00
Elaborado por: Grupo 1 – Carrera de Geología
tabla_graficos <- TDFSize

5. GRÁFICAS

5.1 Distribución local del tamaño de deslizamientos a nivel mundial

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: Distribución local del tamaño de deslizamientos\n a nivel mundial",
  xlab = "Tamaño del deslizamiento",
  ylab = "Cantidad"
)

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 = pos_x,
  labels = as.character(tabla_graficos$landslide_size),
  las = 1
)

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

5.2 Distribución global del tamaño de deslizamientos a nivel mundial

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

N_total <- sum(tabla_graficos$ni)

pos_x <- barplot(
  tabla_graficos$ni,
  col="#EEDFCC",
  border="black",
  space=0.2,
  las=1,
  ylim=c(0,N_total),
  yaxt="n",
  main="Gráfica 2: Distribución global del tamaño de deslizamientos\n a nivel mundial",
  xlab="Tamaño del deslizamiento",
  ylab="Cantidad"
)

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=pos_x,
  labels=as.character(tabla_graficos$landslide_size),
  las=1
)

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 Distribución local en porcentaje del tamaño de deslizamientos a nivel mundial

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: Distribución local en porcentaje del tamaño\n de deslizamientos a nivel mundial",
  xlab="Tamaño del deslizamiento",
  ylab="Porcentaje (%)"
)

ticks_y <- seq(0,70,10)

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

axis(
  side=1,
  at=pos_x,
  labels=as.character(tabla_graficos$landslide_size),
  las=1
)
text(
  pos_x,
  tabla_graficos$hi_porcentaje,
  labels=round(tabla_graficos$hi_porcentaje,2),
  pos=3,
  font=2,
  cex=.8
)

5.4 Distribución global en porcentaje del tamaño de deslizamientos a nivel mundial

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: Distribución global en porcentaje del tamaño de\n deslizamientos a nivel mundial",
  xlab="Tamaño del deslizamiento",
  ylab="Porcentaje (%)"
)

ticks_y <- seq(0,100,20)

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

axis(
  side=1,
  at=pos_x,
  labels=as.character(tabla_graficos$landslide_size),
  las=1
)

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",
  "#6a3d9a"
)

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"
)

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
frecuencia_acumulada <- cumsum(tabla_graficos$hi)

indice_mediana <- which(
  frecuencia_acumulada >= 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 10173
Número de categorías 5
Moda medium
Frecuencia absoluta de la moda 6551
Frecuencia relativa de la moda (%) 64.4
Mediana medium
Elaborado por: Grupo 1 – Carrera de Geología

7. CONCLUSIÓN

El valor más frecuente de la variable tamaño de deslizamiento es medium y gira en torno a la mediana medium, por lo tanto el comportamiento es medianamente malo a nivel global.