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

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 local del año de deslizamientos\n a nivel mundial",
  xlab = "Año de ocurrencia",
  ylab = "Cantidad"
)

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 Distribución global del año de deslizamientos a nivel mundial

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 global del año de deslizamientos\n a nivel mundial",
  xlab = "Año de ocurrencia",
  ylab = "Cantidad"
)

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

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 local del año de deslizamientos\n a nivel mundial",
  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 Distribución global del año de deslizamientos a nivel mundial

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 global del año de deslizamientos\n 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 Diagrama de la frecuencia absoluta 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: Diagrama de la frecuencia absoluta\ncon boxplot superpuesto",
  xlab = "Año de ocurrencia",
  ylab = "Cantidad"
)
## 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, y sus valores giran entorno a 2013 con una desviación estándar de 3.03, siendo un conjunto de datos muy homogéneo. El conjunto de valores se concentra fuertemente en la parte alta de la variable. Con la presencia de 27 valores atípicos desde 1988 hasta 2001 y, por lo tanto, esto se considera beneficioso a nivel mundial, debido a que representa una menor ocurrencia de deslizamientos durante esos años.