DERRAMES DE PETRÓLEO POR AÑOS

1 Cargar datos

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

2 Extraer la variable

Year_edit_Fecha_del_derrame <- datos$Year_edit_Fecha_del_derrame

3 Tabla de frecuencias

# 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

4 Gráfica de distribución

###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) 

conteo_geom <- as.numeric(as.character(TDFYearEdit$Year_edit_Fecha_del_derrame)) 

5 Modelo Uniform

# 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)) 

6 Correlación

# 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)

knitr::opts_chunk$set(echo = TRUE)

##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
cat("Valor crítico Chi-cuadrado (95%):", round(vc_uniforme, 4), "\n")
## Valor crítico Chi-cuadrado (95%): 16.919
cat("¿x² < valor crítico?", x2_uniforme < vc_uniforme, "\n")
## ¿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).