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


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


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

4. TABLA DE FRECUENCIAS

4.1 Tabla de frecuencias

tabla_frecuencias <- TDFMes_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 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 (%)"
) %>%
  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 (%)
Enero 945 0.09 8.57
Febrero 797 0.07 7.22
Marzo 985 0.09 8.93
Abril 841 0.08 7.62
Mayo 788 0.07 7.14
Junio 974 0.09 8.83
Julio 1243 0.11 11.27
Agosto 1175 0.11 10.65
Septiembre 896 0.08 8.12
Octubre 761 0.07 6.90
Noviembre 668 0.06 6.05
Diciembre 960 0.09 8.70
TOTAL 11033 1.00 100.00
Elaborado por: Grupo 1 – Carrera de Geología
tabla_graficos <- TDFMes

5. GRÁFICAS

5.1 Distribución local del mes de deslizamientos a nivel mundial

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: Distribución local del mes de deslizamientos\n a nivel mundial ",
  xlab = "Mes",
  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=meses,
  las=2,
  cex.axis=0.85
)

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

5.2 Distribución global del mes de deslizamientos a nivel mundial

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: Distribución global del mes de deslizamientos\n a nivel mundial ",
  xlab="Mes",
  ylab="Cantidad"
)

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

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: Distribución local en porcentaje del mes de \ndeslizamientos a nivel mundial",
  xlab="Mes",
  ylab="Porcentaje (%)"
)

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 Distribución global en porcentaje del mes de deslizamientos a nivel mundial

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: Distribución global en porcentaje del mes de \ndeslizamientos a nivel mundial ",
  xlab="Mes",
  ylab="Porcentaje (%)"
)

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
frecuencia_acumulada <- cumsum(TDFMes$hi_porcentaje)

mediana_mes <- meses[
  which(frecuencia_acumulada >= 50)[1]
]

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 Julio
Elaborado por: Grupo 1 – Carrera de Geología

7. CONCLUSIÓN

El valor más frecuente de la variable mes es julio y gira en torno a la mediana julio, por lo tanto el comportamiento es malo a nivel global por su mayor concentración durante este periodo.