1.Carga de datos


setwd("/cloud/project/")
datos<-read.csv("DerramesEEUU.csv", header = TRUE, sep=";" , dec=",",na.strings ="-")
str(datos)
## 'data.frame':    2760 obs. of  59 variables:
##  $ NumeroInforme                          : int  20100064 20100054 20100092 20100098 20100101 20100102 20100113 20100120 20100039 20100150 ...
##  $ NumeroComplementario                   : int  15072 15114 15120 15127 15130 15132 15146 15162 15197 15205 ...
##  $ DiaAccidente                           : int  8 25 10 28 27 29 11 23 15 11 ...
##  $ MesAccidente                           : int  4 3 5 4 5 5 6 5 3 1 ...
##  $ AnioAccidente                          : int  2010 2010 2010 2010 2010 2010 2010 2010 2010 2010 ...
##  $ HoraAccidente                          : int  6 13 6 24 3 14 7 6 15 2 ...
##  $ AmPmAccidente                          : chr  "a. m." "p. m." "a. m." "p. m." ...
##  $ IDOperador                             : int  31684 18779 30829 12105 20160 30003 1248 300 18718 32296 ...
##  $ NombreOperador                         : chr  "CONOCOPHILLIPS" "SUNOCO, INC (R&M)" "TEPPCO CRUDE PIPELINE, LLC" "MAGELLAN AMMONIA PIPELINE, L.P." ...
##  $ NombreOleoductoInstalacion             : chr  "GD-03, GOLD LINE" "PHILADELPHIA REFINERY - WEST YARD" "HOBBS TO MIDLAND" "WHITING TO EARLY SEGMENT" ...
##  $ UbicacionOleoducto                     : chr  "ONSHORE" "ONSHORE" "ONSHORE" "ONSHORE" ...
##  $ TipoOleoducto                          : chr  "ABOVEGROUND" "ABOVEGROUND" "UNDERGROUND" "UNDERGROUND" ...
##  $ TipoLiquido                            : chr  "REFINED AND/OR PETROLEUM PRODUCT (NON-HVL), LIQUID" "REFINED AND/OR PETROLEUM PRODUCT (NON-HVL), LIQUID" "CRUDE OIL" "HVL OR OTHER FLAMMABLE OR TOXIC FLUID, GAS" ...
##  $ SubtipoLiquido                         : chr  "GASOLINE (NON-ETHANOL)" "OTHER" NA "ANHYDROUS AMMONIA" ...
##  $ NombreLiquido                          : chr  NA "VACUUM GAS OIL (VGO)" NA NA ...
##  $ CiudadAccidente                        : chr  "GREEN RIDGE" "PHILADELPHIA" "HOBBS" "SCHALLER" ...
##  $ CondadoAccidente                       : chr  "PETTIS" "PHILADELPHIA" "LEA" "IDA" ...
##  $ EstadoAccidente                        : chr  "MO" "PA" "NM" "IA" ...
##  $ LatitudAccidente                       : num  38.6 39.9 32.6 42.5 30.2 ...
##  $ LongitudAccidente                      : num  -93.4 -75.2 -103.1 -95.3 -91.2 ...
##  $ CategoriaCausa                         : chr  "NATURAL FORCE DAMAGE" "MATERIAL/WELD/EQUIP FAILURE" "CORROSION" "MATERIAL/WELD/EQUIP FAILURE" ...
##  $ SubcategoriaCausa                      : chr  "TEMPERATURE" "NON-THREADED CONNECTION FAILURE" "EXTERNAL" "CONSTRUCTION, INSTALLATION OR FABRICATION-RELATED" ...
##  $ LiberacionInvoluntariaBarriles         : num  0.24 1700 2 0.36 1.31 ...
##  $ LiberacionIntencionalBarriles          : chr  "0" "0" NA "0.05" ...
##  $ RecuperacionLiquidoBarriles            : num  0.07 1699 0.48 0 0 ...
##  $ PerdidaNetaBarriles                    : num  0.17 1 1.52 0.36 1.31 ...
##  $ IgnicionLiquido                        : chr  "NO" "NO" "NO" "NO" ...
##  $ ExplosionLiquido                       : chr  "NO" "NO" "NO" "NO" ...
##  $ CierreOleoducto                        : chr  "YES" "YES" "NO" "NO" ...
##  $ DiaCierre                              : int  8 25 NA NA 27 NA NA 23 15 11 ...
##  $ MesCierre                              : int  4 3 NA NA 5 NA NA 5 3 1 ...
##  $ AnioCierre                             : int  2010 2010 NA NA 2010 NA NA 2010 2010 2010 ...
##  $ HoraCierre                             : int  6 18 NA NA 3 NA NA 7 16 2 ...
##  $ AmPmCierre                             : chr  "a. m." "p. m." NA NA ...
##  $ DiaReinicio                            : int  9 28 NA NA 27 NA NA 23 15 15 ...
##  $ MesReinicio                            : int  4 3 NA NA 5 NA NA 5 3 1 ...
##  $ AnioReinicio                           : int  2010 2010 NA NA 2010 NA NA 2010 2010 2010 ...
##  $ HoraReinicio                           : int  10 16 NA NA 24 NA NA 9 18 15 ...
##  $ AmPmReinicio                           : chr  "a. m." "p. m." NA NA ...
##  $ EvacuacionesPublicas                   : int  NA 0 NA NA 0 0 0 0 NA 0 ...
##  $ LesionesEmpleadosOperador              : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ LesionesContratistasOperador           : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ LesionesRescatistasEmergencia          : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ OtrasLesiones                          : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ LesionesPublico                        : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ TodasLesiones                          : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ FallecimientosEmpleadosOperador        : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ FallecimientosContratistasOperador     : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ FallecimientosRescatistasEmergencia    : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ OtrosFallecimientos                    : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ FallecimientosPublico                  : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ TodosFallecimientos                    : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ CostosDaniosPropiedad                  : int  0 0 30000 12000 2720 NA 750 1300 NA 29360 ...
##  $ CostosMercanciaPerdidas                : int  27 0 100 30 1500 150 300 340 46 136233 ...
##  $ CostosDaniosPropiedadesPublicasPrivadas: int  0 0 1000 5000 0 0 0 0 NA NA ...
##  $ CostosRespuestaEmergencia              : int  0 0 NA 0 1000 NA 400 2445 10999 NA ...
##  $ CostosRemediacionAmbiental             : int  0 100000 20000 15000 NA NA 6050 3350 452 NA ...
##  $ OtrosCostos                            : int  0 0 NA 0 NA NA 0 2530 NA NA ...
##  $ TodosCostos                            : int  27 100000 51100 32030 5220 150 7500 9965 11497 165593 ...

