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)
DEFINICIÓN DE
INTERVALOS REPRESENTATIVOS
Li <- c(0, 1, 2, 5, 10, 25, 50)
Ls <- c(0, 1, 4, 9, 24, 49, Inf)
MC <- c(0, 1, 3, 7, 17, 37, 75)
clases <- c(
"0",
"1",
"2–4",
"5–9",
"10–24",
"25–49",
"≥50"
)
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])
}
}
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)))
TABLA DE
FRECUENCIAS
Tabla de frecuencias
simple
TDF_fatality <- data.frame(
Clase = clases,
Li = Li,
Ls = ifelse(is.infinite(Ls), "∞", Ls),
MC = MC,
ni = ni,
hi = hi,
Ni_asc = Ni_asc,
Ni_dsc = Ni_dsc,
Hi_asc = Hi_asc,
Hi_dsc = Hi_dsc
)
TDF_fatality <- rbind(
TDF_fatality,
data.frame(
Clase = "TOTAL",
Li = "",
Ls = "",
MC = "",
ni = sum(ni),
hi = 100,
Ni_asc = "",
Ni_dsc = "",
Hi_asc = "",
Hi_dsc = ""
)
)
TDF_fatality
## Clase Li Ls MC ni hi Ni_asc Ni_dsc Hi_asc
## 1 0 0 0 0 7206 74.6890547 7206 9648 74.6890547263682
## 2 1 1 1 1 624 6.4676617 7830 2442 81.1567164179104
## 3 2–4 2 4 3 893 9.2558043 8723 1818 90.4125207296849
## 4 5–9 5 9 7 474 4.9129353 9197 925 95.325456053068
## 5 10–24 10 24 17 299 3.0990879 9496 451 98.424543946932
## 6 25–49 25 49 37 83 0.8602819 9579 152 99.2848258706468
## 7 ≥50 50 ∞ 75 69 0.7151741 9648 69 100
## 8 TOTAL 9648 100.0000000
## Hi_dsc
## 1 100
## 2 25.3109452736318
## 3 18.8432835820896
## 4 9.58747927031509
## 5 4.67454394693201
## 6 1.57545605306799
## 7 0.715174129353234
## 8
Tabla de
presentación
tabla_fatality <- TDF_fatality %>%
mutate(
hi = round(as.numeric(hi), 2),
Hi_asc = round(as.numeric(Hi_asc), 2)
) %>%
gt() %>%
tab_header(
title = md("**Tabla N° 1**"),
subtitle = md("Distribución de frecuencias de la variable Fatality Count")
) %>%
cols_label(
Clase = "Clase",
Li = "Límite inferior",
Ls = "Límite superior",
MC = "Marca de clase",
ni = "Frecuencia absoluta (ni)",
hi = "Frecuencia relativa (%)",
Ni_asc = "Frecuencia acumulada (Ni)",
Hi_asc = "Frecuencia relativa acumulada (%)"
) %>%
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_fatality
| Tabla N° 1 |
| Distribución de frecuencias de la variable Fatality Count |
| Clase |
Límite inferior |
Límite superior |
Marca de clase |
Frecuencia absoluta (ni) |
Frecuencia relativa (%) |
Frecuencia acumulada (Ni) |
Ni_dsc |
Frecuencia relativa acumulada (%) |
Hi_dsc |
| 0 |
0 |
0 |
0 |
7206 |
74.69 |
7206 |
9648 |
74.69 |
100 |
| 1 |
1 |
1 |
1 |
624 |
6.47 |
7830 |
2442 |
81.16 |
25.3109452736318 |
| 2–4 |
2 |
4 |
3 |
893 |
9.26 |
8723 |
1818 |
90.41 |
18.8432835820896 |
| 5–9 |
5 |
9 |
7 |
474 |
4.91 |
9197 |
925 |
95.33 |
9.58747927031509 |
| 10–24 |
10 |
24 |
17 |
299 |
3.10 |
9496 |
451 |
98.42 |
4.67454394693201 |
| 25–49 |
25 |
49 |
37 |
83 |
0.86 |
9579 |
152 |
99.28 |
1.57545605306799 |
| ≥50 |
50 |
∞ |
75 |
69 |
0.72 |
9648 |
69 |
100.00 |
0.715174129353234 |
| TOTAL |
|
|
|
9648 |
100.00 |
|
|
NA |
|
| Elaborado por: Grupo 2 – Carrera de Geología |
HISTOGRAMAS
hist(
fatality,
col = "grey",
main = "Gráfica 1: Histograma de frecuencia absoluta de fatality_count",
xlab = "Número de fallecidos",
ylab = "Frecuencia (ni)"
)

