Modelo de Probabilidad del Estado de los pozos petrolíferos

1 Carga de datos

Se importan los datos de los pozos petrolíferos y se verifica su estructura.

setwd("C:/Users/majke/Downloads/Proyecto Estadistica/RMARKDOWN")
Datos <- read.csv("Pozos brasil 2.csv", header = TRUE, sep = ";", dec = ",", fileEncoding = "Latin1")
str(Datos)
## 'data.frame':    29575 obs. of  59 variables:
##  $ POCO                      : chr  "7-RO-123HP-RJS" "1-BP-7-RJS" "7-ARGO-4H-ESS" "7-ARGO-5H-ESS" ...
##  $ CADASTRO                  : num  7.43e+10 7.43e+10 3.43e+10 3.43e+10 3.43e+10 ...
##  $ OPERADOR                  : chr  "Petrobras" "BP Energy" "Shell Brasil" "Shell Brasil" ...
##  $ POCO_OPERADOR             : chr  "7RO123HPRJS" "ANU" "7ARGO4HESS" "7ARGO5HESS" ...
##  $ ESTADO                    : chr  "RJ" "RJ" "ES" "ES" ...
##  $ BACIA                     : chr  "Campos" "Campos" "Campos" "Campos" ...
##  $ BLOCO                     : chr  "" "C-M-473" "" "" ...
##  $ SIG_CAMPO                 : chr  "RO   " "" "ARGO " "ARGO " ...
##  $ CAMPO                     : chr  "RONCADOR" "" "ARGONAUTA" "ARGONAUTA" ...
##  $ TERRA_MAR                 : chr  "M" "M" "M" "M" ...
##  $ POCO_POS_ANP              : chr  "S" "S" "S" "S" ...
##  $ TIPO                      : chr  "Explotatório" "Exploratório" "Explotatório" "Explotatório" ...
##  $ CATEGORIA                 : chr  "Desenvolvimento" "Pioneiro" "Desenvolvimento" "Desenvolvimento" ...
##  $ RECLASSIFICACAO           : chr  "PRODUTOR COMERCIAL DE PETRÓLEO" "PORTADOR DE PETRÓLEO" "ABANDONADO POR OUTRAS RAZÕES" "INDEFINIDO" ...
##  $ SITUACAO                  : chr  "PRODUTOR" "ABANDONADO POR LOGÍSTICA EXPLORATÓRIA" "ABANDONADO DEFINITIVAMENTE" "PRODUTOR" ...
##  $ INICIO                    : chr  "03/03/2012" "14/03/2012" "12/04/2012" "14/04/2012" ...
##  $ TERMINO                   : chr  "10/03/2013" "20/09/2012" "19/09/2012" "02/05/2013" ...
##  $ CONCLUSAO                 : chr  "10/03/2013" "19/10/2012" "28/09/2012" "13/05/2013" ...
##  $ TITULARIDADE              : chr  "Público" "Público" "Público" "Público" ...
##  $ LATITUDE_BASE_4C          : chr  "-21:57:45,630" "-23:06:09,622" "-21:08:06,801" "-21:08:12,535" ...
##  $ LONGITUDE_BASE_4C         : chr  "-39:44:01,130" "-40:00:41,295" "-39:46:53,226" "-39:46:49,296" ...
##  $ LATITUDE_BASE_DD          : num  -22 -23.1 -21.1 -21.1 -21.1 ...
##  $ LONGITUDE_BASE_DD         : num  -39.7 -40 -39.8 -39.8 -39.8 ...
##  $ DATUM_HORIZONTAL          : chr  "SIRGAS2000" "SIRGAS2000" "SIRGAS2000" "SIRGAS2000" ...
##  $ TIPO_DE_COORDENADA_DE_BASE: chr  "Definitiva" "Definitiva" "Definitiva" "Definitiva" ...
##  $ DIRECAO                   : chr  "Horizontal" "Vertical" "Horizontal" "Horizontal" ...
##  $ PROFUNDIDADE_VERTICAL_M   : num  -3145 6900 2937 2934 2953 ...
##  $ PROFUNDIDADE_SONDADOR_M   : num  4050 6925 3809 4575 4570 ...
##  $ PROFUNDIDADE_MEDIDA_M     : num  4050 6925 3809 4575 4570 ...
##  $ REFERENCIA_DE_PROFUNDIDADE: chr  "MR" "MR" "MR" "MR" ...
##  $ MESA_ROTATIVA             : num  24 25 24.2 24.2 24.2 ...
##  $ COTA_ALTIMETRICA_M        : num  0 0 0 0 0 ...
##  $ LAMINA_D_AGUA_M           : num  1827 2730 1706 1705 1654 ...
##  $ DATUM_VERTICAL            : chr  "NM" "NM" "NM" "NM" ...
##  $ UNIDADE_ESTRATIGRAFICA    : chr  "" "" "" "" ...
##  $ GEOLOGIA_GRUPO_FINAL      : chr  "Campos" "Lagoa Feia" "Campos" "Campos" ...
##  $ GEOLOGIA_FORMACAO_FINAL   : chr  "Carapebus" "Macabu" "Ubatuba" "Ubatuba" ...
##  $ GEOLOGIA_MEMBRO_FINAL     : chr  "" "" "" "" ...
##  $ CDPE                      : chr  "Existe" "Existe" "Existe" "" ...
##  $ AGP                       : chr  "" "" "" "" ...
##  $ PC                        : chr  "" "Existe" "" "" ...
##  $ PAG                       : chr  "" "" "" "" ...
##  $ PERFIS_CONVENCIONAIS      : chr  "" "Existe" "" "" ...
##  $ DURANTE_PERFURACAO        : chr  "Existe" "Existe" "Existe" "Existe" ...
##  $ PERFIS_DIGITAIS           : chr  "" "" "" "" ...
##  $ PERFIS_PROCESSADOS        : chr  "" "" "" "" ...
##  $ PERFIS_ESPECIAIS          : chr  "" "" "" "" ...
##  $ AMOSTRA_LATERAL           : chr  "" "Existe" "" "" ...
##  $ SISMICA                   : chr  "" "Existe" "" "" ...
##  $ TABELA_TEMPO_PROFUNDIDADE : chr  "" "" "" "" ...
##  $ DADOS_DIRECIONAIS         : chr  "Existe" "Existe" "Existe" "Existe" ...
##  $ TESTE_A_CABO              : chr  "Existe" "Existe" "" "" ...
##  $ TESTE_DE_FORMACAO         : chr  "" "" "" "" ...
##  $ CANHONEIO                 : chr  "" "" "" "" ...
##  $ TESTEMUNHO                : chr  "" "" "" "" ...
##  $ GEOQUIMICA                : chr  "" "" "" "" ...
##  $ SIG_SONDA                 : chr  "SS-49" "DS4" "NB2" "NB2" ...
##  $ NOM_SONDA                 : chr  "SEDCO 707" "Deep Ocean Clarion" "Bully 2" "Bully 2" ...
##  $ DHA_ATUALIZACAO           : chr  "28/1/18 5:00" "28/1/18 5:00" "28/1/18 5:00" "28/1/18 5:00" ...

