Modelo Poisson- Año de Accidente
1.Librerías necesarias
library(openxlsx)
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
2.Cargar datos
datos <- read.xlsx("DerramesEEUU.xlsx", sheet = 1)
2.1- FILTRAR SOLO AÑOS 2010–2016
AnioAccidente <- as.numeric(datos$AnioAccidente)
AnioAccidente <- AnioAccidente[AnioAccidente >= 2010 & AnioAccidente <= 2016]
3. TABLA DE FRECUENCIAS
TDF <- table(AnioAccidente)
Tabla <- as.data.frame(TDF)
names(Tabla) <- c("Anio","ni")
Tabla$hi_porc <- round((Tabla$ni / sum(Tabla$ni))*100,2)
Tabla$Ni_asc <- cumsum(Tabla$ni)
Tabla$Ni_dsc <- rev(cumsum(rev(Tabla$ni)))
Tabla$Hi_asc <- round(cumsum(Tabla$hi_porc),3)
Tabla$Hi_dsc <- round(rev(cumsum(rev(Tabla$hi_porc))),3)
TDFFinal <- rbind(Tabla, data.frame(
Anio="TOTAL",
ni=sum(Tabla$ni),
hi_porc=100,
Ni_asc=" ",
Ni_dsc=" ",
Hi_asc=" ",
Hi_dsc=" "
))
library(gt)
TDFFinal %>%
gt() %>%
tab_header(
title = md("**Tabla N°1**"),
subtitle = md("**Distribución de accidentes por año (2010–2016)**")
) %>%
tab_source_note(source_note = md("Autor: Grupo 1"))
| Tabla N°1 |
| Distribución de accidentes por año (2010–2016) |
| Anio |
ni |
hi_porc |
Ni_asc |
Ni_dsc |
Hi_asc |
Hi_dsc |
| 2010 |
346 |
12.55 |
346 |
2758 |
12.55 |
100 |
| 2011 |
336 |
12.18 |
682 |
2412 |
24.73 |
87.45 |
| 2012 |
362 |
13.13 |
1044 |
2076 |
37.86 |
75.27 |
| 2013 |
400 |
14.50 |
1444 |
1714 |
52.36 |
62.14 |
| 2014 |
447 |
16.21 |
1891 |
1314 |
68.57 |
47.64 |
| 2015 |
453 |
16.42 |
2344 |
867 |
84.99 |
31.43 |
| 2016 |
414 |
15.01 |
2758 |
414 |
100 |
15.01 |
| TOTAL |
2758 |
100.00 |
|
|
|
|
| Autor: Grupo 1 |
4. GRÁFICA FRECUENCIAS
barplot(Tabla$ni,
main="Cantidad de accidentes por año (2010–2016)",
xlab="Año",
ylab="Cantidad",
col="slategray1",
names.arg=Tabla$Anio,
las=1)

5. MODELO POISSON
5.1-Probabilidades observadas
Tabla$hi <- Tabla$ni/sum(Tabla$ni)
5.2-Clases consecutivas
Tabla$Clase <- 1:nrow(Tabla)
5.3-Lambda
lambda <- sum(Tabla$Clase * Tabla$ni)/sum(Tabla$ni)
5.4-Probabilidades esperadas poisson
Fe <- dpois(Tabla$Clase, lambda)
6. GRÁFICA MODELO VS OBSERVADO
barplot(rbind(Tabla$hi, Fe),
beside=TRUE,
col=c("slategray2","skyblue4"),
names.arg=Tabla$Anio,
main="Modelo Poisson vs Observado (2010–2016)",
xlab="Año",
ylab="Probabilidad")
legend("topright",
legend=c("Observado","Poisson"),
fill=c("slategray2","skyblue4"))
# 7. TEST DE PEARSON
plot(Tabla$hi,Fe,
main="Correlación Observado vs Esperado",
xlab="Observado",
ylab="Esperado",
pch=19,
col="slategray2")
abline(lm(Fe~Tabla$hi),col="red",lwd=2)

8. TEST CHI CUADRADO
x2 <- sum((Tabla$hi-Fe)^2/Fe)
gl <- (nrow(Tabla)-1)-1
alpha <- 0.05
critico <- qchisq(1-alpha,gl)
x2
## [1] 0.211037
critico
## [1] 11.0705
8.1-decisión
if(x2 < critico){
resultado <- "No se rechaza H0"
}else{
resultado <- "Se rechaza H0"
}
resultado
## [1] "No se rechaza H0"
9. TABLA RESUMEN TEST
Tabla_resumen <- data.frame(
Variable="Año accidente (2010–2016)",
Modelo="Poisson",
Chi_Cuadrado=round(x2,3),
Umbral=round(critico,3),
Resultado=resultado
)
Tabla_resumen %>%
gt() %>%
tab_header(
title=md("**Tabla N°2**"),
subtitle=md("**Resumen de pruebas del modelo Poisson**")
) %>%
tab_source_note(source_note = md("Autor: Grupo 1"))
| Tabla N°2 |
| Resumen de pruebas del modelo Poisson |
| Variable |
Modelo |
Chi_Cuadrado |
Umbral |
Resultado |
| Año accidente (2010–2016) |
Poisson |
0.211 |
11.07 |
No se rechaza H0 |
| Autor: Grupo 1 |
10. PROBABILIDAD PARA 2016
clase_2016 <- Tabla$Clase[Tabla$Anio==2016]
prob_2016 <- dpois(clase_2016, lambda)
prob_2016
## [1] 0.06811865
11. CONCLUSIONES AUTOMÁTICAS
cat("\nCONCLUSIONES\n")
##
## CONCLUSIONES
cat("\n1. El modelo de Poisson fue aplicado al periodo 2010–2016 para describir la ocurrencia anual de accidentes.\n")
##
## 1. El modelo de Poisson fue aplicado al periodo 2010–2016 para describir la ocurrencia anual de accidentes.
cat("\n2. El estadístico Chi-cuadrado calculado fue:", round(x2,3),
"y el valor crítico fue:", round(critico,3),".\n")
##
## 2. El estadístico Chi-cuadrado calculado fue: 0.211 y el valor crítico fue: 11.07 .
if(x2 < critico){
cat("\n3. Como el estadístico es menor que el valor crítico, no se rechaza H0 y el modelo Poisson es adecuado.\n")
}else{
cat("\n3. Como el estadístico es mayor que el valor crítico, se rechaza H0 y el modelo Poisson no es adecuado.\n")
}
##
## 3. Como el estadístico es menor que el valor crítico, no se rechaza H0 y el modelo Poisson es adecuado.
cat("\n5. La probabilidad estimada de ocurrencia de accidentes en el año 2016 es:",
round(prob_2016*100,2),"%.\n")
##
## 5. La probabilidad estimada de ocurrencia de accidentes en el año 2016 es: 6.81 %.
cat("\n6. En conclusión, la frecuencia anual de accidentes puede modelarse como un proceso aleatorio de tasa media constante, consistente con un modelo de Poisson.\n")
##
## 6. En conclusión, la frecuencia anual de accidentes puede modelarse como un proceso aleatorio de tasa media constante, consistente con un modelo de Poisson.