Carga de Datos y Librerías Extraer la Variable Conclusión

Objetivo

Analizar la distribución temporal de los deslizamientos registrados a nivel mundial mediante la variable Año de ocurrencia, con el propósito de identificar la concentración de eventos a través del tiempo y describir su comportamiento estadístico.

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)
library(e1071)

datos_nuevoartes <- read_excel("datos_nuevoartes.xlsx")

2. EXTRAER LA VARIABLE

# Extracción del año a partir de la fecha del evento

anio <- as.numeric(format(datos_nuevoartes$event_date, "%Y"))

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

N_total <- length(anio)

3. CONTEO

3.1 Definición de intervalos (Método de Sturges)

k_base <- round(1 + 3.322 * log10(N_total))

k <- ifelse(k_base >= 12, 11, k_base) - 1

val_min <- min(anio)
val_max <- max(anio)

R <- val_max - val_min

A <- ceiling(R / k)

Li <- seq(val_min,
          by = A,
          length.out = k)

Ls <- Li + A

Ls[k] <- val_max

clases_etiquetas <- paste(Li, Ls, sep = " – ")

3.2 Cálculo de frecuencias

ni <- numeric(length(Li))

for(i in seq_along(Li)){

  if(i < k){

    ni[i] <- sum(anio >= Li[i] &
                 anio < Ls[i])

  }else{

    ni[i] <- sum(anio >= Li[i] &
                 anio <= Ls[i])

  }

}

3.3 Marcas de clase

MC <- (Li + Ls) / 2

3.4 Frecuencias absolutas, relativas y acumuladas

hi <- (ni / N_total) * 100

Ni_asc <- cumsum(ni)

Ni_dsc <- rev(cumsum(rev(ni)))

Hi_asc <- cumsum(hi)

Hi_dsc <- rev(cumsum(rev(hi)))

4. TABLA DE FRECUENCIAS

4.1 Tabla simple

TDF_final <- data.frame(

  Clase  = clases_etiquetas,
  Li     = Li,
  Ls     = Ls,
  MC     = MC,
  ni     = ni,
  hi     = hi,
  Ni_asc = Ni_asc,
  Ni_dsc = Ni_dsc,
  Hi_asc = Hi_asc,
  Hi_dsc = Hi_dsc

)

4.2 Tabla de presentación

tabla_presentacion <- TDF_final %>%

  rbind(
    data.frame(
      Clase = "TOTAL",
      Li = NA,
      Ls = NA,
      MC = NA,
      ni = sum(ni),
      hi = 100,
      Ni_asc = NA,
      Ni_dsc = NA,
      Hi_asc = NA,
      Hi_dsc = NA
    )
  ) %>%

  gt() %>%

  tab_header(

    title = md("**Tabla N° 15**"),

    subtitle = md(
      "Distribución de frecuencias del año de ocurrencia de deslizamientos a nivel mundial"
    )

  ) %>%

  fmt_number(
    columns = c(Li, Ls, MC),
    decimals = 0,
    use_seps = FALSE
  ) %>%

  fmt_number(
    columns = c(hi, Hi_asc, Hi_dsc),
    decimals = 2
  ) %>%

  sub_missing(
    columns = everything(),
    missing_text = ""
  ) %>%

  cols_label(

    Clase = "Periodo",

    Li = "Li",

    Ls = "Ls",

    MC = "MC",

    ni = "ni",

    hi = "hi (%)",

    Ni_asc = "Ascendente",

    Ni_dsc = "Descendente",

    Hi_asc = "Ascendente",

    Hi_dsc = "Descendente"

  ) %>%

  tab_spanner(

    label = "NI",

    columns = c(Ni_asc, Ni_dsc)

  ) %>%

  tab_spanner(

    label = "HI (%)",

    columns = c(Hi_asc, Hi_dsc)

  ) %>%

  tab_style(

    style = cell_text(weight = "bold"),

    locations = cells_body(rows = Clase == "TOTAL")

  ) %>%

  tab_source_note(

    source_note = md(
      "Elaborado por: Grupo 2 – Carrera de Geología"
    )

  )

