1.Carga de datos


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

1.1 Extracción de datos

Costos <- datos$TodosCostos
Costos <- na.omit(Costos) 

# Cantidad de datos de la variable
n <- length(Costos)

Cantidad total de datos: 2760

1.2 Diagrama de Caja

Dado el gran volumen de datos, resulta conveniente analizar primero el comportamiento general de la variable para determinar si es necesario realizar el análisis estadístico dentro de un intervalo específico.

Por ello, se elaboró un diagrama de caja (boxplot) con el fin de identificar el rango en el que se agrupan la mayoría de los valores y obtener así un conjunto representativo de datos.

options(scipen = 999)
caja_costos <- boxplot(Costos,
                        horizontal = TRUE,
                        main = "Gráfica No.1: Distribución de Todos los costos involucrados 
                        en accidentes en oleoductos EE.UU.",
                        xlab = "Todos los Costos $",
                        col = "pink3")

Identificación de valores comunes y atípicos

VC_costos<-subset(Costos,Costos <min(caja_costos$out))
VO_costos<-subset(Costos,Costos >=min(caja_costos$out))

2.Distribución de Frecuencias


2.1 Método teórico/manual: Regla de Sturges

2.1.1 Rango, número de clases y amplitud

R_Costos <- max(VC_costos) - min(VC_costos)
k_Costos <- floor(1 + (3.3 * log10(length(VC_costos))))
A_Costos <- R_Costos / k_Costos

2.1.2 Límites, intervalos y marca de clase

Una vez determinada la amplitud y el número de clases mediante la regla de Sturges, se procedió a establecer los límites inferior y superior de cada intervalo.

liminf <- seq(from = min(Costos), by = A_Costos, length.out = k_Costos)
limsup <- liminf + A_Costos
limsup[k_Costos] <- max(Costos)

MC <- (liminf + limsup) / 2

2.1.3 Frecuencias Simples

2.1.3.1 Frecuencia absoluta

Con los intervalos previamente definidos, se procedió al cálculo de las frecuencias simples de la variable. Para obtener la frecuencia absoluta (ni), se utilizó un bucle for, que recorre secuencialmente cada uno de los intervalos. En cada iteración, el código evalúa cuántos datos de la variable se encuentran dentro de los límites inferior y superior correspondientes a un rango específico.

ni <- numeric(k_Costos)
for (i in 1:k_Costos) {
  if (i == k_Costos) {
    ni[i] <- sum(Costos >= liminf[i] & Costos <= limsup[i])
  } else {
    ni[i] <- sum(Costos >= liminf[i] & Costos < limsup[i])
  }
}

2.1.3.1 Frecuencia relativa

hi <- round((ni / length(Costos)) * 100, 3)

2.1.4 Frecuencias Acumuladas

Niasc <- cumsum(ni)
Nidsc <- rev(cumsum(rev(ni)))
Hiasc <- cumsum(hi)
Hidsc <- rev(cumsum(rev(hi)))

2.1.5 Tabla de distribución de frecuencias

tabla_Costos <- data.frame(
  liminf = round(liminf, 3),
  limsup = round(limsup, 3),
  MC = round(MC, 3),
  ni = ni,
  hi_porc = round(hi, 3),      
  Ni_asc = Niasc,
  Ni_dsc = Nidsc,
  Hiasc_porc = round(Hiasc, 3),
  Hidsc_porc = round(Hidsc, 3)
)

total_ni <- sum(tabla_Costos$ni)
total_hi <- 100

TDFCostosCompleto <- rbind(tabla_Costos, data.frame(
  liminf = "TOTAL",
  limsup = " ",
  MC = " ",
  ni = total_ni,
  hi_porc = total_hi,
  Ni_asc = " ",
  Ni_dsc = " ",
  Hiasc_porc = " ",
  Hidsc_porc = " "
))

library(gt)
tabla_Costos_gt <- TDFCostosCompleto %>%
  gt() %>%
  cols_label(
    liminf = md("**liminf**"),
    limsup = md("**limsup**"),
    MC = md("**MC**"),
    ni = md("**ni**"),
    hi_porc = md("**hi (%)**"),
    Ni_asc = md("**Ni ↑**"),
    Ni_dsc = md("**Ni ↓**"),
    Hiasc_porc = md("**Hi ↑ (%)**"),
    Hidsc_porc = md("**Hi ↓ (%)**")
  ) %>%
  tab_header(
    title = md("**Tabla N° 1**"),
    subtitle = md("**Distribución de frecuencias de Todos los Costos de
                  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 = liminf == "TOTAL"
    )
  )

