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 ...
CategoriaCausa <- na.omit(datos$CategoriaCausa)
TDFCategoriaCausa <- table(CategoriaCausa)
TablaCategoriaCausa <- as.data.frame(TDFCategoriaCausa)
names(TablaCategoriaCausa) <- c("Tipo_de_Causa","Fo")
TablaCategoriaCausa$Probabilidad <- round(TablaCategoriaCausa$Fo / sum(TablaCategoriaCausa$Fo), 3)
TDFFinalCategoriaCausa <- rbind(
TablaCategoriaCausa,
data.frame(Tipo_de_Causa= "TOTAL",
Fo = sum(TablaCategoriaCausa$Fo),
Probabilidad = 1)
)
library(gt)
tabla_CategoriaCausa<- TDFFinalCategoriaCausa %>%
gt() %>%
cols_label(
Tipo_de_Causa= md("**Tipo de Causa**"),
Fo = md("**Frecuencia Observada**"),
Probabilidad = md("**Probabilidad**")
) %>%
tab_header(
title = md("**Tabla N° 1**"),
subtitle = md("**Distribución de accidentes por Tipo de Oleoducto 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", # corregido
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2), # requiere library(gt)
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 = Tipo_de_Causa== "TOTAL"
)
)
tabla_CategoriaCausa
| Tabla N° 1 | ||
| Distribución de accidentes por Tipo de Oleoducto en EE.UU. (2010-2017) | ||
| Tipo de Causa | Frecuencia Observada | Probabilidad |
|---|---|---|
| ALL OTHER CAUSES | 115 | 0.042 |
| CORROSION | 580 | 0.210 |
| EXCAVATION DAMAGE | 96 | 0.035 |
| INCORRECT OPERATION | 374 | 0.136 |
| MATERIAL/WELD/EQUIP FAILURE | 1424 | 0.516 |
| NATURAL FORCE DAMAGE | 116 | 0.042 |
| OTHER OUTSIDE FORCE DAMAGE | 55 | 0.020 |
| TOTAL | 2760 | 1.000 |
| Autor: Grupo 1 | ||
par(mar = c(10, 6, 4, 2))
barplot(TablaCategoriaCausa$Fo,
main = "Gráfica No.1: Distribución de frecuencias de accidentes
por tipo de causa en EE.UU",
ylab = "Frecuencia",
col = "pink",
names.arg = TablaCategoriaCausa$Tipo_de_Causa,
las = 2,
cex.lab = 1,
cex.axis = 0.8,
cex.names = 0.6)
mtext("Tipo de causa", side = 1, line = 9, cex = 1)
par(mar = c(10, 6, 4, 2))
TablaCategoriaCausa$Porcentaje <- TablaCategoriaCausa$Probabilidad * 100
barplot(TablaCategoriaCausa$Porcentaje,
main = "Gráfica No.2: Distribución porcentual de accidentes
por Tipo de causa en EE.UU",
xlab = "",
ylab = "Porcentaje (%)",
col = "pink2",
names.arg = TablaCategoriaCausa$Tipo_de_Causa,
cex.main = 1.2,
las = 2,
cex.lab = 1,
cex.axis = 0.8,
cex.names = 0.6)
mtext("Tipo de causa", side = 1, line = 9, cex = 1)
par(mar = c(10, 6, 4, 2))
barplot(TablaCategoriaCausa$Probabilidad,
main = "Gráfica No.3: Distribución de probabilidad de accidentes
por Tipo de causa en EE.UU",
xlab = "",
ylab = "Probabilidad",
col = "pink3",
names.arg = TablaCategoriaCausa$Tipo_de_Causa,
cex.main = 1.2,
las = 2,
cex.lab = 1,
cex.axis = 0.8,
cex.names = 0.6)
mtext("Tipo de causa", side = 1, line = 9, cex = 1)
Causa_objetivo <- "NATURAL FORCE DAMAGE"
probabilidad <- round(
(TablaCategoriaCausa$Fo[TablaCategoriaCausa$Tipo_de_Causa== Causa_objetivo ] /
sum(TablaCategoriaCausa$Fo)) * 100,
1
)
La probabilidad de que ocurra un accidente con causa NATURAL FORCE DAMAGE es de: 4.2 %
par(mar = c(10, 6, 4, 2))
# Gráfico con oleoducto objetivo resaltado
colores <- ifelse(TablaCategoriaCausa$Tipo_de_Causa== Causa_objetivo , "#FF34B3", "lightpink")
bp <- barplot(
height = TablaCategoriaCausa$Porcentaje,
names.arg = TablaCategoriaCausa$Tipo_de_Causa,
main = "Gráfica No.4: Distribución de probabilidad de Tipos de Causas",
ylab = "Probabilidad (%)",
col = colores,
cex.main = 1.2,
las = 2,
cex.lab = 1,
cex.axis = 0.8,
cex.names = 0.6,
ylim = c(0, 100))
mtext("Tipo de causa", side = 1, line = 9, cex = 1)
# Etiqueta encima de la barra resaltada
text(
x = bp[TablaCategoriaCausa$Tipo_de_Causa== Causa_objetivo ],
y = TablaCategoriaCausa$Porcentaje[TablaCategoriaCausa$Tipo_de_Causa== Causa_objetivo] + 5,
labels = paste0(probabilidad, "%"),
col = "black",
font = 2,
cex = 0.9
)
A partir de los datos analizados, se estima que la probabilidad de
que un accidente en oleoductos de EE.UU. ocurra debido a NATURAL
FORCE DAMAGE es de aproximadamente 4.2%. Esto indica que,
dentro del periodo estudiado (2010-2017), los accidentes causados por
fuerzas naturales representan una proporción relativamente pequeña del
total de accidentes, siendo menos frecuentes en comparación con otras
causas como fallas de material, soldadura o equipo. Esta información
permite identificar que, aunque los eventos naturales pueden tener un
impacto significativo, la mayoría de los accidentes se concentran en
causas técnicas u operativas.