A continuación, se presenta el análisis estadístico descriptivo de la
variable Fatality Count. Para obtener una visión integral del fenómeno,
el estudio se ha dividido en dos fases: primero, un análisis del
inventario total que incluye eventos sin víctimas (fallecidos = 0),
permitiendo observar la frecuencia de ocurrencia general; y segundo, un
análisis específico de letalidad que excluye los ceros, centrado
exclusivamente en la magnitud del impacto de los eventos mortales.
PRIMERA FASE
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
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)
2. DEFINICIÓN DE INTERVALOS REPRESENTATIVOS
cortes <- c(0, 1, 2, 5, 10, 20, 50, 100, 250, Inf)
Li <- cortes[-length(cortes)]
Ls <- cortes[-1]
clases_etiquetas <- c("0", "1", "2-4", "5-9", "10-19", "20-49", "50-99", "100-249", "≥250")
3. 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])
}
}
# Marcas de Clase (Punto medio estimado para rangos representativos)
MC <- c(0, 1, 3, 7, 14.5, 34.5, 74.5, 174.5, 300)
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
)
5. 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(hi, Hi_asc, Hi_dsc, MC), decimals = 2) %>%
sub_missing(columns = everything(), missing_text = "") %>%
cols_label(
Clase = "Rango",
Li = "Li",
Ls = "Ls",
MC = "MC",
ni = "ni",
hi = "hi (%)",
Ni_asc = "Ni (asc)",
Ni_dsc = "Ni (desc)",
Hi_asc = "Hi (asc %)",
Hi_dsc = "Hi (desc %)"
) %>%
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 (asc) |
Ni (desc) |
Hi (asc %) |
Hi (desc %) |
| 0 |
0 |
1 |
0.00 |
7206 |
74.69 |
7206 |
9648 |
74.69 |
100.00 |
| 1 |
1 |
2 |
1.00 |
624 |
6.47 |
7830 |
2442 |
81.16 |
25.31 |
| 2-4 |
2 |
5 |
3.00 |
893 |
9.26 |
8723 |
1818 |
90.41 |
18.84 |
| 5-9 |
5 |
10 |
7.00 |
474 |
4.91 |
9197 |
925 |
95.33 |
9.59 |
| 10-19 |
10 |
20 |
14.50 |
252 |
2.61 |
9449 |
451 |
97.94 |
4.67 |
| 20-49 |
20 |
50 |
34.50 |
130 |
1.35 |
9579 |
199 |
99.28 |
2.06 |
| 50-99 |
50 |
100 |
74.50 |
36 |
0.37 |
9615 |
69 |
99.66 |
0.72 |
| 100-249 |
100 |
250 |
174.50 |
19 |
0.20 |
9634 |
33 |
99.85 |
0.34 |
| ≥250 |
250 |
Inf |
300.00 |
14 |
0.15 |
9648 |
14 |
100.00 |
0.15 |
| TOTAL |
|
|
|
9648 |
100.00 |
|
|
|
|
| Elaborado por: Grupo 2 – Carrera de Geología |
6. HISTOGRAMAS (Local y Global)
6.1 Histograma Local de (ni)
# Margen estándar
par(mar=c(5, 4, 4, 2))
# 1. Graficamos Local (ni)
pos_x_fat <- barplot(ni,
col = "grey",
border = "black",
space = 0,
las = 1,
main = "Gráfica 13: Distribución local de la frecuencia absoluta\ndel número de fallecidos (Fatality Count)",
xlab = "Número de fallecidos",
ylab = "Frecuencia absoluta (ni)",
axes = TRUE)
# 2. Eje X en las intersecciones
axis(side = 1, at = 0:length(ni), labels = c(Li, max(Ls)), cex.axis = 0.7)

6.2 Histograma Global de (ni)
# Margen izquierdo ajustado para valores grandes
par(mar=c(5, 5, 4, 2))
# Definimos el tope global solicitado
n_max_global <- 9648
# 1. Ploteo Global (Eje Y hasta 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 global de la frecuencia absoluta\ndel número de fallecidos a nivel mundial",
xlab = "Número de fallecidos",
ylab = "Frecuencia absoluta (ni)")
# 2. Representación manual del eje Y con el tope de 9648
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)
# 3. Eje X en las intersecciones
axis(side = 1, at = 0:length(ni), labels = c(Li, max(Ls)), cex.axis = 0.7)
# Línea de tope global
abline(h = n_max_global, col = "red", lty = 2)