tabla_Costos_gt
Tabla N° 1
Distribución de frecuencias de Todos los Costos de accidentes ocurridos en EE.UU (2010-2017)
liminf limsup MC ni hi (%) Ni ↑ Ni ↓ Hi ↑ (%) Hi ↓ (%)
0 23343.5 11671.75 1389 50.326 1389 2760 50.326 100
23343.5 46687 35015.25 374 13.551 1763 1371 63.877 49.674
46687 70030.5 58358.75 170 6.159 1933 997 70.036 36.123
70030.5 93374 81702.25 72 2.609 2005 827 72.645 29.964
93374 116717.5 105045.75 69 2.500 2074 755 75.145 27.355
116717.5 140061 128389.25 58 2.101 2132 686 77.246 24.855
140061 163404.5 151732.75 64 2.319 2196 628 79.565 22.754
163404.5 186748 175076.25 39 1.413 2235 564 80.978 20.435
186748 210091.5 198419.75 38 1.377 2273 525 82.355 19.022
210091.5 233435 221763.25 25 0.906 2298 487 83.261 17.645
233435 256778.5 245106.75 27 0.978 2325 462 84.239 16.739
256778.5 840526118 420391448.25 435 15.761 2760 435 100 15.761
TOTAL 2760 100.000
Autor: Grupo 1

Como se puede observar, la tabla resulta difícil de interpretar debido a la gran magnitud de los valores. Por ello, para un análisis más claro de la variable, se emplearán los intervalos sugeridos por R, lo que facilita la visualización y comprensión de la distribución de los datos.

2.2 Método práctico: Software R

2.2.1 Generación del histograma

histoCostos <- hist(VC_costos, 
            main ="Gráfica N°1: Distribución de frecuencias de Todos los Costos
            de accidentes en oleoductos ocurridos en EE.UU.", 
            xlab = "Todos los Costos", 
            ylab = "Frecuencia",
            col = "pink", 
            border = "black")

2.2.2 Límites, intervalos y marca de clase

Después de crear el histograma en R, se pueden obtener los límites de los intervalos usando breaks. Estos límites indican dónde empieza y termina cada clase, permitiendo organizar los datos en grupos claros y contiguos sin que se solapen.

Limites <- histoCostos$breaks
Limites
##  [1]      0  20000  40000  60000  80000 100000 120000 140000 160000 180000
## [11] 200000 220000 240000 260000 280000 300000
LimInf <- Limites[-length(Limites)] 
LimSup <- Limites[-1]
MC <- (LimInf + LimSup)/2

2.2.3 Frecuencias Simples

ni <- histoCostos$counts
hi <- (ni/sum(ni)*100)

2.2.4 Frecuencias Acumuladas

Niasc <- cumsum(ni)                     
Nidsc <- rev(cumsum(rev(ni)))           
Hiasc <- round(cumsum(hi), 3)          
Hidsc <- round(rev(cumsum(rev(hi))), 3)

2.2.5 Tabla de distribución de frecuencias

options(scipen = 999)
TDFCostosR <- data.frame(LimInf, LimSup, MC, ni, hi = round(hi,3),
                           Niasc, Nidsc, Hiasc, Hidsc)
total_ni <- sum(ni)
total_hi <- 100  

TDFCostosRFinal <- rbind(TDFCostosR,
                        data.frame(LimInf="Total",
                                   LimSup=" ", 
                                   MC=" ",
                                   ni=total_ni, 
                                   hi=total_hi, 
                                   Niasc=" ", 
                                   Nidsc=" ", 
                                   Hiasc=" ", 
                                   Hidsc=" "))

tabla_CostosR_gt <- TDFCostosRFinal %>%
  gt() %>%
  cols_label(
    LimInf = md("**LimInf**"),
    LimSup = md("**LimSup**"),
    MC = md("**MC**"),
    ni = md("**ni**"),
    hi = md("**hi (%)**"),
    Niasc = md("**Ni ↑**"),
    Nidsc = md("**Ni ↓**"),
    Hiasc = md("**Hi ↑ (%)**"),
    Hidsc = md("**Hi ↓ (%)**")
  ) %>%
  tab_header(
    title = md("**Tabla N° 2**"),
    subtitle = md("**Distribución de frecuencias de Todos los Costos de
                  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 = LimInf == "Total"
    )
  )