1.1 Extracción de datos

AnioAccidente <- as.numeric(datos$AnioAccidente)

2.Distribucion de Frecuencias

Frecuencias Simples

TDFAnioAccidente <- table(AnioAccidente)
TablaAnioAccidente <- as.data.frame(TDFAnioAccidente)
names(TablaAnioAccidente) <- c("Anio","ni")

TablaAnioAccidente$hi_porc <- round((TablaAnioAccidente$ni / sum(TablaAnioAccidente$ni)) * 100, 2)

Frecuencias acumuladas

TablaAnioAccidente$Ni_asc <- cumsum(TablaAnioAccidente$ni)
TablaAnioAccidente$Ni_dsc <- rev(cumsum(rev(TablaAnioAccidente$ni)))

TablaAnioAccidente$Hi_asc <- round(cumsum(TablaAnioAccidente$hi_porc), 3)
TablaAnioAccidente$Hi_dsc <- round(rev(cumsum(rev(TablaAnioAccidente$hi_porc))), 3)

Tabla de frecuencias

TDFFinalAnioAccidente<- rbind(TablaAnioAccidente, data.frame(
  Anio = "TOTAL",
  ni = sum(TablaAnioAccidente$ni),
  hi_porc = 100,
  Ni_asc = " ",
  Ni_dsc = " ",
  Hi_asc = " ",
  Hi_dsc = " "
  ))

