Modelo de Probabilidad de las Cuencas Petrolíferas en Brasil

setwd("C:/Users/Usuario/Desktop/Nueva carpeta")
library(readxl)
library(dplyr)
library(gt)
datos <- read_excel("tabela_de_pocos_janeiro_2018.xlsx")

1 Carga de datos y exploración inicial

Se importa la base de datos de pozos petrolíferos de Brasil y se verifica la estructura de las variables para asegurar su correcta lectura.

Datos <- read.csv("Pozos brasil 2.csv", header = TRUE, sep = ";", dec = ",")
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\xf3rio" "Explorat\xf3rio" "Explotat\xf3rio" "Explotat\xf3rio" ...
##  $ CATEGORIA                 : chr  "Desenvolvimento" "Pioneiro" "Desenvolvimento" "Desenvolvimento" ...
##  $ RECLASSIFICACAO           : chr  "PRODUTOR COMERCIAL DE PETR\xd3LEO" "PORTADOR DE PETR\xd3LEO" "ABANDONADO POR OUTRAS RAZ\xd5ES" "INDEFINIDO" ...
##  $ SITUACAO                  : chr  "PRODUTOR" "ABANDONADO POR LOG\xcdSTICA EXPLORAT\xd3RIA" "ABANDONADO DEFINITIVAMENTE" "PRODUTOR" ...
##  $ INICIO                    : chr  "3/3/2012" "14/3/2012" "12/4/2012" "14/4/2012" ...
##  $ TERMINO                   : chr  "10/3/2013" "20/9/2012" "19/9/2012" "2/5/2013" ...
##  $ CONCLUSAO                 : chr  "10/3/2013" "19/10/2012" "28/9/2012" "13/5/2013" ...
##  $ TITULARIDADE              : chr  "P\xfablico" "P\xfablico" "P\xfablico" "P\xfablico" ...
##  $ 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/2018 5:00" "28/1/2018 5:00" "28/1/2018 5:00" "28/1/2018 5:00" ...

2 Tabla de distribución de frecuencia por cuenca

Se calcula la frecuencia absoluta de los pozos según la cuenca petrolífera registrada.

Cuencas <- Datos$BACIA
TDFCuencas <- as.data.frame(table(Cuencas))
TDFCuencas
##                    Cuencas Freq
## 1           S\xe3o Lu\xeds   19
## 2                Paran\xe1  125
## 3                Maraj\xf3   18
## 4  Pernambuco - Para\xedba    3
## 5               Jacu\xedpe    1
## 6      Bragan\xe7a - Vizeu    2
## 7              Parna\xedba  163
## 8         S\xe3o Francisco   59
## 9                     Acre   11
## 10                 Alagoas  935
## 11                  Almada   24
## 12                Amazonas  218
## 13                 Araripe    2
## 14            Barreirinhas  123
## 15                Cear\xe1  228
## 16   Par\xe1 - Maranh\xe3o   34
## 17       Esp\xedrito Santo 1997
## 18             Solim\xf5es  364
## 19               Jatob\xe1    2
## 20                  Camamu   96
## 21                  Campos 3418
## 22            Cumuruxatiba   48
## 23         Foz do Amazonas   95
## 24           Jequitinhonha   40
## 25                  Mucuri   56
## 26                Pantanal   13
## 27    Parecis - Alto Xingu    6
## 28                 Pelotas   20
## 29                Potiguar 9187
## 30            Rio do Peixe    5
## 31                  Santos  706
## 32                 Sergipe 4707
## 33                  Tacutu    2
## 34          Tucano Central   13
## 35            Tucano Norte    5
## 36              Tucano Sul  136
## 37            Rec\xf4ncavo 6694

3 Agrupación de cuencas por regiones

Clasificación de las cuencas petrolíferas en macro-regiones.

library(dplyr)
TDFCuencas$CUENCAS <- ifelse(TDFCuencas$Cuenca %in% c("Acre", "Amazonas", "Solimões", "Foz do Amazonas", "Marajó", "Tacutu", "Parecis - Alto Xingu"), "Cuencas del Norte",
                                 ifelse(TDFCuencas$Cuenca %in% c("Alagoas", "Araripe", "Barreirinhas", "Bragança - Vizeu", "Camamu", "Ceará", "Cumuruxatiba", "Jatobá", "Parnaíba", "Pernambuco - Paraíba", "Potiguar", "Recôncavo", "Rio do Peixe", "Sergipe", "São Francisco", "São Luís", "Tucano Central", "Tucano Norte", "Tucano Sul"),"Cuencas del Nordeste",
                                        ifelse(TDFCuencas$Cuenca %in% c("Campos", "Espírito Santo", "Santos"), "Cuencas del Sudeste",
                                               ifelse(TDFCuencas$Cuenca %in% c("Paraná", "Pelotas"), "Cuencas del Sur",
                                                      ifelse(TDFCuencas$Cuenca %in% c("Pantanal", "Almada", "Mucuri", "Jequitinhonha", "Pará - Maranhão"),"Cuencas del Centro-Oeste", "Otros")))))
head(TDFCuencas$CUENCAS)
## [1] "Otros" "Otros" "Otros" "Otros" "Otros" "Otros"

4 Cálculo de frecuencias absolutas y relativas

Se obtienen las frecuencias absolutas (ni) y relativas (hi) por macrozona de cuencas como base del modelo probabilístico.

TDFCuencas$Freq <- as.numeric(as.character(TDFCuencas$Freq))
library(dplyr)
TDFCuencas1 <- Datos$TDFCuencas
TDFCuencas1 <- TDFCuencas %>%
  group_by(CUENCAS) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFCuencas$Freq)*100, 5))