tabla_CostosR_gt
Tabla N° 2
Distribución de frecuencias de Todos los Costos de accidentes ocurridos en EE.UU (2010-2017)
LimInf LimSup MC ni hi (%) Ni ↑ Ni ↓ Hi ↑ (%) Hi ↓ (%)
0 20000 10000 1310 55.768 1310 2349 55.768 100
20000 40000 30000 339 14.432 1649 1039 70.2 44.232
40000 60000 50000 213 9.068 1862 700 79.268 29.8
60000 80000 70000 108 4.598 1970 487 83.865 20.732
80000 100000 90000 59 2.512 2029 379 86.377 16.135
100000 120000 110000 55 2.341 2084 320 88.719 13.623
120000 140000 130000 47 2.001 2131 265 90.719 11.281
140000 160000 150000 58 2.469 2189 218 93.189 9.281
160000 180000 170000 38 1.618 2227 160 94.806 6.811
180000 200000 190000 33 1.405 2260 122 96.211 5.194
200000 220000 210000 25 1.064 2285 89 97.275 3.789
220000 240000 230000 17 0.724 2302 64 97.999 2.725
240000 260000 250000 29 1.235 2331 47 99.234 2.001
260000 280000 270000 17 0.724 2348 18 99.957 0.766
280000 300000 290000 1 0.043 2349 1 100 0.043
Total 2349 100.000
Autor: Grupo 1

3.Gráficas de Distribución de Frecuencias


3.1 Histogramas

A continuación, las gráficas de histogramas 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.1 Histogramas frecuencias absolutas

- Histograma Frecuencia Absoluta (Escala Local)

hist(VC_costos, 
     main="Gráfica N°2: Distribución de frecuencias de todos los 
     costos de accidentes en oleoductos ocurridos en EE.UU.", 
     ylab="Cantidad",
     xlab="Todos los Costos", 
     las = 1, 
     col="mistyrose")

- Histograma Frecuencia Absoluta (Escala Global)

hist(VC_costos,
     main="Gráfica N°3: Distribución de frecuencias de todos los
     costos de accidentes en oleoductos ocurridos en EE.UU.", 
     ylab="Cantidad", 
     xlab="Todos los Costos", 
     col="mistyrose2",
     las = 1,
     ylim = c(0,length(VC_costos)))

3.1.2 Histogramas frecuencias relativas

- Histograma Frecuencia Relativa (Escala Local)

barplot(hi,space = 0,
        main = "Gráfica N°4: Distribución porcentual de todos los
        costos de accidentes en oleoductos ocurridos en EE.UU.",
        col="mistyrose3",
        xlab = "Todos los Costos", 
        ylab = "Porcentaje (%)", 
        las = 1,
        axis.lty = 1.5,
        cex.names = 0.9,
        names.arg =TDFCostosR$MC)

- Histograma Frecuencia Relativa (Escala Global)

barplot(hi,space = 0,
        main="Gráfica  N°5: Distribución porcentual de todos los
        costos de accidentes en oleoductos ocurridos en EE.UU.",
        col="mistyrose4",
        xlab = "Todos los Costos", 
        ylab = "Porcentaje (%)", 
        names.arg =TDFCostosR$MC,
        las = 1,
        cex.names = 0.9,
        axis.lty = 1.5,
        ylim = c(0,100))

3.2 Ojivas

3.2.1 Ojivas combinadas con la frecuencia absoluta

plot(TDFCostosR$MC, TDFCostosR$Nidsc,
     main = "Gráfica N°6: Ojivas combinadas de todos los costos 
       de accidentes en oleoductos ocurridos en EE.UU.(2010-2017)",
     type="b",
     col="skyblue", 
     pch=1,
     xlab="Todos los Costos", 
     ylab="Cantidad")

lines(TDFCostosR$MC, TDFCostosR$Niasc, type="b", col="pink4", pch=1)

legend("right",legend = c("Ojiva descendente", "Ojiva ascendente"),
       col = c("skyblue3", "pink4"), 
       pch = 1, lty = 1,cex = 0.7)

3.2.2 Ojivas combinadas con la frecuencia relativa

