Introducción
Se presenta el análisis estadístico descriptivo de la variable Fatality Count (número de fallecidos), correspondiente al inventario global de deslizamientos de tierra. Debido a las características de la información, el estudio se desarrolló en dos fases complementarias.
La primera fase considera todos los deslizamientos registrados, incluidos aquellos que no ocasionaron víctimas fatales (Fatality Count = 0), con el fin de describir la distribución general de la variable. La segunda fase excluye los registros con cero fallecidos y analiza únicamente los eventos mortales, permitiendo evaluar la magnitud de la letalidad de los deslizamientos.
Justificación metodológica de la agrupación
La variable Fatality Count presenta una distribución con marcada asimetría positiva, ya que la mayoría de los deslizamientos registra pocos o ningún fallecido, mientras que un número reducido de eventos concentra una elevada cantidad de víctimas. Debido a este comportamiento, se utilizaron intervalos de amplitud variable, los cuales permiten representar de manera más adecuada la distribución de los datos y evitar que la mayor parte de las observaciones quede concentrada en una sola clase.
Para el análisis se definieron los siguientes intervalos:
Fase Intervalos
Fase 1 (Inventario total) [0–10], [10–100], [100–200], [200–300], (>300)
Fase 2 (Eventos mortales) [1–10], [10–100], [100–200], [200–300], (>300)
Esta agrupación facilita la interpretación tanto de los eventos de baja magnitud como de aquellos que presentan un elevado número de fallecidos. Su pertinencia se evaluará mediante las tablas de frecuencia, los histogramas, el diagrama de caja y los indicadores estadísticos desarrollados en las siguientes secciones.
Objetivo
Analizar la distribución del número de fallecidos considerando la totalidad de los deslizamientos registrados, incluidos los eventos sin víctimas fatales, con el propósito de caracterizar el comportamiento general de la variable.
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
##
## 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")
fatality <- datos_nuevoartes$fatality_count
fatality <- fatality[!is.na(fatality)]
N_total <- length(fatality)
cortes <- c(0, 10, 100, 200, 300, Inf)
Li <- cortes[-length(cortes)]
Ls <- cortes[-1]
clases_etiquetas <- c(
"0 - 10",
"10 - 100",
"100 - 200",
"200 - 300",
"> 300"
)
ni <- numeric(length(Li))
for (i in seq_along(Li)) {
if (is.infinite(Ls[i])) {
ni[i] <- sum(fatality >= Li[i])
} else if (Li[i] == 0 && Ls[i] == 1) {
ni[i] <- sum(fatality == 0)
} else if (Li[i] == 1 && Ls[i] == 2) {
ni[i] <- sum(fatality == 1)
} else {
ni[i] <- sum(fatality >= Li[i] & fatality < Ls[i])
}
}
MC <- c(5, 55, 150, 250, 350)
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° 9**"),
subtitle = md("Distribución de frecuencias del número de fallecidos a nivel mundial")
) %>%
fmt_number(
columns = c(MC, hi, Hi_asc, Hi_dsc),
decimals = 2
) %>%
sub_missing(
columns = everything(),
missing_text = ""
) %>%
cols_label(
Clase = "Rango",
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° 9 | |||||||||
| Distribución de frecuencias del número de fallecidos a nivel mundial | |||||||||
| Rango | Li | Ls | MC | ni | hi (%) |
NI
|
HI (%)
|
||
|---|---|---|---|---|---|---|---|---|---|
| Ascendente | Descendente | Ascendente | Descendente | ||||||
| 0 - 10 | 0 | 10 | 5.00 | 9197 | 95.33 | 9197 | 9648 | 95.33 | 100.00 |
| 10 - 100 | 10 | 100 | 55.00 | 418 | 4.33 | 9615 | 451 | 99.66 | 4.67 |
| 100 - 200 | 100 | 200 | 150.00 | 16 | 0.17 | 9631 | 33 | 99.82 | 0.34 |
| 200 - 300 | 200 | 300 | 250.00 | 7 | 0.07 | 9638 | 17 | 99.90 | 0.18 |
| > 300 | 300 | Inf | 350.00 | 10 | 0.10 | 9648 | 10 | 100.00 | 0.10 |
| TOTAL | 9648 | 100.00 | |||||||
| Elaborado por: Grupo 2 – Carrera de Geología | |||||||||
# Configuración de la gráfica
par(mar = c(5, 4, 4, 2))
max_ni_real <- max(ni)
# Generación del histograma
pos_x <- barplot(
ni,
col = "grey",
border = "black",
space = 0,
las = 1,
ylim = c(0, max_ni_real),
yaxt = "n",
xaxt = "n",
main = "Gráfica 19: Distribución por defecto de la frecuencia absoluta\ndel número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
ylab = "Frecuencia absoluta (ni)"
)
# Eje Y
ticks_y_ni <- round(seq(0, max_ni_real, length.out = 5), 0)
axis(
side = 2,
at = ticks_y_ni,
labels = ticks_y_ni,
las = 1
)
# Eje X
etiquetas_x <- c(0, 10, 100, 200, 300, "Inf")
axis(
side = 1,
at = 0:length(ni),
labels = etiquetas_x,
cex.axis = 0.7
)
# Etiquetas sobre las barras
text(
x = pos_x,
y = ni,
label = ni,
pos = 3,
cex = 0.8,
font = 2,
col = "black",
xpd = TRUE
)
tabla_presentacion
| Tabla N° 9 | |||||||||
| Distribución de frecuencias del número de fallecidos a nivel mundial | |||||||||
| Rango | Li | Ls | MC | ni | hi (%) |
NI
|
HI (%)
|
||
|---|---|---|---|---|---|---|---|---|---|
| Ascendente | Descendente | Ascendente | Descendente | ||||||
| 0 - 10 | 0 | 10 | 5.00 | 9197 | 95.33 | 9197 | 9648 | 95.33 | 100.00 |
| 10 - 100 | 10 | 100 | 55.00 | 418 | 4.33 | 9615 | 451 | 99.66 | 4.67 |
| 100 - 200 | 100 | 200 | 150.00 | 16 | 0.17 | 9631 | 33 | 99.82 | 0.34 |
| 200 - 300 | 200 | 300 | 250.00 | 7 | 0.07 | 9638 | 17 | 99.90 | 0.18 |
| > 300 | 300 | Inf | 350.00 | 10 | 0.10 | 9648 | 10 | 100.00 | 0.10 |
| TOTAL | 9648 | 100.00 | |||||||
| Elaborado por: Grupo 2 – Carrera de Geología | |||||||||
par(mar = c(5, 5, 4, 2))
n_max_global <- 9648
pos_global_fat <- barplot(
ni,
col = "grey",
border = "black",
space = 0,
las = 1,
ylim = c(0, n_max_global),
yaxt = "n",
main = "Gráfica 14: Distribución extendida de la frecuencia absoluta\ndel número de fallecidos a nivel mundial",
xlab = "Número de fallecidos",
ylab = "Frecuencia absoluta (ni)"
)
ticks_y_fat <- c(0, 2000, 4000, 6000, 8000, n_max_global)
axis(
side = 2,
at = ticks_y_fat,
labels = ticks_y_fat,
las = 1
)
axis(
side = 1,
at = 0:length(ni),
labels = c(Li, max(Ls)),
cex.axis = 0.7
)
abline(
h = n_max_global,
col = "red",
lty = 2
)
text(
x = pos_x,
y = ni,
label = ni,
pos = 3,
cex = 0.8,
font = 2,
col = "black",
xpd = TRUE
)
par(mar = c(5, 5, 4, 2))
max_hi_fat <- max(hi)
barplot(
hi,
col = "#CDB79E",
border = "black",
space = 0,
las = 1,
ylim = c(0, max_hi_fat),
yaxt = "n",
main = "Gráfica 15: Distribución por defecto de la frecuencia relativa\ndel número de fallecidos por intervalos",
xlab = "Número de fallecidos",
ylab = "Porcentaje (%)"
)
ticks_y_hi <- seq(0, max_hi_fat, length.out = 5)
axis(
side = 2,
at = ticks_y_hi,
labels = round(ticks_y_hi, 2),
las = 1
)
axis(
side = 1,
at = 0:length(hi),
labels = c(Li, max(Ls)),
cex.axis = 0.7
)
text(
x = pos_x,
y = hi,
label = round(hi, 2),
pos = 3,
cex = 0.8,
font = 2,
col = "black",
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",
main = "Gráfica 16: Distribución extendida de la frecuencia relativa\ndel número de fallecidos a nivel mundial",
xlab = "Número de fallecidos",
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.7
)
abline(
h = 100,
col = "blue",
lty = 2,
lwd = 1.5
)
text(
x = pos_x,
y = hi,
label = round(hi, 2),
pos = 3,
cex = 0.8,
font = 2,
col = "black",
xpd = TRUE
)
par(
mfrow = c(1, 1),
mar = c(5, 4, 4, 2)
)
boxplot(
fatality,
col = "bisque",
horizontal = TRUE,
xlab = "Número de Fallecidos",
main = "Gráfica 17: Diagrama de Caja del número de\nfallecidos a nivel mundial"
)
# Configuración de márgenes
par(mar = c(7, 5, 4, 11))
# Ojiva Ascendente
plot(
1:length(ni),
Ni_asc,
type = "b",
pch = 17,
col = "black",
xaxt = "n",
xlab = "",
ylab = "Frecuencia Acumulada",
ylim = c(0, max(Ni_asc, na.rm = TRUE)),
main = "Gráfica 18: Ojivas combinadas del número de fallecidos\na nivel mundial"
)
# Ojiva Descendente
lines(
1:length(ni),
Ni_dsc,
type = "b",
pch = 16,
col = "blue"
)
# Eje X
axis(
side = 1,
at = 1:length(ni),
labels = clases_etiquetas,
las = 2
)
mtext(
"Rangos",
side = 1,
line = 5
)
# Leyenda
legend(
"topright",
inset = c(0.04, 0.04),
xpd = TRUE,
legend = c(
"Ascendente (ni ≤)",
"Descendente (ni ≥)"
),
col = c("black", "blue"),
pch = c(17, 16),
lty = 1,
bty = "n",
title = "Tipo de Ojiva",
cex = 0.85
)
Se intentó representar el boxplot sobre el histograma; sin embargo, la
fuerte asimetría positiva de la variable y la presencia de numerosos
valores extremos provocan una compresión excesiva de la caja y de las
barras iniciales. Por esta razón se decidió mantener ambas
representaciones por separado, ya que ofrecen una interpretación mucho
más clara.”
x_bar <- mean(fatality)
Me <- median(fatality)
Mo <- as.numeric(
names(
sort(
table(fatality),
decreasing = TRUE
)[1]
)
)
SD <- sd(fatality)
CV <- (SD / x_bar) * 100
As <- skewness(fatality)
K <- kurtosis(fatality)
tabla_indicadores <- data.frame(
Variable = "Fatality Count",
Min = min(fatality),
Max = max(fatality),
Media = x_bar,
Mediana = Me,
Moda = Mo,
`Desv. Est.` = SD,
`CV (%)` = CV,
Asimetría = As,
Curtosis = K
)
tabla_indicadores_gt <- tabla_indicadores %>%
gt() %>%
tab_header(
title = md(
"**Tabla N° 10: Indicadores Estadísticos del número de fallecidos a nivel mundial**"
)
) %>%
fmt_number(
columns = 4:10,
decimals = 2
) %>%
tab_source_note(
source_note = md(
"Elaborado por: Grupo 2 – Carrera de Geología"
)
)
tabla_indicadores_gt
| Tabla N° 10: Indicadores Estadísticos del número de fallecidos a nivel mundial | |||||||||
| Variable | Min | Max | Media | Mediana | Moda | Desv..Est. | CV.... | Asimetría | Curtosis |
|---|---|---|---|---|---|---|---|---|---|
| Fatality Count | 0 | 5000 | 3.22 | 0.00 | 0.00 | 59.89 | 1,860.15 | 67.58 | 5,255.77 |
| Elaborado por: Grupo 2 – Carrera de Geología | |||||||||
Q1 <- quantile(fatality, 0.25)
Q3 <- quantile(fatality, 0.75)
IQR_f <- Q3 - Q1
lim_inf <- Q1 - 1.5 * IQR_f
lim_sup <- Q3 + 1.5 * IQR_f
outliers_vec <- fatality[
fatality < lim_inf | fatality > lim_sup
]
tabla_outliers <- data.frame(
Variable = "Fatality Count",
Outliers_Detectados = as.character(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° 11**"),
subtitle = md(
"Detección de outliers de la variable número de fallecidos a nivel mundial"
)
) %>%
fmt_number(
columns = 3:6,
decimals = 2
) %>%
tab_source_note(
source_note = md(
"Elaborado por: Grupo 2 – Carrera de Geología"
)
)
tabla_outliers_gt
| Tabla N° 11 | |||||
| Detección de outliers de la variable número de fallecidos a nivel mundial | |||||
| Variable | Outliers_Detectados | Limite_Inferior | Limite_Superior | Q1 | Q3 |
|---|---|---|---|---|---|
| Fatality Count | 1413 | −1.50 | 2.50 | 0.00 | 1.00 |
| Elaborado por: Grupo 2 – Carrera de Geología | |||||
La variable número de fallecidos fluctúa desde 0 hasta 5000, sus valores están en torno a 0, con una desviación estándar de 59.89, siendo un conjunto de datos muy heterogéneo y con sesgo hacia la derecha, a excepción de 1413 valores atípicos que van desde 1 hasta 5000.
Objetivo
Analizar la distribución del número de fallecidos considerando únicamente los deslizamientos que ocasionaron al menos una víctima fatal, con el propósito de caracterizar la magnitud de la letalidad de los eventos mortales y comparar su comportamiento con el inventario total.
library(readxl)
library(dplyr)
library(gt)
library(e1071)
datos_nuevoartes <- read_excel("datos_nuevoartes.xlsx")
fatality_raw <- datos_nuevoartes$fatality_count
fatality_raw <- fatality_raw[!is.na(fatality_raw)]
# Se conservan únicamente los eventos con al menos un fallecido
fatality <- fatality_raw[fatality_raw > 0]
N_total <- length(fatality)
cortes <- c(1, 10, 100, 200, 300, Inf)
Li <- cortes[-length(cortes)]
Ls <- cortes[-1]
clases_etiquetas <- c(
"1 - 10",
"10 - 100",
"100 - 200",
"200 - 300",
"> 300"
)
ni <- numeric(length(Li))
for (i in seq_along(Li)) {
if (is.infinite(Ls[i])) {
ni[i] <- sum(fatality >= Li[i])
} else {
ni[i] <- sum(fatality >= Li[i] &
fatality < Ls[i])
}
}
MC <- c(5, 55, 150, 250, 350)
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° 12**"),
subtitle = md(
"Distribución de frecuencias del número de fallecidos a nivel mundial (eventos mortales)"
)
) %>%
fmt_number(
columns = c(MC, hi, Hi_asc, Hi_dsc),
decimals = 2
) %>%
sub_missing(
columns = everything(),
missing_text = ""
) %>%
cols_label(
Clase = "Rango",
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° 12 | |||||||||
| Distribución de frecuencias del número de fallecidos a nivel mundial (eventos mortales) | |||||||||
| Rango | Li | Ls | MC | ni | hi (%) |
NI
|
HI (%)
|
||
|---|---|---|---|---|---|---|---|---|---|
| Ascendente | Descendente | Ascendente | Descendente | ||||||
| 1 - 10 | 1 | 10 | 5.00 | 1991 | 81.53 | 1991 | 2442 | 81.53 | 100.00 |
| 10 - 100 | 10 | 100 | 55.00 | 418 | 17.12 | 2409 | 451 | 98.65 | 18.47 |
| 100 - 200 | 100 | 200 | 150.00 | 16 | 0.66 | 2425 | 33 | 99.30 | 1.35 |
| 200 - 300 | 200 | 300 | 250.00 | 7 | 0.29 | 2432 | 17 | 99.59 | 0.70 |
| > 300 | 300 | Inf | 350.00 | 10 | 0.41 | 2442 | 10 | 100.00 | 0.41 |
| TOTAL | 2442 | 100.00 | |||||||
| Elaborado por: Grupo 2 – Carrera de Geología | |||||||||
# Configuración de la gráfica
par(mar = c(5, 4, 4, 2))
max_ni_real <- max(ni)
# Generación del histograma
pos_x <- barplot(
ni,
col = "grey",
border = "black",
space = 0,
las = 1,
ylim = c(0, max_ni_real),
yaxt = "n",
xaxt = "n",
main = "Gráfica 19: Distribución local de la frecuencia absoluta\n del número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
ylab = "Frecuencia absoluta (ni)"
)
# Eje Y
ticks_y_ni <- round(seq(0, max_ni_real, length.out = 5), 0)
axis(
side = 2,
at = ticks_y_ni,
labels = ticks_y_ni,
las = 1
)
# Eje X
etiquetas_x <- c(1, 10, 100, 200, 300, "Inf")
axis(
side = 1,
at = 0:length(ni),
labels = etiquetas_x,
cex.axis = 0.7
)
# Etiquetas sobre las barras
text(
x = pos_x,
y = ni,
label = ni,
pos = 3,
cex = 0.8,
font = 2,
col = "black",
xpd = TRUE
)
## 5.2 Histograma Global de la Frecuencia Absoluta (ni) {#f2_sec52}
par(mar = c(5, 5, 4, 2))
n_max_global <- 2442
pos_global_fat <- barplot(
ni,
col = "grey",
border = "black",
space = 0,
las = 1,
ylim = c(0, n_max_global),
yaxt = "n",
main = "Gráfica 20: Distribución global de la frecuencia absoluta\n del número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
ylab = "Frecuencia absoluta (ni)"
)
ticks_y_fat <- c(0, 500, 1000, 1500, 2000, n_max_global)
axis(
side = 2,
at = ticks_y_fat,
labels = ticks_y_fat,
las = 1
)
axis(
side = 1,
at = 0:length(ni),
labels = etiquetas_x,
cex.axis = 0.7
)
abline(
h = n_max_global,
col = "red",
lty = 2
)
text(
x = pos_x,
y = ni,
label = ni,
pos = 3,
cex = 0.8,
font = 2,
col = "black",
xpd = TRUE
)
par(mar = c(5, 5, 4, 2))
max_hi_fat <- max(hi)
barplot(
hi,
col = "#CDB79E",
border = "black",
space = 0,
las = 1,
ylim = c(0, max_hi_fat),
yaxt = "n",
main = "Gráfica 21: Distribución local de la frecuencia relativa\n del número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
ylab = "Porcentaje (%)"
)
ticks_y_hi <- seq(0, max_hi_fat, length.out = 5)
axis(
side = 2,
at = ticks_y_hi,
labels = round(ticks_y_hi, 2),
las = 1
)
axis(
side = 1,
at = 0:length(hi),
labels = etiquetas_x,
cex.axis = 0.7
)
text(
x = pos_x,
y = hi,
label = round(hi, 2),
pos = 3,
cex = 0.8,
font = 2,
col = "black",
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",
main = "Gráfica 22: Distribución global de la frecuencia relativa\n del número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
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 = etiquetas_x,
cex.axis = 0.7
)
abline(
h = 100,
col = "blue",
lty = 2,
lwd = 1.5
)
text(
x = pos_x,
y = hi,
label = round(hi, 2),
pos = 3,
cex = 0.8,
font = 2,
col = "black",
xpd = TRUE
)
par(
mfrow = c(1,1),
mar = c(5,4,4,2)
)
boxplot(
fatality,
col = "bisque",
horizontal = TRUE,
outline = TRUE,
xlab = "Número de fallecidos",
main = "Gráfica 24: Diagrama de caja del número de\nfallecidos (eventos mortales)"
)
par(mar = c(7,5,4,11))
plot(
1:length(ni),
Ni_asc,
type = "b",
pch = 17,
col = "black",
xaxt = "n",
xlab = "",
ylab = "Frecuencia acumulada",
ylim = c(0, max(Ni_asc)),
main = "Gráfica 25: Ojivas combinadas del número de\nfallecidos (eventos mortales)"
)
lines(
1:length(ni),
Ni_dsc,
type = "b",
pch = 16,
col = "blue"
)
axis(
side = 1,
at = 1:length(ni),
labels = clases_etiquetas,
las = 2
)
mtext(
"Rangos",
side = 1,
line = 5
)
legend(
"topright",
inset = c(0.04,0.04),
xpd = TRUE,
legend = c(
"Ascendente (ni ≤)",
"Descendente (ni ≥)"
),
col = c("black","blue"),
pch = c(17,16),
lty = 1,
bty = "n",
title = "Tipo de ojiva",
cex = 0.85
)
x_bar <- mean(fatality)
Me <- median(fatality)
Mo <- as.numeric(
names(
sort(
table(fatality),
decreasing = TRUE
)[1]
)
)
SD <- sd(fatality)
CV <- (SD/x_bar)*100
As <- skewness(fatality)
K <- kurtosis(fatality)
Aquí seguimos el mismo formato elegante de la Fase 1, únicamente cambiando el número de tabla y el subtítulo.
tabla_indicadores <- data.frame(
Variable = "Fatality Count (>0)",
Min = min(fatality),
Max = max(fatality),
Media = x_bar,
Mediana = Me,
Moda = Mo,
`Desv. Est.` = SD,
`CV (%)` = CV,
Asimetría = As,
Curtosis = K
)
tabla_indicadores_gt <- tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla N° 13**"),
subtitle = md("Indicadores estadísticos del número de fallecidos en eventos mortales")
) %>%
fmt_number(
columns = 4:10,
decimals = 2
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
)
tabla_indicadores_gt
| Tabla N° 13 | |||||||||
| Indicadores estadísticos del número de fallecidos en eventos mortales | |||||||||
| Variable | Min | Max | Media | Mediana | Moda | Desv..Est. | CV.... | Asimetría | Curtosis |
|---|---|---|---|---|---|---|---|---|---|
| Fatality Count (>0) | 1 | 5000 | 12.72 | 3.00 | 1.00 | 118.54 | 931.99 | 34.18 | 1,339.22 |
| Elaborado por: Grupo 2 – Carrera de Geología | |||||||||
Q1 <- quantile(fatality,0.25)
Q3 <- quantile(fatality,0.75)
IQR_f <- Q3-Q1
lim_inf <- Q1-1.5*IQR_f
lim_sup <- Q3+1.5*IQR_f
outliers_vec <- fatality[
fatality < lim_inf |
fatality > lim_sup
]
tabla_outliers <- data.frame(
Variable = "Fatality Count (>0)",
Outliers_Detectados = as.character(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° 14**"),
subtitle = md("Detección de valores atípicos del número de fallecidos en eventos mortales")
) %>%
fmt_number(
columns = 3:6,
decimals = 2
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
)
tabla_outliers_gt
| Tabla N° 14 | |||||
| Detección de valores atípicos del número de fallecidos en eventos mortales | |||||
| Variable | Outliers_Detectados | Limite_Inferior | Limite_Superior | Q1 | Q3 |
|---|---|---|---|---|---|
| Fatality Count (>0) | 241 | −8.00 | 16.00 | 1.00 | 7.00 |
| Elaborado por: Grupo 2 – Carrera de Geología | |||||
Al excluir los eventos sin víctimas fatales, el número de fallecidos varía entre 1 y 5000 personas por deslizamiento. La distribución continúa presentando una marcada asimetría positiva, evidenciando que la mayoría de los eventos mortales ocasiona pocas víctimas, mientras que un reducido grupo concentra un elevado número de fallecidos. La media es de 13.00 fallecidos y la desviación estándar de 118.54, lo que refleja una alta variabilidad en la letalidad de los eventos. Asimismo, se identificaron 241 valores atípicos mediante el criterio del rango intercuartílico, confirmando la presencia de eventos excepcionalmente letales dentro del inventario analizado.