2 Tabla de distribución de frecuencias

Se agrupan las categorías de la variable, se calculan las frecuencias absolutas y relativas, y se incorporan los totales correspondientes.

Situación <- Datos$SITUACAO
TDFSituación <- as.data.frame(table(Situación))
TDFSituación
##                                                                              Situación
## 1                                                                                     
## 2                                ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO
## 3                                         ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO
## 4                                                           ABANDONADO DEFINITIVAMENTE
## 5                                                ABANDONADO POR LOGÍSTICA EXPLORATÓRIA
## 6  ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO
## 7                                                                             ARRASADO
## 8                                                         CEDIDO PARA PRODUÇÃO DE ÁGUA
## 9                                                                          DE DESCARTE
## 10                                                                           DEVOLVIDO
## 11                                                                         EM ABANDONO
## 12                           EM INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO
## 13                                                                       EM PERFURAÇÃO
## 14                                               EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO
## 15                                              EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO
## 16                                                                             INJETOR
## 17                                                                               OUTRO
## 18                                                       PRODUÇÃO DE AGUA PARA INJEÇÃO
## 19                                                                            PRODUTOR
##    Freq
## 1   824
## 2  3120
## 3     2
## 4  5074
## 5   719
## 6   253
## 7  2193
## 8   262
## 9    40
## 10 1446
## 11    8
## 12 2711
## 13    6
## 14    9
## 15   60
## 16 2653
## 17   96
## 18  187
## 19 9912