6.3 Histograma Local de (hi)
par(mar=c(5, 5, 4, 2))
max_hi_fat <- max(hi)
# 1. Ploteo Local de 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 local de la frecuencia relativa\ndel número de fallecidos por intervalos",
xlab = "Número de fallecidos",
ylab = "Porcentaje (%)")
# 2. Eje Y manual hasta el máximo real
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)
# 3. Eje X en las intersecciones
axis(side = 1, at = 0:length(hi), labels = c(Li, max(Ls)), cex.axis = 0.7)

6.4 Histograma Global de (hi)
par(mar=c(5, 5, 4, 2))
# 1. Ploteo Global de hi (Eje Y al 100)
barplot(hi,
col = "#CDB79E",
border = "black",
space = 0,
las = 1,
ylim = c(0, 100),
yaxt = "n",
main = "Gráfica 16: Distribución global de la frecuencia relativa\ndel número de fallecidos a nivel mundial",
xlab = "Número de fallecidos",
ylab = "Porcentaje (%)")
# 2. Eje Y manual (0% a 100%)
ticks_hi_global <- seq(0, 100, by = 20)
axis(side = 2, at = ticks_hi_global, labels = paste0(ticks_hi_global, "%"), las = 1)
# 3. Eje X en las intersecciones
axis(side = 1, at = 0:length(hi), labels = c(Li, max(Ls)), cex.axis = 0.7)
# Línea de referencia 100%
abline(h = 100, col = "blue", lty = 2, lwd = 1.5)

7. DIAGRAMA DE CAJA (BOXPLOT)
par(mfrow = c(1, 1), mar = c(5, 4, 4, 2))
boxplot(fatality, col = "bisque", main = "Gráfica 17: Diagrama de Caja del número de
fallecidos a nivel mundial",
horizontal = TRUE, xlab = "Número de Fallecidos")

8. DIAGRAMA DE OJIVAS COMBINADAS
# Aumentamos el margen derecho (4to valor) para que la leyenda sea visible
par(mar = c(7, 5, 4, 11))
# Graficamos la Ojiva Ascendente
plot(1:length(ni), Ni_asc, type = "b", pch = 17, col = "black",
xaxt = "n", xlab = "", ylab = "Frecuencia Acumulada",
main = "Gráfica 18: Ojivas combinadas del número de fallecidos
a nivel mundial",
ylim = c(0, max(Ni_asc, na.rm = TRUE)))
# Graficamos la Ojiva Descendente
lines(1:length(ni), Ni_dsc, type = "b", pch = 16, col = "blue")
# Eje X con etiquetas rotadas
axis(1, at = 1:length(ni), labels = clases_etiquetas, las = 2)
mtext("Rangos", side = 1, line = 5)
# ÚNICA LEYENDA: Combinando toda la información
legend(
"topright",
inset = c(0.04, 0.04), # Se mueve a la derecha del área blanca
xpd = TRUE, # Permite que la leyenda salga del gráfico
legend = c("Ascendente (ni ≤)", "Descendente (ni ≥)"),
col = c("black", "blue"), # Colores exactos usados en plot y lines
pch = c(17, 16), # Símbolos exactos
lty = 1, # Añade la línea al símbolo en la leyenda
bty = "n", # Sin recuadro
title = "Tipo de Ojiva",
cex = 0.85 # Tamaño ajustado para visibilidad
)