library(gt)
tabla_AnioAccidente <- TDFFinalAnioAccidente %>%
  gt() %>%
  cols_label(
    Anio = md("**Año**"),
    ni = md("**ni**"),
    hi_porc = md("**hi (%)**"),
    Ni_asc = md("**Ni ↑**"),
    Ni_dsc = md("**Ni ↓**"),
    Hi_asc = md("**Hi ↑ (%)**"),
    Hi_dsc = md("**Hi ↓ (%)**")
  ) %>%
  tab_header(
    title = md("**Tabla N° 1**"),
    subtitle = md("**Distribución de accidentes en oleoductos por año en EE.UU. (2010-2017)**")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1")
  ) %>%
  tab_options(
    table.background.color = "white",
    row.striping.background_color = "white",
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.font.weight = "bold",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "gray",
    table_body.border.bottom.color = "black"
  ) %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_body(
      rows = as.character(Anio) == "TOTAL"
    )
  )

tabla_AnioAccidente
Tabla N° 1
Distribución de accidentes en oleoductos por año en EE.UU. (2010-2017)
Año ni hi (%) Ni ↑ Ni ↓ Hi ↑ (%) Hi ↓ (%)
2010 346 12.54 346 2760 12.54 100
2011 336 12.17 682 2414 24.71 87.46
2012 362 13.12 1044 2078 37.83 75.29
2013 400 14.49 1444 1716 52.32 62.17
2014 447 16.20 1891 1316 68.52 47.68
2015 453 16.41 2344 869 84.93 31.48
2016 414 15.00 2758 416 99.93 15.07
2017 2 0.07 2760 2 100 0.07
TOTAL 2760 100.00
Autor: Grupo 1

Gráfica


par(mar = c(6, 6, 4, 2)) 
barplot(
  TablaAnioAccidente$ni, 
  main = "Gráfica No.1: Distribución de la cantidad de accidentes
  por año en EE.UU.",
  xlab = "Año",
  ylab = "Cantidad",
  col = "slategray1",
  names.arg = TablaAnioAccidente$Anio,
  las = 1,
  cex.main = 1.2,    
  cex.lab = 1.2,   
  cex.axis = 0.8,
  cex.names = 0.8
)

3.Conjetura de Modelo


Se considera que la variable AnioAccidente, podría seguir dos modelos probabilísticos, segun diferentes periodos motivo por el cual se decidio agrupar de acuerdo a diferentes años.

4.Primer periodo (2010–2013)


En el primer periodo (2010–2013) se aplicó la distribución uniforme discreta, asumiendo que cada año tiene la misma probabilidad de registrar accidentes, lo cual permite evaluar si los eventos están equitativamente distribuidos.

Definición de Hipótesis

  • Hipótesis nula(Ho): En el primer periodo los accidentes siguen una distribución uniforme.

  • Hipótesis alternativa (H1): En el primer periodo los accidentes NO siguen una distribución uniforme.

4.1. Filtracion años 2010-2013

Filtramos los datos para seleccionar solo los año del 2010 al 2013, creamos un nuevo data frame con esa selección.

Accidentes_2010_2013 <- subset(AnioAccidente, AnioAccidente >= 2010 & AnioAccidente <= 2013)

Despues procedemos a calcular las frecuencias absolutas y relativas de ese subconjunto.

TDF_2010_2013 <- table(Accidentes_2010_2013)
Tabla_2010_2013 <- as.data.frame(TDF_2010_2013)
names(Tabla_2010_2013) <- c("Anio", "Frecuencia")

Tabla_2010_2013$hi1 <-(Tabla_2010_2013$Frecuencia / sum(Tabla_2010_2013$Frecuencia))
barplot(Tabla_2010_2013$hi1,
        main = "Gráfica N°2: Distribución de Probabilidad de Años(2010-2013)", 
        xlab = "Años",
        ylab = "Probabilidad",
        names.arg = Tabla_2010_2013$Anio, 
        col="slategray2")

4.2 Ajuste del modelo uniforme

Distribucion de Frecuencias

  • Frecuencias Observadas
Fo <- Tabla_2010_2013$Frecuencia
  • Frecuencias Esperadas
# Número de categorías (años)
k <- length(Fo)
total_accidentes <- sum(Fo)

Fe <- rep(total_accidentes / k, k)

Gráfica del Modelo

barplot(rbind(Fo, Fe),
        beside = TRUE,
        col = c("slategray2", "slategray4"),
        names.arg = as.character(Tabla_2010_2013$Anio),
        xlab = "Año del accidente",
        ylab = "Frecuencia",
        las = 1,
        cex.names = 0.8,
        cex.axis = 1, 
        ylim= c(0, 500))

