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 : 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 : num 0 0 NA 0.05 0 NA 0 0 NA 25 ...
## $ 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 : 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 ...
2.Distribución de Frecuencias
2.1 Limites e Intervalos
limites <- seq(0, 700, by = 50)
clasificacion <- cut(EvacuacionesPublicas,
breaks = limites,
include.lowest = TRUE,
right = FALSE)
2.2 Frecuencias Simples
TablaEvacuacion <- as.data.frame(table(clasificacion))
colnames(TablaEvacuacion) <- c("Intervalo", "ni")
TablaEvacuacion$hi <- round((TablaEvacuacion$ni / sum(TablaEvacuacion$ni)) * 100, 2)
2.3 Frecuencias Acumuladas
# Frecuencia acumulada absoluta
TablaEvacuacion$Niasc <- cumsum(TablaEvacuacion$ni)
TablaEvacuacion$Nidsc <- rev(cumsum(rev(TablaEvacuacion$ni)))
# Frecuencia acumulada relativa (%)
TablaEvacuacion$Hiasc <- cumsum(TablaEvacuacion$hi)
TablaEvacuacion$Hidsc <- rev(cumsum(rev(TablaEvacuacion$hi)))
2.4 Tabla de distribución de frecuencias
TDFFinalEvacuaciones<- rbind(TablaEvacuacion, data.frame(
Intervalo = "TOTAL",
ni = sum(TablaEvacuacion$ni),
hi = 100,
Niasc = " ",
Hiasc = " ",
Nidsc = " ",
Hidsc = " "
))
library(gt)
tablaEvacuaciones <- TDFFinalEvacuaciones %>%
gt() %>%
cols_label(
Intervalo = md("**Intervalo**"),
ni = md("**ni**"),
hi = md("**hi (%)**"),
Niasc = md("**Ni ↑**"),
Hiasc = md("**Hi ↑ (%)**"),
Nidsc = md("**Ni ↓**"),
Hidsc = md("**Hi ↓ (%)**")
) %>%
tab_header(
title = md("**Tabla N° 1**"),
subtitle = md("**Distribución de las Evacuaciones públicas por accidentes ocurridos 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.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 = Intervalo == "TOTAL"
)
)
tablaEvacuaciones
Tabla N° 1 |
Distribución de las Evacuaciones públicas por accidentes ocurridos en EE.UU (2010-2017) |
Intervalo |
ni |
hi (%) |
Ni ↑ |
Ni ↓ |
Hi ↑ (%) |
Hi ↓ (%) |
[0,50) |
2295 |
99.65 |
2295 |
2303 |
99.65 |
99.99 |
[50,100) |
5 |
0.22 |
2300 |
8 |
99.87 |
0.34 |
[100,150) |
0 |
0.00 |
2300 |
3 |
99.87 |
0.12 |
[150,200) |
1 |
0.04 |
2301 |
3 |
99.91 |
0.12 |
[200,250) |
0 |
0.00 |
2301 |
2 |
99.91 |
0.08 |
[250,300) |
0 |
0.00 |
2301 |
2 |
99.91 |
0.08 |
[300,350) |
0 |
0.00 |
2301 |
2 |
99.91 |
0.08 |
[350,400) |
0 |
0.00 |
2301 |
2 |
99.91 |
0.08 |
[400,450) |
0 |
0.00 |
2301 |
2 |
99.91 |
0.08 |
[450,500) |
1 |
0.04 |
2302 |
2 |
99.95 |
0.08 |
[500,550) |
0 |
0.00 |
2302 |
1 |
99.95 |
0.04 |
[550,600) |
0 |
0.00 |
2302 |
1 |
99.95 |
0.04 |
[600,650) |
0 |
0.00 |
2302 |
1 |
99.95 |
0.04 |
[650,700] |
1 |
0.04 |
2303 |
1 |
99.99 |
0.04 |
TOTAL |
2303 |
100.00 |
|
|
|
|
Autor: Grupo 1 |
3.Gráficas de distribución de frecuencia
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.
3.1 Diagramas de barras
3.1.1 Diagramas de frecuencias absolutas
3.1.1.1 Diagrama de frecuencia absoluta (Escala local):
etiquetas <- gsub(",", "-",
gsub("\\[|\\)", "", as.character(TablaEvacuacion$Intervalo)))
par(mar = c(7, 6, 4, 2))
barplot(
TablaEvacuacion$ni,
main = "Gráfica No.1: Distribución de evacuaciones públicas
por accidentes en oleoductos de EE.UU.",
ylab = "Cantidad",
names.arg = etiquetas,
col = "tan1",
las = 2,
cex.main = 1.1,
cex.lab = 1.1,
cex.axis = 0.9,
cex.names = 0.8
)
mtext("Evacuaciones públicas", side = 1, line = 4, cex = 1)