9. 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)
9.1. 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 |
10. 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]
10.1. 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 |
11. CONCLUSIÓN
La variable número de fallecidos fluctua desde 0 hasta 5000, sus
valores están entorno a 0, con una desviación estandar de 59.89 siendo
un conjunto de valores muy heterogeneo con sesgo hacia la derecha, a
excepción de 1413 valores atípicos que van desde 1 hasta 5000.
SEGUNDA FASE
1. CARGA DE LIBRERÍAS Y DATOS
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)]
# FILTRADO: Solo eventos con fallecidos (> 0)
fatality <- fatality_raw[fatality_raw > 0]
N_total <- length(fatality)
2. DEFINICIÓN DE INTERVALOS REPRESENTATIVOS (Sin el
0)
# Los rangos inician en 1 y se ensanchan para captar la letalidad
cortes <- c(1, 2, 5, 10, 20, 50, 100, 250, 500, Inf)
Li <- cortes[-length(cortes)]
Ls <- cortes[-1]
clases_etiquetas <- c("1", "2-4", "5-9", "10-19", "20-49", "50-99", "100-249", "250-499", "≥500")
3. 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])
}
}
# Marca de Clase (MC)
MC <- c(1, 3, 7, 14.5, 34.5, 74.5, 174.5, 374.5, 600)
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 Creación de la tabla
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 para 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 (Eventos Mortales)*"),
subtitle = md("Distribución de frecuencias del número de fallecidos a nivel mundial
(sin considerar eventos sin fallecidos)")
) %>%
fmt_number(columns = c(hi, Hi_asc, Hi_dsc, MC), decimals = 2) %>%
sub_missing(columns = everything(), missing_text = "") %>%
cols_label(
Clase = "Rango", ni = "ni", hi = "hi (%)",
Ni_asc = "Ni (asc)", Ni_dsc = "Ni (desc)",
Hi_asc = "Hi (asc %)", Hi_dsc = "Hi (desc %)"
) %>%
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 (Eventos Mortales) |
| Distribución de frecuencias del número de fallecidos a nivel mundial
(sin considerar eventos sin fallecidos) |
| Rango |
Li |
Ls |
MC |
ni |
hi (%) |
Ni (asc) |
Ni (desc) |
Hi (asc %) |
Hi (desc %) |
| 1 |
1 |
2 |
1.00 |
624 |
25.55 |
624 |
2442 |
25.55 |
100.00 |
| 2-4 |
2 |
5 |
3.00 |
893 |
36.57 |
1517 |
1818 |
62.12 |
74.45 |
| 5-9 |
5 |
10 |
7.00 |
474 |
19.41 |
1991 |
925 |
81.53 |
37.88 |
| 10-19 |
10 |
20 |
14.50 |
252 |
10.32 |
2243 |
451 |
91.85 |
18.47 |
| 20-49 |
20 |
50 |
34.50 |
130 |
5.32 |
2373 |
199 |
97.17 |
8.15 |
| 50-99 |
50 |
100 |
74.50 |
36 |
1.47 |
2409 |
69 |
98.65 |
2.83 |
| 100-249 |
100 |
250 |
174.50 |
19 |
0.78 |
2428 |
33 |
99.43 |
1.35 |
| 250-499 |
250 |
500 |
374.50 |
11 |
0.45 |
2439 |
14 |
99.88 |
0.57 |
| ≥500 |
500 |
Inf |
600.00 |
3 |
0.12 |
2442 |
3 |
100.00 |
0.12 |
| TOTAL |
|
|
|
2442 |
100.00 |
|
|
|
|
| Elaborado por: Grupo 2 – Carrera de Geología |
5 HISTOGRAMAS DE FRECUENCIA ABSOLUTA
5.1. Histograma Local de (ni)
# Margen estándar
par(mar=c(5, 4, 4, 2))
# 1. Definimos el máximo real de ni
max_ni_real <- max(ni)
# 2. Graficamos Local (ni) con tope en el máximo valor obtenido
pos_x <- barplot(ni,
col = "#FAEBD7",
border = "black",
space = 0,
las = 1,
ylim = c(0, max_ni_real),
yaxt = "n",
main = "Gráfica 19: Distribución local de la frecuencia absoluta\ndel número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
ylab = "Frecuencia absoluta (ni)")
# 3. Eje Y manual hasta el máximo real (sin decimales)
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)
# 4. Eje X en las intersecciones
etiquetas_x <- c(1, 2, 5, 10, 20, 50, 100, 250, 500, "Max")
axis(side = 1, at = 0:length(ni), labels = etiquetas_x, cex.axis = 0.7)

5.2 Histograma global de (ni)
# Margen izquierdo ajustado para legibilidad
par(mar=c(5, 5, 4, 2))
n_max_global <- 2442
# 1. Ploteo Global (Eje Y hasta 2442)
pos_global <- barplot(ni,
col = "#FAEBD7",
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\ndel número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
ylab = "Frecuencia absoluta (ni)")
# 2. Eje Y manual con el tope de 2442
ticks_y <- c(0, 500, 1000, 1500, 2000, n_max_global)
axis(side = 2, at = ticks_y, labels = ticks_y, las = 1)
# 3. Eje X en las intersecciones
axis(side = 1, at = 0:length(ni), labels = etiquetas_x, cex.axis = 0.7)
# Línea de tope global
abline(h = n_max_global, col = "black", lty = 2)

5.3 Histograma local de (hi)
par(mar=c(5, 5, 4, 2))
max_hi_real <- max(hi)
# 1. Ploteo Local de hi
barplot(hi,
col = "#7FFFD4",
border = "black",
space = 0,
las = 1,
ylim = c(0, max_hi_real),
yaxt = "n",
main = "Gráfica 21: Distribución local de la frecuencia relativa\ndel número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
ylab = "Porcentaje (%)")
# 2. Eje Y manual redondeado (quitando los 8 decimales)
ticks_y_hi <- seq(0, max_hi_real, length.out = 5)
axis(side = 2, at = ticks_y_hi, labels = round(ticks_y_hi, 2), las = 1)
# 3. Eje X en las intersecciones
axis(side = 1, at = 0:length(hi), labels = etiquetas_x, cex.axis = 0.7)

