Carga de datos y librerías Extraer la variable Conclusión

1. CARGA DE DATOS Y LIBRERÍAS

library(readxl)
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(gt)

datos <- read_excel("datos_deslizamientos.xlsx")

2. EXTRAER LA VARIABLE

# Conversión de la fecha
event_date <- as.Date(datos$event_date)

# Eliminación de valores perdidos
event_date <- event_date[!is.na(event_date)]

# Extracción del mes
variable <- as.numeric(format(event_date, "%m"))

3. CONTEO

3.1 Definición de las categorías

meses <- c(
  "Enero", "Febrero", "Marzo", "Abril",
  "Mayo", "Junio", "Julio", "Agosto",
  "Septiembre", "Octubre", "Noviembre", "Diciembre"
)

3.2 Conteo de datos

N <- length(variable)

3.3 Cálculo de frecuencias

ni <- sapply(
  1:12,
  function(i) sum(variable == i)
)

hi <- ni / sum(ni)

hi_porcentaje <- hi * 100

Ni <- cumsum(ni)

Hi_porcentaje <- cumsum(hi_porcentaje)

TDFMes <- data.frame(
  Mes = factor(
    meses,
    levels = meses,
    ordered = TRUE
  ),
  ni = ni,
  hi = hi,
  hi_porcentaje = hi_porcentaje,
  Ni = Ni,
  Hi_porcentaje = Hi_porcentaje
)

TDFMes_total <- TDFMes %>%
  add_row(
    Mes = "TOTAL",
    ni = sum(ni),
    hi = 1,
    hi_porcentaje = 100,
    Ni = NA,
    Hi_porcentaje = NA
  )

4. TABLA DE FRECUENCIAS

4. TABLA DE FRECUENCIAS

4.1 Tabla de frecuencias

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

tabla_frecuencias
##           Mes    ni   hi hi_porcentaje    Ni Hi_porcentaje
## 1       Enero   945 0.09          8.57   945          8.57
## 2     Febrero   797 0.07          7.22  1742         15.79
## 3       Marzo   985 0.09          8.93  2727         24.72
## 4       Abril   841 0.08          7.62  3568         32.34
## 5        Mayo   788 0.07          7.14  4356         39.48
## 6       Junio   974 0.09          8.83  5330         48.31
## 7       Julio  1243 0.11         11.27  6573         59.58
## 8      Agosto  1175 0.11         10.65  7748         70.23
## 9  Septiembre   896 0.08          8.12  8644         78.35
## 10    Octubre   761 0.07          6.90  9405         85.24
## 11  Noviembre   668 0.06          6.05 10073         91.30
## 12  Diciembre   960 0.09          8.70 11033        100.00
## 13      TOTAL 11033 1.00        100.00    NA            NA

4.2 Presentación de la tabla

tabla_frecuencias %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nro. 1**"),
    subtitle = md("Distribución mensual de la frecuencia de deslizamientos a nivel mundial")
  ) %>%
  cols_label(
    Mes = "Mes",
    ni = "Frecuencia absoluta (ni)",
    hi = "Frecuencia relativa decimal",
    hi_porcentaje = "Frecuencia relativa (%)",
    Ni = "Frecuencia acumulada (Ni)",
    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 = Mes == "TOTAL")
  )
Tabla Nro. 1
Distribución mensual de la frecuencia de deslizamientos a nivel mundial
Mes Frecuencia absoluta (ni) Frecuencia relativa decimal Frecuencia relativa (%) Frecuencia acumulada (Ni) Frecuencia relativa acumulada (%)
Enero 945 0.09 8.57 945 8.57
Febrero 797 0.07 7.22 1742 15.79
Marzo 985 0.09 8.93 2727 24.72
Abril 841 0.08 7.62 3568 32.34
Mayo 788 0.07 7.14 4356 39.48
Junio 974 0.09 8.83 5330 48.31
Julio 1243 0.11 11.27 6573 59.58
Agosto 1175 0.11 10.65 7748 70.23
Septiembre 896 0.08 8.12 8644 78.35
Octubre 761 0.07 6.90 9405 85.24
Noviembre 668 0.06 6.05 10073 91.30
Diciembre 960 0.09 8.70 11033 100.00
TOTAL 11033 1.00 100.00 NA NA
Elaborado por: Grupo 1 – Carrera de Geología
tabla_graficos <- TDFMes

5. GRÁFICAS

5.1 Diagramas de barras

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

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

max_ni <- max(ni)

pos_x <- barplot(
  ni,
  col = "#EEDFCC",
  border = "black",
  space = 0.3,
  ylim = c(0, max_ni),
  yaxt = "n",
  xaxt = "n",
  main = "Gráfica 1: Diagrama de barras por defecto de \nla Frecuencia absoluta (ni)\n",
  xlab = "Mes",
  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=pos_x,
  labels=meses,
  las=2,
  cex.axis=0.85
)

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

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

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

