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.

PRIMERA FASE

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.

1. CARGA DE LIBRERÍAS Y DATOS

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")

2. EXTRAER LA VARIABLE

fatality <- datos_nuevoartes$fatality_count
fatality <- fatality[!is.na(fatality)]

N_total <- length(fatality)

3. CONTEO

3.1 Definición de intervalos representativos

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"
)

3.2 Cálculo de frecuencias

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])
    
  }
  
}

3.3 Marcas de clase

MC <- c(5, 55, 150, 250, 350)

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 de frecuencias 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° 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

5. GRÁFICAS

5.1 Histograma por defecto de la Frecuencia Absoluta (ni)

# 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

5.2 Histograma extendido de la Frecuencia Absoluta (ni)

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
)

5.3 Histograma por defecto de la Frecuencia Relativa (hi)

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
)

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",
  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
)

5.5 Diagrama de Caja (Boxplot)

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"
)

5.6 Diagrama de Ojivas Combinadas

# 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.”

6. INDICADORES

6.1 Indicadores estadísticos

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)

6.2 Tabla de indicadores estadísticos

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

6.3 Detección de outliers

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
]

6.4 Tabla de outliers

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

7. CONCLUSIÓN

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.

SEGUNDA FASE

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.

1. CARGA DE DATOS Y LIBRERÍAS

library(readxl)
library(dplyr)
library(gt)
library(e1071)

datos_nuevoartes <- read_excel("datos_nuevoartes.xlsx")

2. EXTRAER LAS VARIABLES

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)

3. CONTEO

3.1 Definición de intervalos representativos

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"
)

3.2 Cálculo de frecuencias

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])

  }

}

3.3 Marcas de clase

MC <- c(5, 55, 150, 250, 350)

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 de frecuencias 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° 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

5. GRÁFICAS

5.1 Histograma Local de la Frecuencia Absoluta (ni)

# 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
)

5.3 Histograma Local de la Frecuencia Relativa (hi)

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
)

5.4 Histograma Global 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",
  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
)

5.5 Diagrama de Caja (Boxplot)

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)"
)

5.6 Diagrama de Ojivas Combinadas

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
)

6. INDICADORES

6.1 Indicadores estadísticos

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)

6.2 Tabla de indicadores estadísticos

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

6.3 Detección de outliers

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
]

6.4 Tabla de outliers

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

7. CONCLUSIÓN

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.