3.1.1.2. Diagrama de frecuencia absoluta (Escala global):
par(mar = c(7, 6, 4, 2))
barplot(
TablaEvacuacion$ni,
main = "Gráfica No.2: Distribución de evacuaciones públicas
por accidentes en oleoductos de EE.UU., en relación al total",
ylab = "Cantidad",
names.arg = etiquetas,
col = "tan2",
las = 2,
cex.main = 1.1,
cex.lab = 1.1,
cex.axis = 0.9,
cex.names = 0.8,
ylim = c(0, 2303)
)
mtext("Evacuaciones públicas", side = 1, line = 4, cex = 1)

3.1.2 Diagramas de frecuencias relativas
3.1.2.1 Diagrama de frecuencia relativas (Escala local):
par(mar = c(7, 6, 4, 2))
barplot(
TablaEvacuacion$hi,
main = "Gráfica No.3: Distribución porcentual de evacuaciones públicas
por accidentes en oleoductos de EE.UU",
ylab = "Porcentaje (%)",
names.arg = etiquetas,
col = "tan3",
las = 2,
cex.main = 1.1,
cex.lab = 1.1,
cex.axis = 1.0,
cex.names = 0.8
)
mtext("Evacuaciones públicas", side = 1, line = 4, cex = 1)

3.1.2.2 Diagrama de frecuencia relativas (Escala global):
par(mar = c(7, 6, 4, 2))
barplot(
TablaEvacuacion$hi,
main = "Gráfica No.4: Distribución porcentual de evacuaciones públicas
por accidentes en oleoductos, en relación al total en EE.UU.",
ylab = "Porcentaje (%)",
names.arg = etiquetas,
col = "tan4",
las = 2,
cex.main = 1.1,
cex.lab = 1.1,
cex.axis = 1.0,
cex.names = 0.8,
ylim = c(0, 100)
)
mtext("Evacuaciones públicas", side = 1, line = 4, cex = 1)

3.3 Ojivas
3.3.1 Ojivas combinadas con la frecuencia absoluta
par(mgp = c(4, 1, 0))
par(mar = c(7, 6, 4, 2))
x <- 1:nrow(TablaEvacuacion)
# Ojiva ascendente
plot(x, TablaEvacuacion$Niasc,
main = "Gráfica Nº5: Ojivas combinadas de evacuaciones públicas
por accidentes en oleoductos de EE.UU.",
xlab = "Evacuaciones públicas",
ylab = "Cantidad",
col = "tan1",
type = "b",
xaxt = "n",
las = 1,
cex.main = 1.2,
cex.lab = 1.2,
cex.axis = 0.8)
# Etiquetas personalizadas en eje X
axis(side = 1, at = x, labels = etiquetas, las = 2,cex.axis = 0.8)
# Ojiva descendente
lines(x, TablaEvacuacion$Nidsc, col = "tan4", type = "b")
# Leyenda
legend("right",
legend = c("Ojiva ascendente", "Ojiva descendente"),
col = c("tan1", "tan4"),
pch = 1, lty = 1,
cex = 0.8)

3.3.2 Ojivas combinadas con la frecuencia relativa
par(mgp = c(4, 1, 0))
par(mar = c(7, 6, 4, 2))
# Ojiva ascendente (%)
plot(x, y= TablaEvacuacion$Hiasc,
type = "b",
col = "tan1",
xlab = "Evacuaciones públicas",
ylab = "Porcentaje(%)",
main = "Ojivas combinadas de evacuaciones públicas
por accidentes en oleoductos de EE.UU.",
xaxt = "n",
ylim = c(0, 100),
las = 1,
cex.main = 1.2,
cex.lab = 1.2,
cex.axis = 0.8)
# Ojiva Descendente (%)
lines(x, TablaEvacuacion$Hidsc,
type = "b",
col = "tan4")
# Etiquetas personalizadas en eje X
axis(side = 1, at = x, labels = etiquetas, las = 2,cex.axis = 0.8)
# Leyenda
legend("topright",
legend = c("Ojiva ascendente", "Ojiva descendente"),
col = c("tan1", "tan4"),
pch = 1, lty = 1,
cex = 0.8)