5.4 Histograma Global de (hi)
par(mar=c(5, 5, 4, 2))
# 1. Ploteo Global de hi (Tope 100%)
barplot(hi,
col = "#7FFFD4",
border = "black",
space = 0,
las = 1,
ylim = c(0, 100),
yaxt = "n",
main = "Gráfica 22: Distribución global de la frecuencia relativa
del número de fallecidos (Eventos Mortales)",
xlab = "Número de fallecidos (Eventos Mortales)",
ylab = "Porcentaje (%)")
# 2. Eje Y manual (0% a 100%)
ticks_hi_global <- seq(0, 100, by = 20)
axis(side = 2, at = ticks_hi_global, labels = paste0(ticks_hi_global, "%"), las = 1)
# 3. Eje X en las intersecciones
axis(side = 1, at = 0:length(hi), labels = etiquetas_x, cex.axis = 0.7)
# Línea de referencia 100%
abline(h = 100, col = "blue", lty = 2, lwd = 1.5)

6 DIAGRAMA DE CAJA (BOXPLOT)
par(mfrow = c(1, 1), mar = c(5, 4, 4, 2))
boxplot(fatality, col = "tomato", main = "Gráfica 23: Diagrama de Caja de
la variable número de fallecidos a nivel mundial (excluyendo eventos sin fallecidos)",
horizontal = TRUE, xlab = "Número de Fallecidos")

7. DIAGRAMA DE OJIVAS COMBINADAS
# Paso 1: Configurar márgenes amplios (Abajo, Izquierda, Arriba, Derecha)
# Aumentamos el margen derecho a 10 para dar espacio a la leyenda
par(mar = c(8, 5, 4, 10))
# Paso 2: Graficar Ojiva Ascendente (Negra)
plot(1:length(ni), Ni_asc, type = "b", pch = 17, col = "black",
xaxt = "n", xlab = "", ylab = "Frecuencia Acumulada",
main = "Gráfica 24: Ojivas combinadas de la variable número
de fallecidos a nivel mundial (excluyendo eventos sin fallecidos) ",
ylim = c(0, max(Ni_asc) * 1.05)) # Un poco de espacio arriba
# Paso 3: Graficar Ojiva Descendente (Roja)
lines(1:length(ni), Ni_dsc, type = "b", pch = 16, col = "red")
# Paso 4: Ejes y etiquetas
axis(1, at = 1:length(ni), labels = clases_etiquetas, las = 2)
mtext("Rangos de Fallecidos", side = 1, line = 6)
# Paso 5: LEYENDA (Ajustada para que no desaparezca)
# La colocamos en 'topright' pero DENTRO del área primero para probar
legend(
"topright",
inset = c(0.07, 0.07), # Si sigue sin verse, cambia esto a c(0, 0)
xpd = TRUE, # Permite dibujar fuera del recuadro
legend = c("Ascendente (ni ≤)", "Descendente (ni ≥)"),
col = c("black", "red"),
pch = c(17, 16),
lty = 1,
bty = "n", # Sin borde para que no estorbe
cex = 0.8 # Un poco más pequeña para asegurar espacio
)

8. 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)
8.1 Tabla de indicadores
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° 13: Indicadores estadísticos del número de fallecidos a nivel mundial (excluyendo eventos sin fallecidos)*")) %>%
fmt_number(columns = 4:10, decimals = 2)
tabla_indicadores_gt
| Tabla N° 13: Indicadores estadísticos del número de fallecidos a nivel mundial (excluyendo eventos sin fallecidos) |
| Variable |
Min |
Max |
Media |
Mediana |
Moda |
Desv..Est. |
CV.... |
Asimetría |
Curtosis |
| Fatality Count |
1 |
5000 |
12.72 |
3.00 |
1.00 |
118.54 |
931.99 |
34.18 |
1,339.22 |
9. 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]
9.1 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: Detección de valores atípicos del número de fallecidos a nivel mundial (excluyendo eventos sin fallecidos)*")) %>%
fmt_number(columns = 3:6, decimals = 2)
tabla_outliers_gt
| Tabla N° 14: Detección de valores atípicos del número de fallecidos a nivel mundial (excluyendo eventos sin fallecidos) |
| Variable |
Outliers_Detectados |
Limite_Inferior |
Limite_Superior |
Q1 |
Q3 |
| Fatality Count (>0) |
241 |
−8.00 |
16.00 |
1.00 |
7.00 |
10. CONCLUSIÓN
La variable número de fallecidos (excluyendo eventos sin fallecidos)
fluctua desde 1 hasta 5000, sus valores están entorno a 13 fallecidos,
con una desviación estandar de 118.54 siendo un conjunto de valores muy
heterogeneo con sesgo hacia la derecha, a excepción de 241 valores
atípicos que van desde 7 hasta 5000.