TDFCuencas1 <- data.frame(TDFCuencas1)

5 Construcción del cuadro con totales

Incorporación de la fila total al cuadro de frecuencias.

TDFCuencas1 <- TDFCuencas1 [, c("CUENCAS", "ni", "hi")]
TDFCuencas1$fi <- TDFCuencas1$ni / sum(TDFCuencas1$ni)
total_ni <- sum(TDFCuencas1$ni) 
total_hi <- sum(TDFCuencas1$hi)
total_fi <- sum(TDFCuencas1$fi)
TDFCuencas1.1 <- rbind(TDFCuencas1, data.frame( CUENCAS = "Total",
                                                         ni = total_ni,
                                                         hi = total_hi,
                                                         fi = total_fi))
print(TDFCuencas1.1)
##                    CUENCAS    ni       hi           fi
## 1 Cuencas del Centro-Oeste   133  0.44970 0.0044970414
## 2     Cuencas del Nordeste 15257 51.58749 0.5158748943
## 3        Cuencas del Norte   332  1.12257 0.0112256974
## 4      Cuencas del Sudeste  4124 13.94421 0.1394420964
## 5          Cuencas del Sur    20  0.06762 0.0006762468
## 6                    Otros  9709 32.82840 0.3282840237
## 7                    Total 29575 99.99999 1.0000000000

6 Presentación del cuadro estadístico

Visualización del cuadro de distribución mediante tabla formal.

library(gt)
gt(TDFCuencas1.1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Cuencas Petrolíferas en Brasil") %>%  
    tab_spanner(
    label   = md("**Frecuencia Relativa**"),
    columns = c(hi, fi)
  ) %>%
    cols_label(
    ni = md("**ni**"),
    hi = md("Porcentual (%)"),
    fi = md("Fracción")
  ) %>%
  fmt_number(columns = hi, decimals = 2) %>%
  fmt_number(columns = fi, decimals = 4) %>%
  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_style(
    style     = list(cell_fill(color = "#2E4053"),
                     cell_text(color = "white", weight = "bold")),
    locations = cells_column_spanners()
  ) %>%
  tab_style(
    style     = list(cell_fill(color = "#D5D8DC"),
                     cell_text(weight = "bold", color = "#2E4053")),
    locations = cells_body(rows = nrow(TDFCuencas1.1))
  ) %>%
  tab_options(
    table.border.top.color          = "#2E4053",
    table.border.bottom.color       = "#2E4053",
    column_labels.border.bottom.color = "#2E4053",
    data_row.padding                = px(6),
    table.font.size                 = px(13)
  )
Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL
Cuencas Petrolíferas en Brasil
CUENCAS ni
Frecuencia Relativa
Porcentual (%) Fracción
Cuencas del Centro-Oeste 133 0.45 0.0045
Cuencas del Nordeste 15257 51.59 0.5159
Cuencas del Norte 332 1.12 0.0112
Cuencas del Sudeste 4124 13.94 0.1394
Cuencas del Sur 20 0.07 0.0007
Otros 9709 32.83 0.3283
Total 29575 100.00 1.0000

7 Gráficas

7.1 Histograma de frecuencia absoluta local

Distribución en cantidad considerando la escala total.

TDFCuencas1.1 <- TDFCuencas1.1[TDFCuencas1.1$CUENCAS != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFCuencas1.1$ni,
        main = "Gráfica N°1: Distribución en cantidad de cuencas por región",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFCuencas1.1$CUENCAS,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Cuencas", side = 1, line = 7)

7.2 Histograma de frecuencia relativa local

Distribución porcentual sin ajuste de escala global.

par(mar = c(9, 4, 4, 2))
barplot(TDFCuencas1.1$hi,
        main = "Gráfica N°3: Distribución porcentual de cuencas por región",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFCuencas1.1$CUENCAS,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Cuencas", side = 1, line = 7)

8 Modelo de probabilidad

Se construye un modelo empírico de probabilidad a partir de las frecuencias relativas por macrozona de cuencas.

P_Ubicación <- TDFCuencas1.1$ni / sum(TDFCuencas1.1$ni)

par(mar = c(9, 4, 4, 2))
barplot(P_Ubicación,
        main = "Gráfica N°3: Distribución de Probabilidad de la Ubicación de los pozos",
        ylab = "Probabilidad",
        col = "#2E4053", names.arg = TDFCuencas1.1$CUENCAS,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Cuencas", side = 1, line = 7)

8.1 Probabilidad

¿Cuál es la probabilidad de que las cuencas se encuentren en el Sudeste?

x <- round(
  (TDFCuencas1.1$ni[TDFCuencas1.1$CUENCAS == "Cuencas del Sudeste"] /
   sum(TDFCuencas1.1$ni)) * 100, 1)

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

La probabilidad obtenida indica que aproximadamente el 20.7% de las cuencas estan ubicadas en el Sudeste.

¿Cuántas cuencas pueden estar situadas en el Sudeste?.

p <- x / 100

n <- 1000

cantidad_esperada <- n * p
Cuenca_objetivo <- "Cuencas del Sudeste"

cat("Para n =", n, "cuencas, cantidad esperada en", Cuenca_objetivo, "=", round(cantidad_esperada, 2), "\n")
## Para n = 1000 cuencas, cantidad esperada en Cuencas del Sudeste = 139

Se espera que aproximadamente 207 de las cuencas estén ubicadas en el Sudeste, por cada 1000 pozos considerados