plot(TDFCostosR$MC,TDFCostosR$Hidsc,
      main = "Gráfica N°7: Ojivas combinadas de todos los costos 
       de accidentes en oleoductos ocurridos en EE.UU.(2010-2017)",
      xlab = "Todos los Costos", 
      ylab="Porcentaje (%)", 
      col="skyblue3",
      las = 1,
      type = "b")

lines(TDFCostosR$MC,TDFCostosR$Hiasc,col="pink4",type = "b")

legend("right",legend = c("Ojiva descendente", "Ojiva ascendente"),
       col = c("skyblue3", "pink4"), 
       pch = 1, lty = 1,cex = 0.7)

3.3 Diagrama de Caja y bigotes

boxplot(VC_costos, horizontal = TRUE, col = "pink3",
        main = "Gráfica N°8: Distribución de todos los costos de 
        accidentes en oleoductos ocurridos en EE.UU.",
        xlab = "Todos los Costos")

4.Indicadores estadísticos


4.1 Indicadores de posición

- Tendencia Central

mediana <- median(VC_costos)
media_aritmetica <- mean(VC_costos)
Mo <- "[0,20000)"

- No Centrales

# Cuartiles
ri <- min(VC_costos)
rs <- max(VC_costos)
summary(VC_costos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       0    3904   15220   40727   46528  280122

4.2 Indicadores de dispersión

desviacion_estandar <- sd(VC_costos)
coeficiente_variabilidad <- (desviacion_estandar / media_aritmetica) * 100

4.3 Indicadores de forma

library(e1071) 
As <- skewness(VC_costos)
curtosis <- kurtosis(VC_costos)

4.4 Tabla de indicadores

library(gt)

Variable <- c("Todos los Costos")
Tabla_indicadores_Costos <- 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_Costos) <- c("Variable","Mínimo",
                                        "Máximo","x",
                                        "Me","Mo",
                                        "S","Cv (%)",
                                        "As","K")

tabla_indicadores_gt <- Tabla_indicadores_Costos %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N°3**"),
    subtitle = md("**Indicadores estadísticos de la variable Todos los Costos
                   de accidentes ocurridos en EE.UU (2010-2017)**")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1")
  ) %>%
  cols_align(
    align = "center",   
    columns = everything()  
  ) %>%
  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°3
Indicadores estadísticos de la variable Todos los Costos de accidentes ocurridos en EE.UU (2010-2017)
Variable Mínimo Máximo x Me Mo S Cv (%) As K
Todos los Costos 0 280122 40727.32 15220 [0,20000) 58936.11 144.709 2.065 3.72
Autor: Grupo 1

5.Valores atípicos


5.1 Identificación de valores atípicos

outliers <- boxplot.stats(VC_costos)$out 

num_outliers <- length(outliers) 

minimooutliers <- min(outliers) 
maximooutliers <- max(outliers) 

5.2 Tabla de Valores atípicos

Tabla_outliers_Costos <- data.frame(
  Outliers = num_outliers,
  Mínimo = minimooutliers,
  Máximo = maximooutliers
)

library(gt)
Tabla_outliers_Costos %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N°4**"),
    subtitle = md("**Valores atípicos de la variable Todos los Costos 
                  de accidentes ocurridos en EE.UU (2010-2017)**")
  ) %>%
  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°4
Valores atípicos de la variable Todos los Costos de accidentes ocurridos en EE.UU (2010-2017)
Outliers Mínimo Máximo
288 110600 280122

6.Conclusión

La variable Todos los Costos de accidentes en oleoductos en EE.UU. durante el periodo 2010–2017 presenta un rango entre 0 y 280,122 dólares, con una media de 40,727.32 dólares y una mediana de 15,220 dólares, lo que refleja una distribución fuertemente asimétrica hacia valores altos. La desviación estándar es elevada (58,936.11) y el coeficiente de variación (144.71%) indica que los datos son altamente dispersos y heterogéneos.

La asimetría positiva (2.065) y la curtosis (3.72) muestran que la mayoría de los accidentes generan costos bajos o moderados, pero existen casos excepcionales con costos significativamente altos que desplazan la media y generan colas largas hacia la derecha.

Se identificaron 288 valores atípicos, con montos entre 110,600 y 280,122 dólares, los cuales representan accidentes de gran magnitud y con un impacto económico considerable.

En resumen, aunque la mayoría de los accidentes tienen costos relativamente bajos, los eventos extremos son financieramente relevantes y deben considerarse en la evaluación de riesgos y en la planificación de políticas de prevención y mitigación.