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.
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")
# 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)
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 = " – ")
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])
}
}
MC <- (Li + Ls) / 2
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)))
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
)
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 | |||||||||
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
)
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
)
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
)
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
)
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"
)
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.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
)
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)
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 | |||||||||
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
]
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 | |||||
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.