tabla_presentacion
Tabla N° 15
Distribución de frecuencias del año de ocurrencia de deslizamientos a nivel mundial
Periodo Li Ls MC ni hi (%)
NI
HI (%)
Ascendente Descendente Ascendente Descendente
1988 – 1991 1988 1991 1990 1 0.01 1 11033 0.01 100.00
1991 – 1994 1991 1994 1992 1 0.01 2 11032 0.02 99.99
1994 – 1997 1994 1997 1996 3 0.03 5 11031 0.05 99.98
1997 – 2000 1997 2000 1998 22 0.20 27 11028 0.24 99.95
2000 – 2003 2000 2003 2002 0 0.00 27 11006 0.24 99.76
2003 – 2006 2003 2006 2004 5 0.05 32 11006 0.29 99.76
2006 – 2009 2006 2009 2008 1120 10.15 1152 11001 10.44 99.71
2009 – 2012 2009 2012 2010 3211 29.10 4363 9881 39.55 89.56
2012 – 2015 2012 2015 2014 2933 26.58 7296 6670 66.13 60.45
2015 – 2017 2015 2017 2016 3737 33.87 11033 3737 100.00 33.87
TOTAL


11033 100.00



Elaborado por: Grupo 2 – Carrera de Geología

5. GRÁFICAS

5.1 Histograma por defecto de la Frecuencia Absoluta (ni)

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

max_ni_anio <- max(ni)

pos_x_anio <- barplot(
  ni,
  col = "#EEDFCC",
  border = "black",
  space = 0,
  las = 1,
  ylim = c(0, max_ni_anio),
  yaxt = "n",
  xaxt = "n",
  main = "Gráfica 25: Distribución por defecto de la frecuencia absoluta\n del año de ocurrencia de deslizamientos",
  xlab = "Año de ocurrencia",
  ylab = "Frecuencia absoluta (ni)"
)

ticks_y_local <- round(
  seq(0, max_ni_anio, length.out = 5),
  0
)

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

axis(
  side = 1,
  at = 0:length(ni),
  labels = c(Li, max(Ls)),
  cex.axis = 0.8
)

text(
  x = pos_x_anio,
  y = ni,
  labels = ni,
  pos = 3,
  font = 2,
  cex = 0.8,
  xpd = TRUE
)

5.2 Histograma extendido de la Frecuencia Absoluta (ni)

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

n_total_anio <- N_total

barplot(
  ni,
  col = "#EEDFCC",
  border = "black",
  space = 0,
  las = 1,
  ylim = c(0, n_total_anio),
  yaxt = "n",
  xaxt = "n",
  main = "Gráfica 26: Distribución extendida de la frecuencia absoluta\n del año de ocurrencia a nivel mundial",
  xlab = "Año de ocurrencia",
  ylab = "Frecuencia absoluta (ni)"
)

ticks_y_global <- c(
  0,
  2000,
  4000,
  6000,
  8000,
  10000,
  n_total_anio
)

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

axis(
  side = 1,
  at = 0:length(ni),
  labels = c(Li, max(Ls)),
  cex.axis = 0.8
)

abline(
  h = n_total_anio,
  col = "red",
  lty = 2
)

text(
  x = pos_x_anio,
  y = ni,
  labels = ni,
  pos = 3,
  font = 2,
  cex = 0.8,
  xpd = TRUE
)

5.3 Histograma por defecto de la Frecuencia Relativa (hi)

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

max_hi_anio <- max(hi)

barplot(
  hi,
  col = "#CDB79E",
  border = "black",
  space = 0,
  las = 1,
  ylim = c(0, max_hi_anio),
  yaxt = "n",
  xaxt = "n",
  main = "Gráfica 27: Distribución por defecto de la frecuencia relativa\n del año de ocurrencia",
  xlab = "Año de ocurrencia",
  ylab = "Porcentaje (%)"
)

ticks_y_hi_local <- seq(
  0,
  max_hi_anio,
  length.out = 5
)

axis(
  side = 2,
  at = ticks_y_hi_local,
  labels = round(ticks_y_hi_local,2),
  las = 1
)

axis(
  side = 1,
  at = 0:length(hi),
  labels = c(Li,max(Ls)),
  cex.axis = 0.8
)

text(
  x = pos_x_anio,
  y = hi,
  labels = round(hi,2),
  pos = 3,
  font = 2,
  cex = 0.8,
  xpd = TRUE
)

