DERRAMES DE PETRÓLEO POR AÑOS
setwd("/cloud/project")
datos <- read.csv("DATOS.csv", header = TRUE, sep = ";" , dec = ".")
str(datos)## 'data.frame': 10190 obs. of 17 variables:
## $ Distrito_edit : chr "1" "1" "1" "1" ...
## $ Year_edit_Fecha_del_derrame : int 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 ...
## $ Mes_edit_Fecha_del_derrame : int 6 3 4 4 6 6 3 9 10 6 ...
## $ Categoria_Instalaciones : chr "Instalacion fija" "Pozos" "Pozos" "Pozos" ...
## $ Operacion_general : chr "Produccion" "Otro" "Produccion" "Produccion" ...
## $ Categoria_Fuente : chr NA "Tanques/Almacenamiento" "Lineas/Tuberias" "Infraestructura Fija" ...
## $ Grupo_causas_probable : chr NA "Afectaciones externas" "Factores humanos" "Problemas tecnicos" ...
## $ Liberacion_petroleo_crudo_edicion : num 0 0 0 0 0 ...
## $ Edicion_recuperacion_petroleo_crudo : num NA 0 0 0 0 0 0 0 0 NA ...
## $ Volumen_liberado_Cond_Final : num 0 0 0 10 0 0 0 1 0 0 ...
## $ Liberacion_agua_de_produccion_edicion: num 6720 3780 5040 420 10920 ...
## $ Liberacion_volumen_gas : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Volumen_condensado_recuperado : num NA 0 0 1 0 0 0 0 0 NA ...
## $ Edicion_Recuperacion_agua_producida : num NA 420 4620 0 10920 ...
## $ Derrame_sobre_agua_limpio : chr "NO" "NO" "NO" "NO" ...
## $ Estado_general : chr "Observaciones tecnicas" NA NA NA ...
## $ Codigo_area : int 1 1 1 1 1 1 1 1 1 3 ...
# Crear la tabla de frecuencias
tabla_Year_edit_Fecha_del_derrame <- table(Year_edit_Fecha_del_derrame)
tabla_Year_edit_Fecha_del_derrame_df <- as.data.frame(tabla_Year_edit_Fecha_del_derrame)
colnames(tabla_Year_edit_Fecha_del_derrame_df) <- c("Year_edit_Fecha_del_derrame", "ni")
# Calcular la frecuencia relativa (hi)
hi <- tabla_Year_edit_Fecha_del_derrame_df$ni / sum(tabla_Year_edit_Fecha_del_derrame_df$ni)
# Convertir la frecuencia relativa a porcentaje (hi_porc)
hi_porc <- round(hi * 100, 2)
# Calcular la frecuencia acumulada ascendente (Ni_asc)
Ni_asc <- cumsum(tabla_Year_edit_Fecha_del_derrame_df$ni)
# Calcular la frecuencia acumulada descendente (Ni_dsc)
Ni_dsc <- rev(cumsum(rev(tabla_Year_edit_Fecha_del_derrame_df$ni)))
# Calcular la frecuencia acumulada relativa ascendente (Hi_asc)
Hi_asc <- cumsum(hi_porc)
# Calcular la frecuencia acumulada relativa descendente (Hi_dsc)
Hi_dsc <- rev(cumsum(rev(hi_porc)))
# Mostrar la tabla final con las nuevas columnas
tabla_Year_edit_Fecha_del_derrame_df$hi <- hi
tabla_Year_edit_Fecha_del_derrame_df$hi_porc <- hi_porc
tabla_Year_edit_Fecha_del_derrame_df$Ni_asc <- Ni_asc
tabla_Year_edit_Fecha_del_derrame_df$Ni_dsc <- Ni_dsc
tabla_Year_edit_Fecha_del_derrame_df$Hi_asc <- Hi_asc
tabla_Year_edit_Fecha_del_derrame_df$Hi_dsc <- Hi_dsc
# Mostrar la tabla final
print(tabla_Year_edit_Fecha_del_derrame_df)## Year_edit_Fecha_del_derrame ni hi hi_porc Ni_asc Ni_dsc Hi_asc
## 1 2013 1096 0.10755643 10.76 1096 10190 10.76
## 2 2014 1334 0.13091266 13.09 2430 9094 23.85
## 3 2015 1443 0.14160942 14.16 3873 7760 38.01
## 4 2016 1218 0.11952895 11.95 5091 6317 49.96
## 5 2017 1151 0.11295388 11.30 6242 5099 61.26
## 6 2018 989 0.09705594 9.71 7231 3948 70.97
## 7 2019 901 0.08842002 8.84 8132 2959 79.81
## 8 2020 732 0.07183513 7.18 8864 2058 86.99
## 9 2021 704 0.06908734 6.91 9568 1326 93.90
## 10 2022 622 0.06104024 6.10 10190 622 100.00
## Hi_dsc
## 1 100.00
## 2 89.24
## 3 76.15
## 4 61.99
## 5 50.04
## 6 38.74
## 7 29.03
## 8 20.19
## 9 13.01
## 10 6.10
TDFYearEdit <- data.frame(
Year_edit_Fecha_del_derrame = tabla_Year_edit_Fecha_del_derrame_df$Year_edit_Fecha_del_derrame,
ni = tabla_Year_edit_Fecha_del_derrame_df$ni,
`hi(%)` = hi_porc,
Niasc = Ni_asc,
Nidsc = Ni_dsc,
Hiasc = Hi_asc,
Hidsc = Hi_dsc
)
# Mostrar la tabla final
print(TDFYearEdit)## Year_edit_Fecha_del_derrame ni hi... Niasc Nidsc Hiasc Hidsc
## 1 2013 1096 10.76 1096 10190 10.76 100.00
## 2 2014 1334 13.09 2430 9094 23.85 89.24
## 3 2015 1443 14.16 3873 7760 38.01 76.15
## 4 2016 1218 11.95 5091 6317 49.96 61.99
## 5 2017 1151 11.30 6242 5099 61.26 50.04
## 6 2018 989 9.71 7231 3948 70.97 38.74
## 7 2019 901 8.84 8132 2959 79.81 29.03
## 8 2020 732 7.18 8864 2058 86.99 20.19
## 9 2021 704 6.91 9568 1326 93.90 13.01
## 10 2022 622 6.10 10190 622 100.00 6.10
###Diagrama de barras
barplot(TDFYearEdit$ni,
main = "Gráfica No.1: Distribución de cada derrame por Año",
xlab = "Año", ylab = "Frecuencia Absoluta",
col = "cadetblue",
ylim = c(0, max(TDFYearEdit$ni) + 5),
names.arg = TDFYearEdit$Year_edit_Fecha_del_derrame,
las = 2) # Número de categorías
k <- nrow(tabla_Year_edit_Fecha_del_derrame_df) # Número de categorías (filas)
Fo <- tabla_Year_edit_Fecha_del_derrame_df$hi_porc # Usar la columna hi_porc (frecuencia relativa en porcentaje)
Fe <- rep(sum(Fo)/k, k) # Frecuencia esperada bajo distribución uniforme
# Frecuencia relativa observada
hi_obs <- round((Fo / sum(Fo)) * 100, 2)
# Tabla comparativa
tabla_uniforme <- data.frame(
Año = tabla_Year_edit_Fecha_del_derrame_df$Year_edit_Fecha_del_derrame, # Modificado aquí
`hi (observada %)` = hi_obs,
`Fe (esperada)` = round(Fe, 2)
)
# Mostrar la tabla comparativa
print(tabla_uniforme)## Año hi..observada... Fe..esperada.
## 1 2013 10.76 10
## 2 2014 13.09 10
## 3 2015 14.16 10
## 4 2016 11.95 10
## 5 2017 11.30 10
## 6 2018 9.71 10
## 7 2019 8.84 10
## 8 2020 7.18 10
## 9 2021 6.91 10
## 10 2022 6.10 10
# Gráfico de barras comparando frecuencias observada y esperada
barplot(rbind(hi_obs, Fe),
beside = TRUE,
names.arg = tabla_Year_edit_Fecha_del_derrame_df$Year_edit_Fecha_del_derrame, # Usamos la tabla correcta
col = c("cadetblue3", "cadetblue4"),
main = "Gráfico Nº3: Modelo de Probabilidad Uniforme de los derrames ocurridos por Año",
cex.main = 0.8,
xlab = "Año",
ylab = "Cantidad-Probabilidad",
las = 2,
cex.names = 0.8)
# Añadir leyenda
legend("topright",
legend = c("Frecuencia Observada", "Frecuencia Esperada (Uniforme)"),
fill = c("cadetblue3", "cadetblue4"),
cex = 0.8,
inset = c(0.05, -0.05)) # Datos
Año <- c(2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022)
hi_obs <- c(10.76, 13.09, 14.16, 11.95, 11.30, 9.71, 8.84, 7.18, 6.91, 6.10)
Fe <- rep(10, 10) # Frecuencia esperada constante
# Graficar los datos
plot(Año, hi_obs, type = "b", col = "darkgreen", pch = 19,
main = "Gráfico Nº4: Frecuencia Observada vs Esperada",
xlab = "Año", ylab = "Frecuencia",
lty = 1, cex = 0.8)
# Añadir la línea de la frecuencia esperada (constante)
abline(h = 10, col = "red", lwd = 2, lty = 2)##Chi-cuadrado
x2_uniforme <- sum((Fo - Fe)^2 / Fe)
vc_uniforme <- qchisq(0.95, df = k - 1)
cat("Estadístico Chi-cuadrado:", round(x2_uniforme, 4), "\n")## Estadístico Chi-cuadrado: 6.7064
## Valor crítico Chi-cuadrado (95%): 16.919
## ¿x² < valor crítico? TRUE
if (x2_uniforme < vc_uniforme) {
cat("No se rechaza (buen ajuste al modelo uniforme).\n")
} else {
cat("Se rechaza (mal ajuste al modelo uniforme).\n")
}## No se rechaza (buen ajuste al modelo uniforme).