setwd("/cloud/project/")
datos<-read.csv("DerramesEEUU.csv", header = TRUE, sep=";" , dec=".",)
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" "-" "ANHYDROUS AMMONIA" ...
## $ NombreLiquido : chr "-" "VACUUM GAS OIL (VGO)" "-" "-" ...
## $ CiudadAccidente : chr "GREEN RIDGE" "PHILADELPHIA" "HOBBS" "SCHALLER" ...
## $ CondadoAccidente : chr "PETTIS" "PHILADELPHIA" "LEA" "IDA" ...
## $ EstadoAccidente : chr "MO" "PA" "NM" "IA" ...
## $ LatitudAccidente : chr "38,63064" "39,91934" "32,611" "42,45589" ...
## $ LongitudAccidente : chr "-93,39656" "-75,20447" "-103,0763" "-95,32798" ...
## $ 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 : chr "0,24" "1700" "2" "0,36" ...
## $ LiberacionIntencionalBarriles : chr "0" "0" "-" "0.05" ...
## $ RecuperacionLiquidoBarriles : chr "0,07" "1699" "0,48" "0" ...
## $ PerdidaNetaBarriles : chr "0,17" "1" "1,52" "0,36" ...
## $ IgnicionLiquido : chr "NO" "NO" "NO" "NO" ...
## $ ExplosionLiquido : chr "NO" "NO" "NO" "NO" ...
## $ CierreOleoducto : chr "YES" "YES" "NO" "NO" ...
## $ DiaCierre : chr "8" "25" "-" "-" ...
## $ MesCierre : chr "4" "3" "-" "-" ...
## $ AnioCierre : chr "2010" "2010" "-" "-" ...
## $ HoraCierre : chr "6" "18" "-" "-" ...
## $ AmPmCierre : chr "a. m." "p. m." "-" "-" ...
## $ DiaReinicio : chr "9" "28" "-" "-" ...
## $ MesReinicio : chr "4" "3" "-" "-" ...
## $ AnioReinicio : chr "2010" "2010" "-" "-" ...
## $ HoraReinicio : chr "10" "16" "-" "-" ...
## $ AmPmReinicio : chr "a. m." "p. m." "-" "-" ...
## $ EvacuacionesPublicas : chr "-" "0" "-" "-" ...
## $ LesionesEmpleadosOperador : chr "-" "-" "-" "-" ...
## $ LesionesContratistasOperador : chr "-" "-" "-" "-" ...
## $ LesionesRescatistasEmergencia : chr "-" "-" "-" "-" ...
## $ OtrasLesiones : chr "-" "-" "-" "-" ...
## $ LesionesPublico : chr "-" "-" "-" "-" ...
## $ TodasLesiones : chr "-" "-" "-" "-" ...
## $ FallecimientosEmpleadosOperador : chr "-" "-" "-" "-" ...
## $ FallecimientosContratistasOperador : chr "-" "-" "-" "-" ...
## $ FallecimientosRescatistasEmergencia : chr "-" "-" "-" "-" ...
## $ OtrosFallecimientos : chr "-" "-" "-" "-" ...
## $ FallecimientosPublico : chr "-" "-" "-" "-" ...
## $ TodosFallecimientos : chr "-" "-" "-" "-" ...
## $ CostosDaniosPropiedad : chr "0" "0" "30000" "12000" ...
## $ CostosMercanciaPerdidas : chr "27" "0" "100" "30" ...
## $ CostosDaniosPropiedadesPublicasPrivadas: chr "0" "0" "1000" "5000" ...
## $ CostosRespuestaEmergencia : chr "0" "0" "-" "0" ...
## $ CostosRemediacionAmbiental : chr "0" "100000" "20000" "15000" ...
## $ OtrosCostos : chr "0" "0" "-" "0" ...
## $ TodosCostos : int 27 100000 51100 32030 5220 150 7500 9965 11497 165593 ...
AnioAccidente <- datos$AnioAccidente
AnioAccidente <- na.omit(AnioAccidente)
TDFAnioAccidente <- table(AnioAccidente)
TablaAnioAccidente <- as.data.frame(TDFAnioAccidente)
names(TablaAnioAccidente) <- c("Anio","ni")
TablaAnioAccidente$hi_porc <- round((TablaAnioAccidente$ni / sum(TablaAnioAccidente$ni)) * 100, 2)
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)
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 | ||||||
A continuación, las gráficas de diagramas de barras se presentan con
escalas local y global: la escala local ajusta el eje Y al valor máximo
de la categoría más alta, mientras que la escala global fija el eje Y a
un límite total, mostrando cada categoría en relación al conjunto
completo.
par(mar = c(6, 6, 4, 2))
barplot(
TablaAnioAccidente$ni,
main = "Gráfica N°1: Distribución de la cantidad de accidentes
por año en EE.UU.",
xlab = "Año",
ylab = "Cantidad",
col = "tan1",
names.arg = TablaAnioAccidente$Anio,
las = 1,
cex.main = 1.2,
cex.lab = 1.2,
cex.axis = 0.8,
cex.names = 0.8
)
par(mar = c(6, 6, 4, 2))
barplot(
TablaAnioAccidente$ni,
main = "Gráfica N°2: Distribución de la cantidad de accidentes
por año, en relación al total en EE.UU.",
xlab = "Año",
ylab = "Cantidad",
names.arg = TablaAnioAccidente$Anio,
col = "tan2",
cex.main = 1.2,
las = 1,
cex.lab = 1.2,
cex.axis = 0.8,
cex.names = 0.8,
ylim = c(0,2760),
)
par(mar = c(6, 6, 4, 2))
barplot(
TablaAnioAccidente$hi,
main = "Gráfica N°3: Distribución porcentual de accidentes
por año en EE.UU.",
xlab = "Año",
ylab = "Porcentaje (%)",
names.arg = TablaAnioAccidente$Anio,
col = "tan3",
cex.main = 1.2,
las = 1,
cex.lab = 1.2,
cex.axis = 1,
cex.names = 0.8,
)
par(mar = c(6, 6, 4, 2))
barplot(
TablaAnioAccidente$hi,
main = "Gráfica N°4: Distribución porcentual de accidentes
por año, en relación al total en EE.UU.",
xlab = "Año",
ylab = "Porcentaje (%)",
names.arg = TablaAnioAccidente$Anio,
col = "tan4",
cex.main = 1.2,
las = 1,
cex.lab = 1.2,
cex.axis = 1,
cex.names = 0.8,
ylim = c(0, 100)
)
plot(x = 1:(nrow(TDFFinalAnioAccidente)-1),
y = TDFFinalAnioAccidente$Ni_asc[TDFFinalAnioAccidente$Anio != "TOTAL"],
type = "b", col = "tan1",
xlab = "Año",
ylab = "Cantidad",
las = 1,
main = "Gráfica N°5: Ojivas combinadas de los años de accidentes
de oleoductos ocurridos en EE.UU",
xaxt = "n")
axis(side = 1,
at = 1:(nrow(TDFFinalAnioAccidente)-1),
labels = TDFFinalAnioAccidente$Anio[TDFFinalAnioAccidente$Anio != "TOTAL"],
las = 2)
points(x = 1:(nrow(TDFFinalAnioAccidente)-1),
y = TDFFinalAnioAccidente$Ni_dsc[TDFFinalAnioAccidente$Anio != "TOTAL"],
type = "b", col = "tan4")
legend("right", legend = c("Ojiva descendente","Ojiva ascendente"),
cex = 0.7,
col = c("tan4","tan1"), pch = 1)
plot(x = 1:(nrow(TDFFinalAnioAccidente)-1),
y = TDFFinalAnioAccidente$Hi_asc[TDFFinalAnioAccidente$Anio != "TOTAL"],
type = "b", col = "tan1",
xlab = "Año",
ylab = "Porcentaje (%)",
las = 1,
main = "Gráfica Nº6: Ojivas combinadas de los años de accidentes
de oleoductos ocurridos en EE.UU",
xaxt = "n")
axis(side = 1,
at = 1:(nrow(TDFFinalAnioAccidente)-1),
labels = TDFFinalAnioAccidente$Anio[TDFFinalAnioAccidente$Anio != "TOTAL"],
las = 2)
points(x = 1:(nrow(TDFFinalAnioAccidente)-1),
y = TDFFinalAnioAccidente$Hi_dsc[TDFFinalAnioAccidente$Anio != "TOTAL"],
type = "b", col = "tan4")
legend("right", legend = c("Ojiva descendente","Ojiva ascendente"),
cex = 0.7,
col = c("tan4","tan1"), pch = 1)
boxplot(AnioAccidente , horizontal = TRUE, col = "tan1",
main = "Gráfica N°7: Distribución de todos los años de
accidentes de oleoductos ocurridos en EE.UU.",
xlab = "Años Accidentes",
xaxt = "n")
axis(1, at = pretty(AnioAccidente), labels = format(pretty(AnioAccidente), scientific = FALSE))
mediana <- median(AnioAccidente)
media_aritmetica <- mean(AnioAccidente)
Mo <- "2015"
# Cuartiles
ri <- min(AnioAccidente)
rs <- max(AnioAccidente)
summary(AnioAccidente)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2010 2012 2013 2013 2015 2017
desviacion_estandar <- sd(AnioAccidente)
coeficiente_variabilidad <- (desviacion_estandar / media_aritmetica) * 100
library(e1071)
As <- skewness(AnioAccidente)
curtosis <- kurtosis(AnioAccidente)
library(gt)
Variable <- c("Año accidente")
Tabla_indicadores_AnioAccidente <- data.frame(
Variable,
ri = round(ri, 3),
rs = round(rs, 3),
media_aritmetica = round(media_aritmetica, 3),
mediana = round(mediana, 3),
Mo,
S = round(desviacion_estandar, 3),
`Cv (%)` = round(coeficiente_variabilidad, 3),
As = round(As, 3),
K = round(curtosis, 3)
)
colnames(Tabla_indicadores_AnioAccidente) <- c("Variable","Mínimo",
"Máximo","x",
"Me","Mo",
"S","Cv (%)",
"As","K")
tabla_indicadores_gt <- Tabla_indicadores_AnioAccidente %>%
gt() %>%
tab_header(
title = md("**Tabla N°2**"),
subtitle = md("**Indicadores estadísticos de la variable Año del Accidente en oleoductos de 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"
)
tabla_indicadores_gt
| Tabla N°2 | |||||||||
| Indicadores estadísticos de la variable Año del Accidente en oleoductos de EE.UU. (2010–2017) | |||||||||
| Variable | Mínimo | Máximo | x | Me | Mo | S | Cv (%) | As | K |
|---|---|---|---|---|---|---|---|---|---|
| Año accidente | 2010 | 2017 | 2013.192 | 2013 | 2015 | 1.973 | 0.098 | -0.153 | -1.191 |
| Autor: Grupo 1 | |||||||||
La variable Año accidente, que registra la distribución temporal de los incidentes en oleoductos de EE.UU., presenta valores que fluctúan entre 2010 y 2017. La media (2013.192) y la mediana (2013) son casi idénticas, lo que inicialmente sugieriria una distribución simétrica de los accidentes a lo largo del periodo. La moda (2015) indica el año de mayor frecuencia de incidentes. La desviación estándar (1.973) es baja y el coeficiente de variación (0.098%) es prácticamente nulo, lo que indica que los datos son extremadamente homogéneos y están muy poco dispersos temporalmente.La asimetría es levemente negativa (-0.153) y la curtosis también negativa (-1.191), lo que indica que la distribución de accidentes es bastante equilibrada a lo largo del periodo, con una ligera concentración hacia los años 2013–2016, y que la distribución es platicúrtica.
Sin embargo, es crucial notar que los datos del año 2017 están incompletos (solo dos observaciones), lo cual sesga estos indicadores y exagera la aparente concentración y aplanamiento.
En síntesis, los accidentes en oleoductos se distribuyen de manera uniforme y estable en el tiempo, sin grandes picos de ocurrencia anual (al menos hasta 2016).Este comportamiento es neutro en términos de beneficio, ya que los accidentes se mantienen relativamente estables a lo largo del periodo, sin una tendencia clara de disminución en el tiempo..