3.3 Diagrama de Caja y bigotes
boxplot(EvacuacionesPublicas , horizontal = TRUE, col = "tan1",
main = "Gráfica No.7: Distribución de todas las Evacuaciones
públicas de accidentes de oleoductos ocurridos en EE.UU.",
xlab = "Evacuaciones públicas",
xaxt = "n")
axis(1, at = pretty(EvacuacionesPublicas), labels = format(pretty(EvacuacionesPublicas), scientific = FALSE))

4.Indicadores estadísticos
4.1 Indicadores de posición
4.1.1 Tendencia Central
mediana <- median(EvacuacionesPublicas)
media_aritmetica <- mean(EvacuacionesPublicas)
Mo <- "[0,50)"
4.1.2 No Centrales
# Cuartiles
ri <- min(EvacuacionesPublicas)
rs <- max(EvacuacionesPublicas)
summary(EvacuacionesPublicas)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.0000 0.9783 0.0000 700.0000
4.2 Indicadores de dispersión
desviacion_estandar <- sd(EvacuacionesPublicas)
coeficiente_variabilidad <- (desviacion_estandar / media_aritmetica) * 100
4.4 Tabla de indicadores
library(gt)
Variable <- c("Evacuaciones públicas")
Tabla_indicadores_EvacuacionesPublicas <- 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_EvacuacionesPublicas) <- c("Variable","Mínimo",
"Máximo","x",
"Me","Mo",
"S","Cv (%)",
"As","K")
tabla_indicadores_gt <- Tabla_indicadores_EvacuacionesPublicas %>%
gt() %>%
tab_header(
title = md("**Tabla N°2**"),
subtitle = md("**Indicadores estadísticos de la variable Evacuaciones
públicas 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 Evacuaciones
públicas en oleoductos de EE.UU. (2010–2017) |
Variable |
Mínimo |
Máximo |
x |
Me |
Mo |
S |
Cv (%) |
As |
K |
Evacuaciones públicas |
0 |
700 |
0.978 |
0 |
[0,50) |
18.288 |
1869.435 |
31.954 |
1114.015 |
Autor: Grupo 1 |
5.Valores atípicos
5.1 Identificación de valores atípicos
outliers <- boxplot.stats(EvacuacionesPublicas)$out
num_outliers <- length(outliers)
minimooutliers <- min(outliers)
maximooutliers <- max(outliers)
5.2 Tabla de Valores atípicos
Tabla_outliers_Evacuaciones <- data.frame(
Outliers = num_outliers,
Mínimo = minimooutliers,
Máximo = maximooutliers
)
library(gt)
Tabla_outliers_Evacuaciones %>%
gt() %>%
tab_header(
title = md("**Tabla N°4**"),
subtitle = md("**Valores atípicos de la variable Evacuaciones públicas
de accidentes ocurridos en EE.UU (2010-2017)**")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 1")
) %>%
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°4 |
Valores atípicos de la variable Evacuaciones públicas
de accidentes ocurridos en EE.UU (2010-2017) |
Outliers |
Mínimo |
Máximo |
52 |
1 |
700 |
Autor: Grupo 1 |
6.Conclusión
La variable Evacuaciones públicas correspondiente a los accidentes de
oleoductos en EE.UU. durante el periodo 2010–2017 presenta valores que
oscilan entre 0 y 700, con una media de 0.978 y una mediana de 0, lo que
evidencia una distribución fuertemente sesgada hacia valores bajos. La
moda se encuentra en el intervalo [0,50), reflejando que la mayoría de
los accidentes no requirió evacuaciones significativas. La desviación
estándar es elevada (18.288) y el coeficiente de variación muy alto
(1869.435%), lo que indica una dispersión extrema y gran heterogeneidad
en la cantidad de evacuaciones reportadas. La asimetría positiva
(31.954) evidencia una fuerte concentración de datos hacia valores bajos
y una larga cola hacia valores altos, mientras que la curtosis
extremadamente elevada (1114.015) sugiere una distribución muy
leptocúrtica, con presencia de picos y colas extremas. Además, se
identificaron 52 valores atípicos, con un rango que va desde 1 hasta 700
evacuaciones, lo que confirma la existencia de eventos excepcionales de
gran magnitud. En síntesis, la variable Evacuaciones públicas muestra
una distribución muy asimétrica y heterogénea, donde la mayoría de los
accidentes generan pocas evacuaciones, pero existen casos excepcionales
con impactos significativamente mayores.