Agrupación

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
TDFSituación$Condición <- ifelse(TDFSituación$Situación %in% c("ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO", "ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO", "ABANDONADO DEFINITIVAMENTE", "ABANDONADO POR LOGÍSTICA EXPLORATÓRIA", "ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO", "EM ABANDONO"), "Abandonados",
                                 ifelse(TDFSituación$Situación %in% c("EM PERFURAÇÃO"), "Intervención", 
                                        ifelse(TDFSituación$Situación %in% c("EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO0", "EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO"), "Equipado en espera", 
                                               ifelse(TDFSituación$Situación %in% c("INJETOR", "PRODUTOR"), "En funcionamiento", 
                                                      ifelse(TDFSituación$Situación %in% c("CEDIDO PARA PRODUÇÃO DE ÁGUA", "PRODUÇÃO DE AGUA PARA INJEÇÃO"), "Producción de agua",
                                                             ifelse(TDFSituación$Situación %in% c("DEVOLVIDO", "DE DESCARTE"), "Descartado",
                                                                    ifelse(TDFSituación$Situación %in% c("ARRASADO"), "Devastado","Otros")))))))
head(TDFSituación$Condición)
## [1] "Otros"       "Abandonados" "Abandonados" "Abandonados" "Abandonados"
## [6] "Abandonados"
TDFSituación$Freq <- as.numeric(as.character(TDFSituación$Freq))
library(dplyr)
TDFSituación1 <- TDFSituación %>%
  group_by(Condición) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFSituación$Freq)*100, 5))

TDFSituación1 <- data.frame(TDFSituación1)

Agregar totales

