## 'data.frame': 3550 obs. of 23 variables:
## $ Id : int 6786 6250 8220 6241 6216 6620 6262 6229 6201 6221 ...
## $ Dia : int 19 3 21 16 19 7 10 12 18 29 ...
## $ Mes : int 1 6 4 3 12 10 2 5 3 1 ...
## $ Año : chr "A" "1979" "2010" "1978" ...
## $ Nombre : chr "Arabian Gulf Spills; Persian Gulf, Kuwait" "IXTOC I; Bahia de Campeche, Mexico" "Deepwater Horizon; Gulf of Mexico" "Amoco Cadiz; Brittany, France" ...
## $ Ubicacion : chr "Persian Gulf, Kuwait" "Bahia de Campeche, Mexico" "Gulf of Mexico" "Brittany, France" ...
## $ Latitud : chr "29,5" "19,4083" "28,7367" "48,5833" ...
## $ Longuitud : chr "48" "-92,325" "-88,3872" "-4,71667" ...
## $ Amenaza : chr "Oil" "Oil" "Oil" "Oil" ...
## $ Etiquetas : chr "" "Collision" "" "Grounding" ...
## $ Tipo_de_crudo : chr "Kuwait crude oil" "IXTOC I crude oil" "Diesel, crude oil" "Arabian light crude, Iranian light crude, Bunker C" ...
## $ Cantidad_recuperada_superficie : int NA NA 1 NA NA NA NA NA NA NA ...
## $ Cantidad_recuperada_costas : int NA NA 1 NA NA NA NA NA NA NA ...
## $ Cantidad_tratada_biologicamente : int 1 NA 1 1 NA NA NA NA NA NA ...
## $ Cantidad_dispersada_quimicamente: int NA 1 1 1 NA NA NA 1 1 1 ...
## $ Cantidad_quemada : int NA 1 1 NA NA NA NA 1 1 1 ...
## $ Maximo_liberacion_galones : int 336000009 NA 205000000 68000017 NA NA NA 9240000 36100000 NA ...
## $ Barreras_de_contencion_flotantes: int 35 12 182 17 3 3 7 8 5 6 ...
## $ Causa_principal : chr "Daño del tanque " "Incendio y explosion " "Incendio y explosion " "Daño del tanque " ...
## $ Volumen_derramados_galones : chr "336.000.000" "365.000.000" "600.000.000" "68.000.000" ...
## $ Respuesta_actual_galones : chr "336000000" "252000000" "168000000" "68700000" ...
## $ Fuente_respuesta : chr "description and posts" "posts" "description" "posts" ...
## $ etiqueta_actualizacion : chr "RA updated" "RA newly acquired" "RA updated" "RA updated" ...
## Warning: NAs introduced by coercion
#Creación de los rangos
rango_Latitud <- cut(datos$Latitud,
breaks = seq(floor(min(datos$Latitud, na.rm = TRUE)), ceiling(max(datos$Latitud, na.rm = TRUE)), by = 10),
right = FALSE)
# Generación de la tabla de frecuencias
TDF_Latitud <- table(rango_Latitud)
tabla_Latitud <- as.data.frame(TDF_Latitud)
# Cálculo de los porcentajes
hi_Latitud <- (tabla_Latitud$Freq / sum(tabla_Latitud$Freq)) * 100
tabla_Latitud$hi <- round(hi_Latitud, 2)
# Cálculo de frecuencias acumuladas
Niasc_Latitud <- cumsum(tabla_Latitud$Freq)
Hiasc_Latitud <- cumsum(hi_Latitud)
Nidsc_Latitud <- rev(cumsum(rev(tabla_Latitud$Freq)))
Hidsc_Latitud <- rev(cumsum(rev(hi_Latitud)))
# Creación de la tabla final
tabla_Latitud_Final <- data.frame(
Rango_Latitud = levels(rango_Latitud),
Frecuencia = tabla_Latitud$Freq,
Porcentaje = tabla_Latitud$hi,
Niasc = Niasc_Latitud,
Hiasc = round(Hiasc_Latitud, 2),
Nidsc = Nidsc_Latitud,
Hidsc = round(Hidsc_Latitud, 2))
# Imprimir tabla final
print(tabla_Latitud_Final)## Rango_Latitud Frecuencia Porcentaje Niasc Hiasc Nidsc Hidsc
## 1 [-78,-68) 1 3.85 1 3.85 26 100.00
## 2 [-68,-58) 0 0.00 1 3.85 25 96.15
## 3 [-58,-48) 1 3.85 2 7.69 25 96.15
## 4 [-48,-38) 0 0.00 2 7.69 24 92.31
## 5 [-38,-28) 1 3.85 3 11.54 24 92.31
## 6 [-28,-18) 0 0.00 3 11.54 23 88.46
## 7 [-18,-8) 0 0.00 3 11.54 23 88.46
## 8 [-8,2) 0 0.00 3 11.54 23 88.46
## 9 [2,12) 1 3.85 4 15.38 23 88.46
## 10 [12,22) 5 19.23 9 34.62 22 84.62
## 11 [22,32) 9 34.62 18 69.23 17 65.38
## 12 [32,42) 5 19.23 23 88.46 8 30.77
## 13 [42,52) 3 11.54 26 100.00 3 11.54
par(mar = c(8, 4, 4, 2))
bp1 <- barplot(tabla_Latitud_Final$Frecuencia,
names.arg = tabla_Latitud_Final$Rango_Latitud,
main = "Frecuencia de la Latitud en los derrames globales",
cex.main = 0.9,
xlab = "Latitud",
ylab = "Frecuencia",
col = terrain.colors(length(tabla_Latitud_Final$Frecuencia)),
border = "black",
las = 2, # 🔹 Rota etiquetas (vertical)
cex.names = 0.8) # 🔹 Reduce tamaño de fuente
# Añadir valores encima de cada barra
text(x = bp1,
y = tabla_Latitud_Final$Frecuencia,
labels = tabla_Latitud_Final$Frecuencia,
pos = 3, cex = 0.7, col = "black")boxplot(
datos$Latitud,
horizontal = TRUE,
col = "beige",
main = " Diagrama de Caja de la Latitud en Derrames Petroleros a Nivel Global",
cex.main = 0.8,
xlab = "Latitud"
)x_Latitud <- 1:length(tabla_Latitud_Final$Rango_Latitud)
y_ni_asc_Latitud <- tabla_Latitud_Final$Niasc
y_ni_dsc_Latitud <- tabla_Latitud_Final$Nidsc
plot(x_Latitud, y_ni_asc_Latitud,
type = "b",
main = " Ojivas de la Latitud en Derrames Petroleros a Nivel Global",
cex.main = 0.8,
xlab = " Latitud",
ylab = "Frecuencia acumulada",
col = "black")
lines(x_Latitud, y_ni_dsc_Latitud, col = "blue", type = "b")
grid()
# Leyenda más a la izquierda
legend("topleft", legend = c("Ascendente", "Descendente"),
col = c("black", "blue"), lty = 1, cex = 0.8, inset = c(0.02, 0.29))Los resultados muestran que la latitud con mayor frecuencia se encuentra en el rango [22,32) con un 34.62% , seguido por el rango [12,22) Y [32,42) con un 19.23% . La distribución es ligeramente asimétrica hacia el hemisferio norte y las ojivas confirman que más del 80% de los derrames ocurren en los primeros cuatro rangos. El diagrama de caja evidencia que la mayoría de los datos se concentran cerca de la mediana, con pocos valores extremos.
## Warning: NAs introduced by coercion
# Creación de los rangos para la radiación solar
rango_Longuitud <- cut(datos$Longuitud,
breaks = seq(floor(min(datos$Longuitud, na.rm = TRUE)),
ceiling(max(datos$Longuitud, na.rm = TRUE)),
by = 20),
right = FALSE)
# Generación de la tabla de frecuencias
TDF_Longuitud <- table(rango_Longuitud)
tabla_Longuitud <- as.data.frame(TDF_Longuitud)
# Cálculo de los porcentajes
hi_Longuitud <- (tabla_Longuitud$Freq / sum(tabla_Longuitud$Freq)) * 100
tabla_Longuitud$hi <- round(hi_Longuitud, 2)
# Cálculo de frecuencias acumuladas
Niasc_Longuitud <- cumsum(tabla_Longuitud$Freq)
Hiasc_Longuitud <- cumsum(hi_Longuitud)
Nidsc_Longuitud <- rev(cumsum(rev(tabla_Longuitud$Freq)))
Hidsc_Longuitud <- rev(cumsum(rev(hi_Longuitud)))
# Creación de la tabla final con todos los cálculos
tabla_Longuitud_Final <- data.frame(
Rango_Longuitud = levels(rango_Longuitud),
Frecuencia = tabla_Longuitud$Freq,
Porcentaje = tabla_Longuitud$hi,
Niasc = Niasc_Longuitud,
Hiasc = round(Hiasc_Longuitud, 2),
Nidsc = Nidsc_Longuitud,
Hidsc = round(Hidsc_Longuitud, 2)
)
# Imprimir tabla final
print(tabla_Longuitud_Final)## Rango_Longuitud Frecuencia Porcentaje Niasc Hiasc Nidsc Hidsc
## 1 [-174,-154) 5 11.36 5 11.36 44 100.00
## 2 [-154,-134) 3 6.82 8 18.18 39 88.64
## 3 [-134,-114) 4 9.09 12 27.27 36 81.82
## 4 [-114,-94) 4 9.09 16 36.36 32 72.73
## 5 [-94,-74) 16 36.36 32 72.73 28 63.64
## 6 [-74,-54) 8 18.18 40 90.91 12 27.27
## 7 [-54,-34) 0 0.00 40 90.91 4 9.09
## 8 [-34,-14) 0 0.00 40 90.91 4 9.09
## 9 [-14,6) 1 2.27 41 93.18 4 9.09
## 10 [6,26) 1 2.27 42 95.45 3 6.82
## 11 [26,46) 0 0.00 42 95.45 2 4.55
## 12 [46,66) 2 4.55 44 100.00 2 4.55
## 13 [66,86) 0 0.00 44 100.00 0 0.00
## 14 [86,106) 0 0.00 44 100.00 0 0.00
## 15 [106,126) 0 0.00 44 100.00 0 0.00
## 16 [126,146) 0 0.00 44 100.00 0 0.00
par(mar = c(8, 4, 4, 2))
bp1 <- barplot(tabla_Longuitud_Final$Frecuencia,
names.arg = tabla_Longuitud_Final$Rango_Longuitud,
main = "Frecuencia de la Longitud en Derrames Petroleros a Nivel Global",
cex.main = 0.9,
xlab = "Longitud",
ylab = "Frecuencia",
col = terrain.colors(length(tabla_Longuitud_Final$Frecuencia)),
border = "black",
las = 2,
cex.names = 0.5)
# Añadir valores encima de cada barra
text(x = bp1,
y = tabla_Longuitud_Final$Frecuencia,
labels = tabla_Longuitud_Final$Frecuencia,
pos = 3, cex = 0.7, col = "black")boxplot(datos$Longuitud,
horizontal = TRUE,
col = "beige",
main = "Diagrama de Caja de la Longitud en Derrames Petroleros a Nivel Global",
cex.main = 0.8,
xlab = "Longitud")x_Longuitud <- 1:length(tabla_Longuitud_Final$Rango_Longuitud) # solo índice
y_ni_asc_Longuitud <- tabla_Longuitud_Final$Niasc
y_ni_dsc_Longuitud <- tabla_Longuitud_Final$Nidsc
plot(x_Longuitud, y_ni_asc_Longuitud,
type = "b",
main = "Ojivas de la Longitud en Derrames Petroleros a Nivel Global",
cex.main = 0.8,
xlab = "Longitud ",
ylab = "Frecuencia acumulada",
col = "black")
lines(x_Longuitud, y_ni_dsc_Longuitud, col = "blue", type = "b")
grid()
legend("right", legend = c("Ascendente", "Descendente"),
col = c("black", "blue"), lty = 1, cex = 0.6)Los resultados muestran que la mayor concentración de derrames petroleros se encuentra en los rangos de longitud negativa, destacando el intervalo [-94, -74) con un 36.4%, seguido por [-74, -54) con un 18.2%. Esto evidencia que la mayoría de los eventos se registran en el hemisferio occidental. El diagrama de caja confirma esta tendencia, ya que la mediana se concentra alrededor de valores negativos, mientras que se observan valores atípicos en longitudes positivas que representan pocos casos aislados. Finalmente, las ojivas muestran que más del 70% de los derrames se acumulan en los primeros cinco rangos, lo cual indica una distribución predominantemente agrupada hacia el occidente, con una menor frecuencia en otras regiones longitudinales.
setwd("/cloud/project")
datos <- read.csv("Derrames_globales2.csv", header = TRUE, sep = ";" , dec = ".")
str(datos)## 'data.frame': 3550 obs. of 23 variables:
## $ Id : int 6786 6250 8220 6241 6216 6620 6262 6229 6201 6221 ...
## $ Dia : int 19 3 21 16 19 7 10 12 18 29 ...
## $ Mes : int 1 6 4 3 12 10 2 5 3 1 ...
## $ Año : chr "A" "1979" "2010" "1978" ...
## $ Nombre : chr "Arabian Gulf Spills; Persian Gulf, Kuwait" "IXTOC I; Bahia de Campeche, Mexico" "Deepwater Horizon; Gulf of Mexico" "Amoco Cadiz; Brittany, France" ...
## $ Ubicacion : chr "Persian Gulf, Kuwait" "Bahia de Campeche, Mexico" "Gulf of Mexico" "Brittany, France" ...
## $ Latitud : chr "29,5" "19,4083" "28,7367" "48,5833" ...
## $ Longuitud : chr "48" "-92,325" "-88,3872" "-4,71667" ...
## $ Amenaza : chr "Oil" "Oil" "Oil" "Oil" ...
## $ Etiquetas : chr "" "Collision" "" "Grounding" ...
## $ Tipo_de_crudo : chr "Kuwait crude oil" "IXTOC I crude oil" "Diesel, crude oil" "Arabian light crude, Iranian light crude, Bunker C" ...
## $ Cantidad_recuperada_superficie : int NA NA 1 NA NA NA NA NA NA NA ...
## $ Cantidad_recuperada_costas : int NA NA 1 NA NA NA NA NA NA NA ...
## $ Cantidad_tratada_biologicamente : int 1 NA 1 1 NA NA NA NA NA NA ...
## $ Cantidad_dispersada_quimicamente: int NA 1 1 1 NA NA NA 1 1 1 ...
## $ Cantidad_quemada : int NA 1 1 NA NA NA NA 1 1 1 ...
## $ Maximo_liberacion_galones : int 336000009 NA 205000000 68000017 NA NA NA 9240000 36100000 NA ...
## $ Barreras_de_contencion_flotantes: int 35 12 182 17 3 3 7 8 5 6 ...
## $ Causa_principal : chr "Daño del tanque " "Incendio y explosion " "Incendio y explosion " "Daño del tanque " ...
## $ Volumen_derramados_galones : chr "336.000.000" "365.000.000" "600.000.000" "68.000.000" ...
## $ Respuesta_actual_galones : chr "336000000" "252000000" "168000000" "68700000" ...
## $ Fuente_respuesta : chr "description and posts" "posts" "description" "posts" ...
## $ etiqueta_actualizacion : chr "RA updated" "RA newly acquired" "RA updated" "RA updated" ...
breaks_1 <- seq(0, 40000, by = 2666.66)
cut_1 <- cut(Maximo_liberacion_galones[Maximo_liberacion_galones >= 0 & Maximo_liberacion_galones <= 40000],
breaks = breaks_1, right = TRUE, include.lowest = TRUE)
TDF_1 <- table(cut_1)
Tabla_1 <- as.data.frame(TDF_1)
hi_1 <- (Tabla_1$Freq / sum(Tabla_1$Freq)) * 100
Ni_asc_1 <- cumsum(Tabla_1$Freq)
Hi_asc_1 <- cumsum(hi_1)
Ni_dsc_1 <- rev(cumsum(rev(Tabla_1$Freq)))
Hi_dsc_1 <- rev(cumsum(rev(hi_1)))
Tabla_Final_1 <- data.frame(
Intervalo = as.character(Tabla_1$cut_1),
ni = Tabla_1$Freq,
hi = round(hi_1, 2),
Ni_asc = Ni_asc_1,
Hi_asc = round(Hi_asc_1, 2),
Ni_dsc = Ni_dsc_1,
Hi_dsc = round(Hi_dsc_1, 2)
)
print(Tabla_Final_1)## Intervalo ni hi Ni_asc Hi_asc Ni_dsc Hi_dsc
## 1 [0,2.67e+03] 1014 60.75 1014 60.75 1669 100.00
## 2 (2.67e+03,5.33e+03] 236 14.14 1250 74.90 655 39.25
## 3 (5.33e+03,8e+03] 90 5.39 1340 80.29 419 25.10
## 4 (8e+03,1.07e+04] 93 5.57 1433 85.86 329 19.71
## 5 (1.07e+04,1.33e+04] 43 2.58 1476 88.44 236 14.14
## 6 (1.33e+04,1.6e+04] 30 1.80 1506 90.23 193 11.56
## 7 (1.6e+04,1.87e+04] 19 1.14 1525 91.37 163 9.77
## 8 (1.87e+04,2.13e+04] 41 2.46 1566 93.83 144 8.63
## 9 (2.13e+04,2.4e+04] 9 0.54 1575 94.37 103 6.17
## 10 (2.4e+04,2.67e+04] 28 1.68 1603 96.05 94 5.63
## 11 (2.67e+04,2.93e+04] 9 0.54 1612 96.58 66 3.95
## 12 (2.93e+04,3.2e+04] 21 1.26 1633 97.84 57 3.42
## 13 (3.2e+04,3.47e+04] 16 0.96 1649 98.80 36 2.16
## 14 (3.47e+04,3.73e+04] 12 0.72 1661 99.52 20 1.20
## 15 (3.73e+04,4e+04] 8 0.48 1669 100.00 8 0.48
barplot(
Tabla_Final_1$ni,
names.arg = Tabla_Final_1$Intervalo,
col = "skyblue",
main = "Distribución de la Maxima Liberación Petrolera a Nivel Global (Rango 1)",
xlab = "Máximo de liberación ",
ylab = "Frecuencia",
las = 2,
cex.names = 0.6,
border = "black",
xaxt = "n")boxplot(
Maximo_liberacion_galones[Maximo_liberacion_galones >= 0 & Maximo_liberacion_galones <= 40000],
horizontal = TRUE,
col = "lightblue",
main = "Distribución de la Maxima Liberación Petrolera a Nivel Global(Rango 1)",
xlab = "Máximo de liberación ",
cex.main = 0.9,
xaxt = "n")
axis(1, at = pretty(Maximo_liberacion_galones[Maximo_liberacion_galones >= 0 & Maximo_liberacion_galones <= 50000]),
labels = format(pretty(Maximo_liberacion_galones[Maximo_liberacion_galones >= 0 & Maximo_liberacion_galones <= 50000]),
scientific = FALSE))x_vals_1 <- seq_along(Tabla_Final_1$Intervalo)
ymax_1 <- max(Tabla_Final_1$Ni_asc, Tabla_Final_1$Ni_dsc) * 1.1
plot(x_vals_1, Tabla_Final_1$Ni_asc,
type = "b", pch = 19, col = "blue",
ylim = c(0, ymax_1),
xaxt = "n",
main = "Ojiva ascendente (Rango 1)",
xlab = "Maximo de liberación", ylab = "Frecuencia acumulada")
axis(1, at = x_vals_1, labels = Tabla_Final_1$Intervalo, las = 2, cex.axis = 0.7)plot(x_vals_1, Tabla_Final_1$Ni_dsc,
type = "b", pch = 19, col = "red",
ylim = c(0, ymax_1),
xaxt = "n",
main = "Ojiva descendente (Rango 1)",
xlab = "Maximo de liberación", ylab = "Frecuencia acumulada")
axis(1, at = x_vals_1, labels = Tabla_Final_1$Intervalo, las = 2, cex.axis = 0.7)plot(x_vals_1, Tabla_Final_1$Ni_asc,
type = "b", pch = 19, col = "blue",
ylim = c(0, ymax_1),
xaxt = "n",
main = "Ojivas Ascendente y Descendente de la Maxima Liberación Petrolera a Nivel Global (Rango 1)",
cex.main = 0.9,
xlab = "Maximo de liberación", ylab = "Frecuencia acumulada")
lines(x_vals_1, Tabla_Final_1$Ni_dsc, type = "b", pch = 19, col = "red")
axis(1, at = x_vals_1, labels = Tabla_Final_1$Intervalo, las = 2, cex.axis = 0.7)
legend("topright", legend = c("Ascendente", "Descendente"), col = c("blue", "red"), pch = 19)breaks_2 <- seq(40001, 336000009, by = 22397333.86)
cut_2 <- cut(Maximo_liberacion_galones[
Maximo_liberacion_galones >= 40001 & Maximo_liberacion_galones <= 336000009
],
breaks = breaks_2, right = TRUE, include.lowest = TRUE)
TDF_2 <- table(cut_2)
Tabla_2 <- as.data.frame(TDF_2)
hi_2 <- (Tabla_2$Freq / sum(Tabla_2$Freq)) * 100
Ni_asc_2 <- cumsum(Tabla_2$Freq)
Hi_asc_2 <- cumsum(hi_2)
Ni_dsc_2 <- rev(cumsum(rev(Tabla_2$Freq)))
Hi_dsc_2 <- rev(cumsum(rev(hi_2)))
Tabla_Final_2 <- data.frame(
Intervalo = as.character(Tabla_2$cut_2),
ni = Tabla_2$Freq,
hi = round(hi_2, 2),
Ni_asc = Ni_asc_2,
Hi_asc = round(Hi_asc_2, 2),
Ni_dsc = Ni_dsc_2,
Hi_dsc = round(Hi_dsc_2, 2)
)
print(Tabla_Final_2)## Intervalo ni hi Ni_asc Hi_asc Ni_dsc Hi_dsc
## 1 [4e+04,2.24e+07] 467 97.29 467 97.29 480 100.00
## 2 (2.24e+07,4.48e+07] 11 2.29 478 99.58 13 2.71
## 3 (4.48e+07,6.72e+07] 0 0.00 478 99.58 2 0.42
## 4 (6.72e+07,8.96e+07] 1 0.21 479 99.79 2 0.42
## 5 (8.96e+07,1.12e+08] 0 0.00 479 99.79 1 0.21
## 6 (1.12e+08,1.34e+08] 0 0.00 479 99.79 1 0.21
## 7 (1.34e+08,1.57e+08] 0 0.00 479 99.79 1 0.21
## 8 (1.57e+08,1.79e+08] 0 0.00 479 99.79 1 0.21
## 9 (1.79e+08,2.02e+08] 0 0.00 479 99.79 1 0.21
## 10 (2.02e+08,2.24e+08] 1 0.21 480 100.00 1 0.21
## 11 (2.24e+08,2.46e+08] 0 0.00 480 100.00 0 0.00
## 12 (2.46e+08,2.69e+08] 0 0.00 480 100.00 0 0.00
## 13 (2.69e+08,2.91e+08] 0 0.00 480 100.00 0 0.00
## 14 (2.91e+08,3.14e+08] 0 0.00 480 100.00 0 0.00
## 15 (3.14e+08,3.36e+08] 0 0.00 480 100.00 0 0.00
barplot(
Tabla_Final_2$ni,
names.arg = Tabla_Final_2$Intervalo,
col = "purple",
main = "Distribución de la Maxima Liberación Petrolera a Nivel Global(Rango 2)",
xlab = "Máximo de liberación ",
ylab = "Máximo de liberación ",
las = 2,
cex.names = 0.6,
border = "black",
xaxt = "n")boxplot(
Maximo_liberacion_galones[
Maximo_liberacion_galones >= 40001 & Maximo_liberacion_galones <= 336000009
],
horizontal = TRUE,
col = "purple3",
main = "Distribución de la Maxima Liberación Petrolera a Nivel Global (Rango 2)",
xlab = "Maximo de liberación",
cex.main = 0.95)x_vals_2 <- seq_along(Tabla_Final_2$Intervalo)
ymax_2 <- max(Tabla_Final_2$Ni_asc, Tabla_Final_2$Ni_dsc) * 1.1
plot(x_vals_2, Tabla_Final_2$Ni_asc,
type = "b", pch = 19, col = "blue",
ylim = c(0, ymax_2),
xaxt = "n",
main = "Ojiva ascendente (Rango 2)",
xlab = "Maximo de liberación", ylab = "Frecuencia acumulada")
axis(1, at = x_vals_2, labels = Tabla_Final_2$Intervalo, las = 2, cex.axis = 0.7)plot(x_vals_2, Tabla_Final_2$Ni_dsc,
type = "b", pch = 19, col = "red",
ylim = c(0, ymax_2),
xaxt = "n",
main = "Ojiva descendente (Rango 2)",
xlab = "Maximo de liberación", ylab = "Frecuencia acumulada")
axis(1, at = x_vals_2, labels = Tabla_Final_2$Intervalo, las = 2, cex.axis = 0.7)plot(x_vals_2, Tabla_Final_2$Ni_asc,
type = "b", pch = 19, col = "blue",
ylim = c(0, ymax_2),
xaxt = "n",
main = "Ojivas Ascendente y Descendente (Rango 2)",
cex.main = 0.9,
xlab = "Maximo de liberación", ylab = "Frecuencia acumulada")
lines(x_vals_2, Tabla_Final_2$Ni_dsc, type = "b", pch = 19, col = "red")
axis(1, at = x_vals_2, labels = Tabla_Final_2$Intervalo, las = 2, cex.axis = 0.7)
legend("topright", legend = c("Ascendente", "Descendente"), col = c("blue", "red"), pch = 19)La variable que nos indica la Maxima Liberación Petrolera a Nivel Global nos muestra que en el Rango 1, la distribución se concentra en valores bajos y presenta pocos valores atípicos, mostrando una menor dispersión y una forma más homogénea. En cambio, el Rango 2 evidencia una mayor variabilidad y una gran cantidad de outliers, con algunos valores extremadamente altos que generan una distribución más sesgada y dispersa. Esto indica que los eventos del Rango 1 son más frecuentes y estables, mientras que en el Rango 2 predominan casos excepcionales de gran magnitud.
## Warning: NAs introduced by coercion
## Warning: NAs introduced by coercion
breaks_1 <- seq(0, 10000, by = 500)
cut_1 <- cut(Respuesta_actual_galones[Respuesta_actual_galones >= 0 & Respuesta_actual_galones <= 10000], breaks = breaks_1, right = TRUE, include.lowest = TRUE)
TDF_1 <- table(cut_1)
Tabla_1 <- as.data.frame(TDF_1)
hi_1 <- (Tabla_1$Freq / sum(Tabla_1$Freq)) * 100
Ni_asc_1 <- cumsum(Tabla_1$Freq)
Hi_asc_1 <- cumsum(hi_1)
Ni_dsc_1 <- rev(cumsum(rev(Tabla_1$Freq)))
Hi_dsc_1 <- rev(cumsum(rev(hi_1)))
Tabla_Final_1 <- data.frame(
Intervalo = Tabla_1$cut_1,
ni = Tabla_1$Freq,
hi = round(hi_1, 2),
Ni_asc = Ni_asc_1,
Hi_asc = round(Hi_asc_1, 2),
Ni_dsc = Ni_dsc_1,
Hi_dsc = round(Hi_dsc_1, 2)
)
print(Tabla_Final_1)## Intervalo ni hi Ni_asc Hi_asc Ni_dsc Hi_dsc
## 1 [0,500] 778 57.50 778 57.50 1353 100.00
## 2 (500,1e+03] 146 10.79 924 68.29 575 42.50
## 3 (1e+03,1.5e+03] 53 3.92 977 72.21 429 31.71
## 4 (1.5e+03,2e+03] 65 4.80 1042 77.01 376 27.79
## 5 (2e+03,2.5e+03] 44 3.25 1086 80.27 311 22.99
## 6 (2.5e+03,3e+03] 44 3.25 1130 83.52 267 19.73
## 7 (3e+03,3.5e+03] 17 1.26 1147 84.77 223 16.48
## 8 (3.5e+03,4e+03] 28 2.07 1175 86.84 206 15.23
## 9 (4e+03,4.5e+03] 42 3.10 1217 89.95 178 13.16
## 10 (4.5e+03,5e+03] 34 2.51 1251 92.46 136 10.05
## 11 (5e+03,5.5e+03] 4 0.30 1255 92.76 102 7.54
## 12 (5.5e+03,6e+03] 11 0.81 1266 93.57 98 7.24
## 13 (6e+03,6.5e+03] 5 0.37 1271 93.94 87 6.43
## 14 (6.5e+03,7e+03] 17 1.26 1288 95.20 82 6.06
## 15 (7e+03,7.5e+03] 2 0.15 1290 95.34 65 4.80
## 16 (7.5e+03,8e+03] 11 0.81 1301 96.16 63 4.66
## 17 (8e+03,8.5e+03] 19 1.40 1320 97.56 52 3.84
## 18 (8.5e+03,9e+03] 8 0.59 1328 98.15 33 2.44
## 19 (9e+03,9.5e+03] 3 0.22 1331 98.37 25 1.85
## 20 (9.5e+03,1e+04] 22 1.63 1353 100.00 22 1.63
barplot(
Tabla_Final_1$ni,
names.arg = Tabla_Final_1$Intervalo,
col = "purple2",
main = "Distribución de la Cantidad recolectada de los derrames a Nivel Global (Rango 1)",
xlab = "Cantidad recolectada",
ylab = "Frecuencia",
las = 2,
cex.names = 0.6,
border = "black")boxplot(
Respuesta_actual_galones[Respuesta_actual_galones >= 0 & Respuesta_actual_galones <= 10000],
horizontal = TRUE,
col = "purple2",
main = "Distribución de la Cantidad recolectada de los derrames a Nivel Global (Rango 1)",
xlab = "Cantidad Recolectada",
cex.main = 0.95,
xaxt = "n")
axis(1, at = pretty(Respuesta_actual_galones[Respuesta_actual_galones >= 0 & Respuesta_actual_galones <= 500000]),
labels = format(pretty(Respuesta_actual_galones[Respuesta_actual_galones >= 0 & Respuesta_actual_galones <= 500000]),
scientific = FALSE))x_vals_1 <- seq_along(Tabla_Final_1$Intervalo)
ymax_1 <- max(Tabla_Final_1$Ni_asc) * 1.1
plot(x_vals_1, Tabla_Final_1$Ni_asc,
type = "b", pch = 19, col = "blue", lwd = 2,
ylim = c(0, ymax_1),
xaxt = "n",
main = "Ojiva ascendente (Rango 1)",
xlab = "Cantidad Recolectada", ylab = "Frecuencia acumulada")
axis(1, at = x_vals_1, labels = Tabla_Final_1$Intervalo, las = 2, cex.axis = 0.7)plot(x_vals_1, Tabla_Final_1$Ni_dsc,
type = "b", pch = 19, col = "red", lwd = 2,
ylim = c(0, ymax_1),
xaxt = "n",
main = "Ojiva descendente (Rango 1)",
xlab = "Cantidad Recolectada", ylab = "Frecuencia acumulada")
axis(1, at = x_vals_1, labels = Tabla_Final_1$Intervalo, las = 2, cex.axis = 0.7)plot(x_vals_1, Tabla_Final_1$Ni_asc,
type = "b", pch = 19, col = "blue", lwd = 2,
ylim = c(0, ymax_1),
xaxt = "n",
main = "Ojivas Ascendente y Descendente de la Cantidad recolectada de los derrames a Nivel Global (Rango 1)",
xlab = "Cantidad Recolectada", ylab = "Frecuencia acumulada")
lines(x_vals_1, Tabla_Final_1$Ni_dsc, col = "red", lwd = 2, type = "b", pch = 19)
axis(1, at = x_vals_1, labels = Tabla_Final_1$Intervalo, las = 2, cex.axis = 0.7)
legend("topright",
legend = c("Ascendente", "Descendente"),
col = c("blue", "red"),
lty = 1, pch = 19, lwd = 2,
cex = 0.7)breaks_2 <- seq(10001, 336000000, by = 16800000 )
cut_2 <- cut(Respuesta_actual_galones[
Respuesta_actual_galones >= 10001 & Respuesta_actual_galones <= 336000000
],
breaks = breaks_2, right = TRUE, include.lowest = TRUE)
TDF_2 <- table(cut_2)
Tabla_2 <- as.data.frame(TDF_2)
hi_2 <- (Tabla_2$Freq / sum(Tabla_2$Freq)) * 100
Ni_asc_2 <- cumsum(Tabla_2$Freq)
Hi_asc_2 <- cumsum(hi_2)
Ni_dsc_2 <- rev(cumsum(rev(Tabla_2$Freq)))
Hi_dsc_2 <- rev(cumsum(rev(hi_2)))
Tabla_Final_2 <- data.frame(
Intervalo = as.character(Tabla_2$cut_2),
ni = Tabla_2$Freq,
hi = round(hi_2, 2),
Ni_asc = Ni_asc_2,
Hi_asc = round(Hi_asc_2, 2),
Ni_dsc = Ni_dsc_2,
Hi_dsc = round(Hi_dsc_2, 2)
)
print(Tabla_Final_2)## Intervalo ni hi Ni_asc Hi_asc Ni_dsc Hi_dsc
## 1 [1e+04,1.68e+07] 429 97.72 429 97.72 439 100.00
## 2 (1.68e+07,3.36e+07] 5 1.14 434 98.86 10 2.28
## 3 (3.36e+07,5.04e+07] 2 0.46 436 99.32 5 1.14
## 4 (5.04e+07,6.72e+07] 0 0.00 436 99.32 3 0.68
## 5 (6.72e+07,8.4e+07] 1 0.23 437 99.54 3 0.68
## 6 (8.4e+07,1.01e+08] 0 0.00 437 99.54 2 0.46
## 7 (1.01e+08,1.18e+08] 0 0.00 437 99.54 2 0.46
## 8 (1.18e+08,1.34e+08] 0 0.00 437 99.54 2 0.46
## 9 (1.34e+08,1.51e+08] 0 0.00 437 99.54 2 0.46
## 10 (1.51e+08,1.68e+08] 1 0.23 438 99.77 2 0.46
## 11 (1.68e+08,1.85e+08] 0 0.00 438 99.77 1 0.23
## 12 (1.85e+08,2.02e+08] 0 0.00 438 99.77 1 0.23
## 13 (2.02e+08,2.18e+08] 0 0.00 438 99.77 1 0.23
## 14 (2.18e+08,2.35e+08] 0 0.00 438 99.77 1 0.23
## 15 (2.35e+08,2.52e+08] 1 0.23 439 100.00 1 0.23
## 16 (2.52e+08,2.69e+08] 0 0.00 439 100.00 0 0.00
## 17 (2.69e+08,2.86e+08] 0 0.00 439 100.00 0 0.00
## 18 (2.86e+08,3.02e+08] 0 0.00 439 100.00 0 0.00
## 19 (3.02e+08,3.19e+08] 0 0.00 439 100.00 0 0.00
barplot(
Tabla_Final_2$ni,
names.arg = Tabla_Final_2$Intervalo,
col = "skyblue",
main = " Distribución de la Cantidad recolectada de los derrames a Nivel Global (Rango 2)",
xlab = "Cantidad recolectada",
ylab = "Frecuencia",
las = 2,
cex.names = 0.6,
border = "black")boxplot(
Respuesta_actual_galones[
Respuesta_actual_galones >= 10001 & Respuesta_actual_galones <= 336000000 ],
horizontal = TRUE,
col = "lightblue",
main = "Distribución de la Cantidad recolectada de los derrames a Nivel Global (Rango 2)",
xlab = "Cantidad Recolectada",
cex.main = 0.95,
xaxt = "n")
axis(1,
at = pretty(Respuesta_actual_galones[
Respuesta_actual_galones >= 10001 & Respuesta_actual_galones <= 336000000
]),
labels = format(pretty(Respuesta_actual_galones[
Respuesta_actual_galones >= 10001 & Respuesta_actual_galones <= 336000000
]),
scientific = FALSE)
)x_vals_2 <- seq_along(Tabla_Final_2$Intervalo)
ymax_2 <- max(Tabla_Final_2$Ni_asc) * 1.1
plot(x_vals_2, Tabla_Final_2$Ni_asc,
type = "b", pch = 19, col = "blue", lwd = 2,
ylim = c(0, ymax_2),
xaxt = "n",
main = "Ojiva ascendente (Rango 2)",
xlab = "Cantidad Recolectada", ylab = "Frecuencia acumulada")
axis(1, at = x_vals_2, labels = Tabla_Final_2$Intervalo, las = 2, cex.axis = 0.7)plot(x_vals_2, rev(Tabla_Final_2$Ni_dsc),
type = "b", pch = 19, col = "red", lwd = 2,
ylim = c(0, ymax_2),
xaxt = "n",
main = "Ojiva descendente (Rango 2 )",
xlab = "Cantidad Recolectada", ylab = "Frecuencia acumulada")
axis(1, at = x_vals_2, labels = Tabla_Final_2$Intervalo, las = 2, cex.axis = 0.7)plot(x_vals_2, Tabla_Final_2$Ni_asc,
type = "b", pch = 19, col = "blue", lwd = 2,
ylim = c(0, ymax_2),
xaxt = "n",
main = "Ojivas Ascendente y Descendente de la Cantidad recolectada de los derrames a Nivel Global (Rango 2)",
xlab = "Cantidad Recolectada", ylab = "Frecuencia acumulada")
lines(x_vals_2, rev(Tabla_Final_2$Ni_dsc),
col = "red", lwd = 2, type = "b", pch = 19)
axis(1, at = x_vals_2, labels = Tabla_Final_2$Intervalo, las = 2, cex.axis = 0.7)
legend("topright",
legend = c("Ascendente", "Descendente"),
col = c("blue", "red"),
lty = 1, pch = 19, lwd = 2,
cex = 0.8)La variable que nos indica la Cantidad recolectada de los derrames a Nivel Global nos muestra que en el Rango 1, la distribución se concentra en valores bajos y presenta pocos valores atípicos, mostrando una menor dispersión y una forma más homogénea. En cambio, el Rango 2 evidencia una mayor variabilidad y una gran cantidad de outliers, con algunos valores extremadamente altos que generan una distribución más sesgada y dispersa. Esto indica que los eventos del Rango 1 son más frecuentes y estables, mientras que en el Rango 2 predominan casos excepcionales de gran magnitud.