5.4 Histograma extendido de la Frecuencia Relativa (hi)

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

barplot(
  hi,
  col = "#CDB79E",
  border = "black",
  space = 0,
  las = 1,
  ylim = c(0,100),
  yaxt = "n",
  xaxt = "n",
  main = "Gráfica 28: Distribución extendida de la frecuencia relativa\n del año de ocurrencia a nivel mundial",
  xlab = "Año de ocurrencia",
  ylab = "Porcentaje (%)"
)

ticks_hi_global <- seq(
  0,
  100,
  by = 20
)

axis(
  side = 2,
  at = ticks_hi_global,
  labels = paste0(ticks_hi_global,"%"),
  las = 1
)

axis(
  side = 1,
  at = 0:length(hi),
  labels = c(Li,max(Ls)),
  cex.axis = 0.8
)

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

text(
  x = pos_x_anio,
  y = hi,
  labels = round(hi,2),
  pos = 3,
  font = 2,
  cex = 0.8,
  xpd = TRUE
)

5.5 Diagrama de Caja (Boxplot)

par(
  mfrow = c(1,1),
  mar = c(5,4,4,2)
)

boxplot(
  anio,
  col = "lightblue",
  horizontal = TRUE,
  xlab = "Año de ocurrencia",
  main = "Gráfica 29: Diagrama de caja del año de\nocurrencia de deslizamientos a nivel mundial"
)

5.6 Histograma por defecto de la Frecuencia Absoluta (ni) con Boxplot Superpuesto

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

# Histograma utilizando exactamente los mismos intervalos
h <- hist(
  anio,
  breaks = c(Li, max(Ls)),
  right = FALSE,
  plot = FALSE
)

plot(
  h,
  freq = TRUE,
  col = "#EEDFCC",
  border = "black",
  xaxt = "n",
  yaxt = "n",
  main = "Gráfica 29: Histograma por defecto de la frecuencia absoluta\ncon boxplot superpuesto",
  xlab = "Año de ocurrencia",
  ylab = "Frecuencia absoluta (ni)"
)
## Warning in plot.histogram(h, freq = TRUE, col = "#EEDFCC", border = "black", :
## the AREAS in the plot are wrong -- rather use 'freq = FALSE'
# Eje Y
ticks_y <- round(seq(0, max(h$counts), length.out = 5),0)

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

# Eje X con los mismos intervalos
axis(
  side = 1,
  at = c(Li, max(Ls)),
  labels = c(Li, max(Ls)),
  cex.axis = 0.8
)

# Etiquetas de frecuencia
text(
  x = h$mids,
  y = h$counts,
  labels = h$counts,
  pos = 3,
  cex = 0.8,
  font = 2
)

# Boxplot superpuesto
boxplot(
  anio,
  horizontal = TRUE,
  add = TRUE,
  axes = FALSE,
  at = max(h$counts) * 0.45,
  boxwex = max(h$counts) * 0.35,
  col = rgb(0.45,0.80,1.00,0.55),
  border = "black",
  outline = TRUE,
  outcol = "red"
)

5.7 Diagrama de Ojivas Combinadas

## 5.6 Diagrama de Ojivas Combinadas

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

plot(
  1:length(ni),
  Ni_asc,
  type = "b",
  pch = 17,
  col = "black",
  lwd = 2,
  xaxt = "n",
  xlab = "",
  ylab = "Frecuencia acumulada",
  ylim = c(0, max(Ni_asc)),
  main = "Gráfica 30: Ojivas combinadas del año de\nocurrencia de deslizamientos"
)

lines(
  1:length(ni),
  Ni_dsc,
  type = "b",
  pch = 16,
  col = "red",
  lwd = 2
)

axis(
  side = 1,
  at = 1:length(ni),
  labels = clases_etiquetas,
  las = 2,
  cex.axis = 0.85
)

mtext(
  "Periodos",
  side = 1,
  line = 7
)

legend(
  "topright",
  inset = c(-0.42, 0),
  xpd = TRUE,
  legend = c(
    "Ascendente (ni ≤)",
    "Descendente (ni ≥)"
  ),
  col = c("black", "red"),
  pch = c(17, 16),
  lty = 1,
  lwd = 2,
  bty = "n",
  title = "Tipo de Ojiva",
  cex = 0.9
)