title(main = "Gráfica No.3: Comparación Modelo Uniforme vs Observado",
      cex.main = 1.2)

legend(x = 10, y = 500,
       legend = c("Observado", "Uniforme"),
       fill = c("slategray2", "slategray4"),
       bty = "o",
       y.intersp = 0.7,
       cex = 0.8)

4.3 Tests


4.3.1 Test de Pearson

Correlación de frecuencias

Correlacion_U <- cor(Fo, Fe) * 100
## Warning in cor(Fo, Fe): the standard deviation is zero

La correlación de frecuencias es de = NA %

Gráfica de correlación Fo vs Fe

plot(Fo, Fe,
     main = "Gráfica No.4: Correlación de frecuencias en el modelo Uniforme",
     xlab = "Frecuencia Observada ", 
     ylab = "Frecuencia Esperada",
     col = "slategray2", pch = 19)
abline(lm(Fe ~ Fo), col = "red", lwd = 2)

4.3.2 Test de Bondad de ajuste

- Estadístico chi-cuadrado

x2_u <- sum((Fo - Fe)^2 / Fe)

El estadistico Chi-cuadrado es: 6.570637

- Cálculo del Umbral de Aceptación

Grados de Libertad
gl_u <- (k - 1) 
Definición del nivel de significancia
nivel_significancia <- 0.05

Umbral de aceptación

umbral_aceptacion<- qchisq(1 - nivel_significancia, gl_u)

El umbral de aceptación es: 7.814728

4.3.3 Decisión

if (x2_u < umbral_aceptacion) {
  cat("Conclusión: No se rechaza H0, los accidentes del 2010 al 2013 podrían seguir una distribución uniforme.")
} else {
  cat("Conclusión: Se rechaza H0, los accidentes del 2010 al 2013  NO siguen una distribución uniforme.")
}

Conclusión: No se rechaza H0, los accidentes del 2010 al 2013 podrían seguir una distribución uniforme.

4.3.4 Tabla resumen de test

Variable <- c("Año Accidente
              (2010-2013)")
Modelo <- c("Uniforme")

Tabla_resumen <- data.frame(Variable,
  Modelo,
  Pearson = round(Correlacion_U,2),
  Chi_Cuadrado = round(x2_u,2),
  Umbral = round(umbral_aceptacion,2),
  TestChi = c("Aprobado"))

colnames(Tabla_resumen) <- c("Variable",
                             "Modelo",
                            "Test Pearson (%)",
                            "Chi-Cuadrado",
                            "Umbral de aceptación",
                            "Test de Bondad de ajuste")
library(gt)

Tabla_resumen %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N°2**"),
    subtitle = md("**Resumen de los Tests Aplicados al Modelo Uniforme**")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1")
  ) %>%
  cols_align(
    align = "center",   
    columns = everything()  
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.font.weight = "bold",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "grey",
    table_body.border.bottom.color = "black"
  )
Tabla N°2
Resumen de los Tests Aplicados al Modelo Uniforme
Variable Modelo Test Pearson (%) Chi-Cuadrado Umbral de aceptación Test de Bondad de ajuste
Año Accidente (2010-2013) Uniforme NA 6.57 7.81 Aprobado
Autor: Grupo 1

Los resultados obtenidos indican que la distribución uniforme discreta es adecuada para modelar los accidentes en el período 2010–2013:

  • El estadístico Chi-cuadrado calculado (6.57) es menor que el umbral de aceptación (7.81), lo que indica que no se rechaza la hipótesis nula (H₀) y el modelo Uniforme es adecuado para describir los datos observados.

  • El Test de Pearson no pudo calcularse (NA) porque el vector de frecuencias esperadas (Fe) es constante, lo cual es inherente a la naturaleza del modelo uniforme. Por esta razón, el Chi-cuadrado constituye el único criterio válido para evaluar la bondad de ajuste.

5.Segundo periodo (2014–2017)


Para el segundo periodo (2014–2017) se utilizó la distribución de Poisson, adecuada para modelar la ocurrencia de accidentes como eventos independientes que siguen una tasa promedio constante. Esto permite analizar si la frecuencia de accidentes responde a un patrón de ocurrencia temporal propio de procesos aleatorios.

Definición de Hipótesis

  • Hipótesis nula(Ho): En el segundo periodo los accidentes siguen una distribución poisson.

  • Hipótesis alternativa (H1): En el segundo periodo los accidentes NO siguen una distribución poisson.

