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 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
)
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
)
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
)
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
)
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: 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.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, 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.