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 ...

1.1 Extracción de datos

TipoOleoducto <- datos$TipoOleoducto
TipoOleoducto <- na.omit(TipoOleoducto)

2.Distribución de Frecuencias

2.1 Distribución de frecuencias simples

TDFTipoOleoducto <- table(TipoOleoducto)
TablaTipoOleoducto <- as.data.frame(TDFTipoOleoducto)
names(TablaTipoOleoducto) <- c("Tipo_de_Oleoducto","ni")

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

2.2 Tabla final

TDFFinalTipoOleoducto<- rbind(TablaTipoOleoducto, data.frame(
  Tipo_de_Oleoducto = "TOTAL",
  ni = sum(TablaTipoOleoducto$ni),
  hi_porc = 100
))

library(gt)

tabla_TipoOleoducto <- TDFFinalTipoOleoducto %>%
  gt() %>%
  cols_label(
    Tipo_de_Oleoducto = md("**Tipo de Oleoducto**"),
    ni = md("**ni**"),
    hi_porc = md("**hi(%)**")
  ) %>%
  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",
    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(Tipo_de_Oleoducto) == "TOTAL"
    )
  )

tabla_TipoOleoducto
Tabla N° 1
Distribución de accidentes por Tipo de Oleoducto en EE.UU. (2010-2017)
Tipo de Oleoducto ni hi(%)
ABOVEGROUND 1466 53.15
TANK 300 10.88
TRANSITION AREA 16 0.58
UNDERGROUND 976 35.39
TOTAL 2758 100.00
Autor: Grupo 1

3.Gráficas de distribución de frecuencia

A continuación, las gráficas 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):

par(mar = c(6, 6, 4, 2)) 
barplot(
  TablaTipoOleoducto$ni, 
  main = "Gráfica No.1: Distribución de la cantidad de accidentes
  por Tipo de Oleoducto en EE.UU.",
  xlab = "Tipo de Oleoducto",
  ylab = "Cantidad",
  col = "lightblue1",
  names.arg = TablaTipoOleoducto$Tipo_de_Oleoducto,
  las = 1,
  cex.main = 1.2,    
  cex.lab = 1.2,   
  cex.axis = 0.8,
  cex.names = 0.8
)

3.1.1.2 Diagrama de frecuencia absoluta (Escala global):

par(mar = c(6, 6, 4, 2)) 
barplot(
  TablaTipoOleoducto$ni,
  main = "Gráfica No.2: Distribución de la cantidad de accidentes 
  por Tipo de Oleoducto en relación al total en EE.UU.",
  xlab = "Tipo de Oleoducto",
  ylab = "Cantidad",
  names.arg = TablaTipoOleoducto$Tipo_de_Oleoducto,
  col = "lightblue2",
  cex.main = 1.2,
  las = 1,
  cex.lab = 1.2,
  cex.axis = 0.8,
  cex.names = 0.8,
  ylim = c(0,2758),
)

3.1.2 Diagramas de frecuencias relativas

3.1.2.1 Diagrama de frecuencia relativas (Escala local):

par(mar = c(6, 6, 4, 2)) 
barplot(
  TablaTipoOleoducto$hi,
  main = "Gráfica No.3: Distribución porcentual de accidentes 
  por Tipo de Oleoducto en EE.UU.",
  xlab = "Tipo de Oleoducto",
  ylab = "Porcentaje (%)",
  names.arg = TablaTipoOleoducto$Tipo_de_Oleoducto,
  col = "lightblue3",
  cex.main = 1.2,
  las = 1,
  cex.lab = 1.2,
  cex.axis = 1,
  cex.names = 0.8,
)

3.1.2.2 Diagrama de frecuencia relativas (Escala global):

par(mar = c(6, 6, 4, 2)) 
barplot(
  TablaTipoOleoducto$hi,
  main = "Gráfica No.4: Distribución porcentual de accidentes
  por Tipo de Oleoducto en relación al total en EE.UU.",
  xlab = "Tipo de Oleoducto",
  ylab = "Porcentaje (%)",
  names.arg = TablaTipoOleoducto$Tipo_de_Oleoducto,
  col = "lightblue4",
  cex.main = 1.2,
  las = 1,
  cex.lab = 1.2,
  cex.axis = 1,
  cex.names = 0.8,
  ylim = c(0, 100)
)

3.2 Diagrama circular

par(mar = c(6, 6, 4, 2), xpd = TRUE)
colores_TipoOleoducto <- colorRampPalette(c("lightblue1", "royalblue3"))(nrow(TablaTipoOleoducto))
etiquetas_porcentaje <- paste0(TablaTipoOleoducto$hi, "%")

pie(
  TablaTipoOleoducto$ni,
  labels = etiquetas_porcentaje,
  main = "Gráfica No.5:Distribución porcentual de accidentes por 
  Tipo de Oleoducto en EE.UU.",
  col = colores_TipoOleoducto,
  cex.main = 1.2,
  cex = 0.8
)

legend(
  x = 1, y = -0.5,
  legend = TablaTipoOleoducto$Tipo_de_Oleoducto,
  title = "Leyenda",
  fill = colores_TipoOleoducto,
  cex = 0.7,
  y.intersp = 0.7,
  bty = "o",
  inset = 0.2
)

4.Indicador

moda_TipoOleoducto <- TablaTipoOleoducto$Tipo_de_Oleoducto[which.max(TablaTipoOleoducto$ni)]

El Tipo de Oleoducto con más accidentes en Estados Unidos es el: ABOVEGROUND

5.Conclusión

La variable TipoOleoducto correspondiente a los accidentes registrados en EE.UU. es de tipo nominal. Los resultados evidencian que el oleoducto de tipo ABOVEGROUND (superficie) concentra la mayor proporción de accidentes, con un 53.15% del total, superando significativamente a los demás tipos durante el periodo analizado.