5.1. Filtracion años 2014-2017

Accidentes_2014_2017 <- subset(AnioAccidente, AnioAccidente >= 2014 & AnioAccidente <= 2017)

Despues procedemos a calcular las frecuencias absolutas y relativas de ese subconjunto.

TDF_2014_2017 <- table(Accidentes_2014_2017)
Tabla_2014_2017 <- as.data.frame(TDF_2014_2017)
names(Tabla_2014_2017) <- c("Anio", "ni2")

Tabla_2014_2017$hi2 <-(Tabla_2014_2017$ni2 / sum(Tabla_2014_2017$ni2))
barplot(Tabla_2014_2017$hi2,
        main = "Gráfica N°5: Distribución de Probabilidad de Años(2014-2017)", 
        xlab = "Años",
        ylab = "Probabilidad",
        names.arg = Tabla_2014_2017$Anio, 
        col="slategray2")

5.2 Ajuste del modelo poisson

Para modelar los accidentes del período 2014–2017 se utilizó la distribución de Poisson, adecuada para describir eventos discretos e independientes que ocurren a una tasa promedio constante.

Como los años tienen un conteo grande de accidentes, se transformaron los años en clases consecutivas (1, 2, 3, 4). Esto permite evitar probabilidades extremadamente pequeñas y garantizar la estabilidad del modelo.

Creación de clases

A cada año se le asigno una clase consecutiva:

Tabla_2014_2017$Clase <- 1:nrow(Tabla_2014_2017)

Calculo de lambda Poisson

Lambda λ se calculo como el promedio ponderado de las clases, usando las frecuencias observadas:

lambda <- sum(Tabla_2014_2017$Clase * Tabla_2014_2017$ni2) / sum(Tabla_2014_2017$ni2)

Probabilidades según Poisson

Fe_p <- dpois(Tabla_2014_2017$Clase, lambda)

Probabilidades observadas

Fo_p <- Tabla_2014_2017$hi2

Gráfica del Modelo

barplot(rbind(Fo_p, Fe_p),
        main = "Gráfica No.6:Modelo Poisson vs Observado (2014-2017)",
        xlab = "Año",
        ylab = "Probabilidad",
        names.arg = Tabla_2014_2017$Anio,
        beside = TRUE,
        col = c("slategray2", "skyblue4"))

legend("topright", 
       legend = c("Observado", "Modelo"), 
       fill = c("slategray2", "skyblue4"),
       cex = 0.8)

5.3 Tests


5.3.1 Test de Pearson

Correlación de frecuencias

Correlacion_p <- cor(Fo_p, Fe_p) * 100

La correlación de frecuencias es de = 90.15 %

Gráfica de correlación Fo vs Fe

plot(Fo_p, Fe_p,
     main = "Gráfica No.7: Correlación de frecuencias en el modelo Uniforme",
     xlab = "Frecuencia Observada ", 
     ylab = "Frecuencia Esperada",
     col = "slategray2", pch = 19)
abline(lm(Fe_p ~ Fo_p), col = "red", lwd = 2)

5.3.2 Test de Bondad de ajuste

- Estadístico chi-cuadrado

x2_p <- sum((Fo_p - Fe_p)^2 / Fe_p)

El estadistico Chi-cuadrado es: 0.2250436

- Cálculo del Umbral de Aceptación

Grados de Libertad
k_p<-nrow(Tabla_2014_2017)
gl_p <- (k_p - 1) -1
Definición del nivel de significancia
nivel_significancia <- 0.05

Umbral de aceptación

umbral_aceptacion_p<- qchisq(1 - nivel_significancia, gl_p)

El umbral de aceptación es: 5.991465

5.3.3 Decisión

if (x2_p < umbral_aceptacion_p) {
  cat("Conclusión: No se rechaza H0, los accidentes del 2014 al 2017 podrían seguir una distribución poisson.")
} else {
  cat("Conclusión: Se rechaza H0, los accidentes del 2014 al 2017  NO siguen una distribución poisson.")
}

Conclusión: No se rechaza H0, los accidentes del 2014 al 2017 podrían seguir una distribución poisson.

5.3.4 Tabla resumen de test