N_total <- sum(ni)

pos_x <- barplot(
  ni,
  col="#EEDFCC",
  border="black",
  space=.3,
  ylim=c(0,N_total),
  yaxt="n",
  xaxt="n",
  main="Gráfica 2: Diagrama de barras extendido de \nla Frecuencia absoluta (ni)",
  xlab="Mes",
  ylab="Frecuencia absoluta (ni)"
)

ticks_global <- c(
  0,
  round(N_total*.2),
  round(N_total*.4),
  round(N_total*.6),
  round(N_total*.8),
  N_total
)

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

axis(
  side=1,
  at=pos_x,
  labels=meses,
  las=2,
  cex.axis=.85
)

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

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

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

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

max_hi <- max(hi_porcentaje) * 1.12

pos_x <- barplot(
  hi_porcentaje,
  col="#BFD7EA",
  border="black",
  space=.3,
  ylim=c(0,max_hi),
  yaxt="n",
  xaxt="n",
  main="Gráfica 3: Diagrama de barras por defecto de \nla Frecuencia relativa (hi)",
  xlab="Mes",
  ylab="Frecuencia relativa (%)"
)

ticks_hi <- round(seq(0,max_hi,length.out=5),2)

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

axis(
  side=1,
  at=pos_x,
  labels=meses,
  las=2,
  cex.axis=.85
)

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

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

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

pos_x <- barplot(
  hi_porcentaje,
  col="#BFD7EA",
  border="black",
  space=.3,
  ylim=c(0,100),
  yaxt="n",
  xaxt="n",
  main="Gráfica 4: Diagrama de barras extendido de \nla Frecuencia relativa (hi)",
  xlab="Mes",
  ylab="Frecuencia relativa (%)"
)

axis(
  side=2,
  at=seq(0,100,20),
  labels=seq(0,100,20),
  las=1
)

axis(
  side=1,
  at=pos_x,
  labels=meses,
  las=2,
  cex.axis=.85
)

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

text(
  pos_x,
  hi_porcentaje,
  labels=round(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(
  "#66c2a5", "#fc8d62", "#8da0cb", "#e78ac3",
  "#a6d854", "#ffd92f", "#e5c494", "#b3b3b3",
  "#1b9e77", "#d95f02", "#7570b3", "#e7298a"
)

pie(
  tabla_graficos$hi_porcentaje,
  labels = paste0(round(tabla_graficos$hi_porcentaje,2)," %"),
  radius = 0.9,
  col = colores,
  main = "Gráfica 5: Distribución porcentual de los deslizamientos por mes\n(diagrama circular)"
)

legend(
  x = 1.30,
  y = 0,
  legend = as.character(tabla_graficos$Mes),
  fill = colores,
  cex = 0.95,
  bty = "n"
)

par(xpd = FALSE)

6. INDICADORES

6.1 Indicadores de posición

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

moda_mes <- TDFMes$Mes[indice_moda]

moda_ni <- TDFMes$ni[indice_moda]

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

# Mediana ordinal
mediana_mes <- meses[which.min(abs(TDFMes$Hi_porcentaje - 50))]

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 ordinal"
  ),
  Resultado = c(
    N,
    length(meses),
    moda_mes,
    moda_ni,
    moda_hi,
    mediana_mes
  )
)

tabla_indicadores %>%
  gt() %>%
  tab_header(
    title = md("**Tabla Nro. 2**"),
    subtitle = md("Indicadores estadísticos de la variable Mes")
  ) %>%
  cols_label(
    Indicador = "Indicador estadístico",
    Resultado = "Resultado"
  ) %>%
  tab_source_note(
    source_note = md("Elaborado por: Grupo 1 – Carrera de Geología")
  )
Tabla Nro. 2
Indicadores estadísticos de la variable Mes
Indicador estadístico Resultado
Tamaño de la muestra 11033
Número de categorías 12
Moda 7
Frecuencia absoluta de la moda 1243
Frecuencia relativa de la moda (%) 11.27
Mediana ordinal Junio
Elaborado por: Grupo 1 – Carrera de Geología

7. CONCLUSIÓN

El análisis de la variable Mes, correspondiente a una variable cualitativa ordinal, permitió identificar la distribución temporal de los deslizamientos registrados a nivel mundial. Los indicadores de posición muestran que el mes con mayor frecuencia de ocurrencia corresponde a Julio, con 1243 eventos, equivalentes al 11.27 % del total de registros analizados. Por su parte, la mediana ordinal se ubicó en el mes de Junio, indicando que aproximadamente el 50 % de los deslizamientos ocurrió antes o durante este mes y el restante después de él. Estos resultados evidencian la existencia de una concentración temporal de los eventos, información que resulta útil para identificar periodos de mayor susceptibilidad y fortalecer la planificación de medidas de prevención y gestión del riesgo.