6. INDICADORES

6.1 Indicadores estadísticos

x_bar <- mean(anio)

Me <- median(anio)

Mo <- as.numeric(
  names(
    sort(
      table(anio),
      decreasing = TRUE
    )[1]
  )
)

SD <- sd(anio)

CV <- (SD / x_bar) * 100

As <- skewness(anio)

K <- kurtosis(anio)

6.2 Tabla de indicadores estadísticos

tabla_indicadores <- data.frame(
  Variable = "Año de ocurrencia",
  Min = min(anio),
  Max = max(anio),
  Media = x_bar,
  Mediana = Me,
  Moda = Mo,
  SD = SD,
  CV = CV,
  Asimetria = As,
  Curtosis = K
)

tabla_indicadores_gt <- tabla_indicadores %>%
  gt() %>%
  tab_header(
    title = md(
      "**Tabla N° 16: Indicadores estadísticos del año de ocurrencia de deslizamientos a nivel mundial**"
    )
  ) %>%

  fmt_number(
    columns = c(Min, Max, Media, Mediana, Moda),
    decimals = 0,
    use_seps = FALSE
  ) %>%

  fmt_number(
    columns = c(SD, CV, Asimetria, Curtosis),
    decimals = 2
  ) %>%

  cols_label(
    SD = "Desv. Est.",
    CV = "CV (%)",
    Asimetria = "Asimetría"
  ) %>%

  tab_source_note(
    source_note = md(
      "Elaborado por: Grupo 2 – Carrera de Geología"
    )
  )

tabla_indicadores_gt
Tabla N° 16: Indicadores estadísticos del año de ocurrencia de deslizamientos a nivel mundial
Variable Min Max Media Mediana Moda Desv. Est. CV (%) Asimetría Curtosis
Año de ocurrencia 1988 2017 2013 2013 2010 3.03 0.15 −0.49 0.76
Elaborado por: Grupo 2 – Carrera de Geología

6.3 Detección de outliers

Q1 <- quantile(anio,0.25)

Q3 <- quantile(anio,0.75)

IQR_a <- Q3 - Q1

lim_inf <- Q1 - 1.5*IQR_a

lim_sup <- Q3 + 1.5*IQR_a

outliers_vec <- anio[
  anio < lim_inf |
  anio > lim_sup
]

6.4 Tabla de outliers

tabla_outliers <- data.frame(

  Variable = "Año de ocurrencia",

  Outliers_Detectados = length(outliers_vec),

  Limite_Inferior = lim_inf,

  Limite_Superior = lim_sup,

  Q1 = Q1,

  Q3 = Q3

)

tabla_outliers_gt <- tabla_outliers %>%

  gt() %>%

  tab_header(

    title = md("**Tabla N° 17**"),

    subtitle = md(
      "Detección de valores atípicos del año de ocurrencia de deslizamientos a nivel mundial"
    )

  ) %>%

  fmt_number(

    columns = c(
      Outliers_Detectados,
      Limite_Inferior,
      Limite_Superior,
      Q1,
      Q3
    ),

    decimals = 0,

    use_seps = FALSE

  ) %>%

  cols_label(

    Outliers_Detectados = "N° de outliers",

    Limite_Inferior = "Límite inferior",

    Limite_Superior = "Límite superior"

  ) %>%

  tab_source_note(

    source_note = md(
      "Elaborado por: Grupo 2 – Carrera de Geología"
    )

  )

tabla_outliers_gt
Tabla N° 17
Detección de valores atípicos del año de ocurrencia de deslizamientos a nivel mundial
Variable N° de outliers Límite inferior Límite superior Q1 Q3
Año de ocurrencia 27 2002 2022 2010 2015
Elaborado por: Grupo 2 – Carrera de Geología

7. CONCLUSIÓN

La variable Año de ocurrencia fluctúa entre 1988 y 2017, con una media de 2013 y una desviación estándar de 3.03 años, lo que refleja una distribución homogénea. Asimismo, presenta asimetría negativa, con mayor concentración de eventos en los años recientes, y se identificaron 27 valores atípicos comprendidos entre 1988 y 2002.