Variable <- c("Año Accidente (2014-2017)")
Modelo <- c("Poisson")

Tabla_resumen <- data.frame(Variable,
  Modelo,
  Pearson = round(Correlacion_p,2),
  Chi_Cuadrado = round(x2_p,2),
  Umbral = round(umbral_aceptacion_p,2),
  TestChi = c("Aprobado"))

colnames(Tabla_resumen) <- c("Variable",
                             "Modelo",
                            "Test Pearson (%)",
                            "Chi-Cuadrado",
                            "Umbral de aceptación",
                            "Test de Bondad de ajuste")
library(gt)

Tabla_resumen %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N°3**"),
    subtitle = md("**Resumen de los Tests Aplicados al Modelo Poisson**")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1")
  ) %>%
  cols_align(
    align = "center",   
    columns = everything()  
  ) %>%
  tab_options(
    table.border.top.color = "black",
    table.border.bottom.color = "black",
    table.border.top.style = "solid",
    table.border.bottom.style = "solid",
    column_labels.font.weight = "bold",
    column_labels.border.top.color = "black",
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
    heading.border.bottom.color = "black",
    heading.border.bottom.width = px(2),
    table_body.hlines.color = "grey",
    table_body.border.bottom.color = "black"
  )
Tabla N°3
Resumen de los Tests Aplicados al Modelo Poisson
Variable Modelo Test Pearson (%) Chi-Cuadrado Umbral de aceptación Test de Bondad de ajuste
Año Accidente (2014-2017) Poisson 90.15 0.23 5.99 Aprobado
Autor: Grupo 1

Los resultados de la prueba de bondad de ajuste indican que el modelo de distribución de Poisson es adecuado para modelar la variable “Accidentes” en el periodo 2014-2017.

  • El estadístico Chi-cuadrado calculado (0.23) es menor que el umbral de aceptación (5.99), lo que indica que no se rechaza la hipótesis nula (H₀) y el modelo poisson es el adecuado para describir los datos observados.

  • El Test de Pearson reporta un nivel de ajuste del 90.15%,, lo que existe una fuerte relación lineal entre los datos reales y las probabilidades predichas por el modelo de Poisson, respaldando adicionalmente la validez del modelo.

5.4 Cálculo de probabilidades


  • ¿Cuál es la probabilidad de que los accidentes ocurrar en el año 2016?

Estimación de Probabilidad

Se calcula la probabilidad de que un accidente ocurra en la Clase 3, que corresponde al año 2016, utilizando la distribución de Poisson, donde:

  • 3 → representa la Clase 3, equivalente al año 2016.

  • lambda → promedio ponderado de las clases (años), calculado a partir de las frecuencias observadas, que indica el valor esperado de la clase según el modelo Poisson.

prob_P <- dpois(3, lambda)

La probabilidad de que los accidentes ocurran en el año 2016 es de: 17.84 %

6.Conclusión


La variable AnioAccidente de los accidentes en oleoductos en EE.UU. presenta un comportamiento no homogéneo y se ajusta a dos modelos de probabilidad distintos en los períodos analizados:

  • En el primer periodo (2010–2013), la distribución de la frecuencia de accidentes por año se ajustó adecuadamente a un modelo uniforme discreto, lo que indica que los accidentes se distribuyeron de manera relativamente equitativa entre los años, sin que existieran años con una concentración significativamente mayor o menor de accidentes.

  • En el segundo periodo (2014–2017), la ocurrencia de accidentes puede considerarse un proceso aleatorio con una tasa promedio constante por año, siguiendo un modelo de Poisson. Mediante este modelo, se puede estimar que la probabilidad de que los accidentes ocurran en el año 2016 (Clase 3) es de 17.84 %, lo que permite hacer predicciones sobre la ocurrencia de accidentes en años específicos de este periodo.

El comportamiento de los accidentes no es constante a lo largo de la década. Mientras que la ocurrencia de accidentes fue uniformemente distribuida en 2010–2013, el período 2014–2017 sigue un patrón de conteo de eventos aleatorios de tipo Poisson. Esta clara distinción en el modelo sugiere que factores subyacentes, como cambios significativos en la normativa de seguridad, implementación de nuevas tecnologías de detección o variaciones en la actividad operativa, pudieron haber alterado el régimen de ocurrencia de accidentes entre ambos períodos.