hist(
fatality,
freq = FALSE,
col = "grey",
main = "Gráfica 2: Histograma de frecuencia relativa de fatality_count",
xlab = "Número de fallecidos",
ylab = "Densidad"
)

DIAGRAMA DE
CAJA
boxplot(
fatality,
horizontal = TRUE,
col = "lightgrey",
main = "Gráfica 3: Diagrama de caja de fatality_count",
xlab = "Número de fallecidos"
)

DIAGRAMA DE
OJIVAS COMBINADAS
par(mar = c(5, 5, 4, 8))
plot(
Li,
Ni_dsc,
type = "b",
pch = 16,
col = "darkblue",
xlab = "Número de fallecidos",
ylab = "Frecuencia acumulada (ni)",
main = "Gráfica 4: Ojivas combinadas de fatality_count",
ylim = c(0, N_total)
)
lines(
ifelse(is.infinite(Ls), max(fatality), Ls),
Ni_asc,
type = "b",
pch = 17,
col = "black"
)
legend(
"topright",
legend = c("Ojiva descendente (ni ≥)", "Ojiva ascendente (ni ≤)"),
col = c("darkblue", "black"),
pch = c(16, 17),
bty = "n"
)

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)
Tabla de
indicadores
tabla_indicadores <- data.frame(
Variable = "Fatality Count",
Min = min(fatality),
Max = max(fatality),
Media = round(x_bar, 2),
Mediana = Me,
Moda = Mo,
`Desv. Est.` = round(SD, 2),
`CV (%)` = round(CV, 2),
Asimetría = round(As, 2),
Curtosis = round(K, 2)
)
tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla N° 2**"),
subtitle = md("Indicadores estadísticos de la variable Fatality Count")
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
)
| Tabla N° 2 |
| Indicadores estadísticos de la variable Fatality Count |
| Variable |
Min |
Max |
Media |
Mediana |
Moda |
Desv..Est. |
CV.... |
Asimetría |
Curtosis |
| Fatality Count |
0 |
5000 |
3.22 |
0 |
0 |
59.89 |
1860.15 |
67.58 |
5255.77 |
| Elaborado por: Grupo 2 – Carrera de Geología |
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 <- fatality[fatality < lim_inf | fatality > lim_sup]
Tabla de
Outliers
tabla_outliers <- data.frame(
Variable = "Fatality Count",
Outliers_Detectados = ifelse(length(outliers) == 0, "No se detectan", length(outliers)),
Limite_Inferior = round(lim_inf, 2),
Limite_Superior = round(lim_sup, 2),
Q1 = Q1,
Q3 = Q3
)
tabla_outliers %>%
gt() %>%
tab_header(
title = md("**Tabla N° 3**"),
subtitle = md("Detección de outliers – Método IQR")
) %>%
tab_source_note(
source_note = md("Elaborado por: Grupo 2 – Carrera de Geología")
)
| Tabla N° 3 |
| Detección de outliers – Método IQR |
| Variable |
Outliers_Detectados |
Limite_Inferior |
Limite_Superior |
Q1 |
Q3 |
| Fatality Count |
1413 |
-1.5 |
2.5 |
0 |
1 |
| Elaborado por: Grupo 2 – Carrera de Geología |
Conclusión
La variable fallecidos fluctúa desde 0 hasta 500. Los valores están
centrados en una mediana de 0, lo que indica que la mayoría de los
eventos no registran víctimas, aunque posee una media de 3.22
influenciada por valores extremos. Con una desviación estándar de 13.52,
representa un conjunto muy heterogéneo. Los valores atípicos se
encuentran en la parte derecha de la distribución, representando eventos
catastróficos. La acumulación de valores es masiva en el límite inferior
(0). Esta variable es crítica para la gestión de riesgos y la evaluación
del impacto social de los desastres naturales.