TDFSituación1 <- TDFSituación1 [, c("Condición", "ni", "hi")]
total_ni <- sum(TDFSituación1$ni) 
total_hi <- sum(TDFSituación1$hi)
TDFSituacióncompleta <- rbind(TDFSituación1, data.frame( Condición = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi))
print(TDFSituacióncompleta)
##            Condición    ni        hi
## 1        Abandonados  9176  31.02620
## 2         Descartado  1486   5.02451
## 3          Devastado  2193   7.41505
## 4  En funcionamiento 12565  42.48521
## 5 Equipado en espera     9   0.03043
## 6       Intervención     6   0.02029
## 7              Otros  3691  12.48014
## 8 Producción de agua   449   1.51817
## 9              Total 29575 100.00000
library(gt)
gt(TDFSituacióncompleta) %>%
  tab_header( 
    title = md("**DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Situación de los pozos petrolíferos en Brasil") %>% 
  fmt_number(
    columns = hi,
    decimals = 2) %>%
 cols_align(align = "center", columns = everything()) %>%
  tab_style(
    style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
    locations = cells_title()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
    locations = cells_column_labels()
  ) %>%
  tab_options(
    table.border.top.color = "#2E4053",
    table.border.bottom.color = "#2E4053",
    column_labels.border.bottom.color = "#2E4053",
    data_row.padding = px(6))
DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL
Situación de los pozos petrolíferos en Brasil
Condición ni hi
Abandonados 9176 31.03
Descartado 1486 5.02
Devastado 2193 7.42
En funcionamiento 12565 42.49
Equipado en espera 9 0.03
Intervención 6 0.02
Otros 3691 12.48
Producción de agua 449 1.52
Total 29575 100.00

3 Gráficas

3.1 Histograma de frecuencia absoluta local

Se representa gráficamente la cantidad de pozos por condición.

TDFSituaciónfinal <- TDFSituacióncompleta[TDFSituacióncompleta$Condición != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$ni,
        main = "Gráfica N°1: Estado de los pozos petrolíferos en Brasil",
        ylab = "Cantidad",
        col = "#263238", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

3.2 Histograma de frecuencia relativa local

Se representa el porcentaje correspondiente a cada condición.

par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$hi,
        main = "Gráfica N°3: Porcentaje de la condición de los pozos en Brasil",
        ylab = "Porcentaje",
        col = "#263238", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

4 Modelo de probabilidad

A partir de las frecuencias relativas se construye un modelo empírico de probabilidad para la condición de los pozos.

P_Condicion <- TDFSituaciónfinal$ni / sum(TDFSituaciónfinal$ni)

par(mar = c(9, 4, 4, 2))
barplot(P_Condicion,
        main = "Distribución de probabilidad de la condición de los pozos en Brasil",
        ylab = "Probabilidad",
        col = "#263238", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

5 Análisis inferencial

5.1 Prueba chi-cuadrado de bondad de ajuste

Se construyó un Modelo de Probabilidad Categórico basado en las frecuencias observadas. Para validar la relevancia de este modelo, se aplicó una prueba de Bondad de Ajuste Chi-cuadrado contrastándolo contra una distribución uniforme

observados <- TDFSituaciónfinal$ni
k <- length(observados)
gl <- k - 1
alpha <- 0.05

prob_esperadas <- rep(1 / k, k)

chi_resultado <- chisq.test(observados, p = prob_esperadas)

chi_critico <- qchisq(1 - alpha, df = gl)
chi_calculado <- chi_resultado$statistic

cat("Chi-cuadrado calculado:", chi_calculado, "\n")
## Chi-cuadrado calculado: 41544.76
cat("Chi-cuadrado crítico:", chi_critico, "\n")
## Chi-cuadrado crítico: 14.06714

5.2 Decisión estadística

if (chi_calculado > chi_critico) {
cat("Se rechaza la hipótesis nula.")
} else {
cat("No se rechaza la hipótesis nula.")
}
## Se rechaza la hipótesis nula.

Dado que el valor de chi-cuadrado calculado (\(41544.76\)) supera ampliamente el umbral crítico (\(14.06714\)), se rechaza la hipótesis nula (\(H_0\)) con un nivel de confianza del 95%.

5.3 Interpretación final

El rechazo de la hipótesis de uniformidad demuestra estadísticamente que la condición de los pozos en Brasil no es aleatoria ni equitativa. Esto valida la necesidad de nuestro modelo de probabilidad empírico, ya que confirma que existen factores operativos y logísticos que causan una predominancia clara de ciertas condiciones, como los pozos ‘En funcionamiento’ y ‘Abandonados’, sobre otras categorías.

6 Probabilidad

¿Cuál es la probabilidad de que un pozo petrolero se encuentre en condición de Abandonado?

x <- round(
  (TDFSituaciónfinal$ni[TDFSituaciónfinal$Condición == "Abandonados"] /
   sum(TDFSituaciónfinal$ni)) * 100, 1)

print(paste("La probabilidad es de:", x, "%"))
## [1] "La probabilidad es de: 31 %"

La probabilidad obtenida indica que aproximadamente 31 % de los pozos petrolíferos en Brasil se encuentran en condición de abandono, según los datos analizados.