Modelo de la Probabilidad de la clasificación oficial de la posición del pozo según la ANP

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

1 Carga y exploración inicial de los datos

Se establece el directorio de trabajo, se importa la base de datos y se revisa su estructura general.

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  "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ú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/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

Se construye la tabla de frecuencia para la variable hemisferio.

HEMISFERIO <- Datos$POCO_POS_ANP
TDFHEMISFERIO <- as.data.frame(table(HEMISFERIO))
TDFHEMISFERIO
##   HEMISFERIO  Freq
## 1          N 19297
## 2          S 10278

3 Agrupación por hemisferio

Se reclasifican los datos en dos categorías generales: Norte y Sur.

library(stringi)
Grupo_S <- stri_startswith_fixed(
  str = TDFHEMISFERIO$HEMISFERIO,
  pattern = "S"
)
TDFHEMISFERIO$HEMISFERIO <- ifelse(Grupo_S, "SUR", "NORTE")
head(TDFHEMISFERIO$HEMISFERIO)
## [1] "NORTE" "SUR"

4 Cálculo de frecuencias por categorías

Se calculan las frecuencias absolutas (ni) y relativas porcentuales (hi).

TDFHEMISFERIO$Freq <- as.numeric(as.character(TDFHEMISFERIO$Freq))
library(dplyr)
TDF_ANP_s_n <- Datos$TDFHEMISFERIO
TDF_ANP_s_n <- TDFHEMISFERIO %>%
  group_by(HEMISFERIO) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFHEMISFERIO$Freq)*100, 2))

TDF_ANP_s_n <- data.frame(TDF_ANP_s_n)

5 Inclusión de totales

Se agregan los totales generales de frecuencia absoluta y relativa.

TDF_ANP_s_n$fi <- TDF_ANP_s_n$ni / sum(TDF_ANP_s_n$ni)
TDF_ANP_s_n <- TDF_ANP_s_n [, c("HEMISFERIO", "ni", "hi","fi")]
total_ni <- sum(TDF_ANP_s_n$ni)
total_hi <- sum(TDF_ANP_s_n$hi)
total_fi <- sum(TDF_ANP_s_n$fi)
TDFANPCOMPLETA <- rbind(TDF_ANP_s_n, data.frame(HEMISFERIO = "Total",
                                                ni = total_ni, 
                                                hi = total_hi,
                                                fi = total_fi))
print(TDFANPCOMPLETA)
##   HEMISFERIO    ni     hi        fi
## 1      NORTE 19297  65.25 0.6524768
## 2        SUR 10278  34.75 0.3475232
## 3      Total 29575 100.00 1.0000000

6 Presentación tabular con gt

Se presenta la tabla final en un formato estadístico formal.

library(gt)
gt(TDFANPCOMPLETA) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Hemisferio de los pozos petrolíferos 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(TDFANPCOMPLETA))
  ) %>%
  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
Hemisferio de los pozos petrolíferos en Brasil
HEMISFERIO ni
Frecuencia Relativa
Porcentual (%) Fracción
NORTE 19297 65.25 0.6525
SUR 10278 34.75 0.3475
Total 29575 100.00 1.0000

7 Gráficas

7.1 Histograma de frecuencia absoluta local

Se visualiza la distribución absoluta de los pozos por hemisferio.

TDFANPCOMPLETA<- TDFANPCOMPLETA[TDFANPCOMPLETA$HEMISFERIO != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFANPCOMPLETA$ni,
        main = "Gráfica N°1: Distribución de pozos segun su hemisferio",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFANPCOMPLETA$HEMISFERIO,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)
mtext("HEMISFERIO", side = 1, line = 3, adj = 0.5, cex = 1)

7.2 Histograma de frecuencia relativa local

Se representa la distribución porcentual local.

par(mar = c(9, 4, 4, 2))
barplot(TDFANPCOMPLETA$hi,
        main = "Gráfica N°3: Distribución en porcentaje de pozos segun su hemisferio",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFANPCOMPLETA$HEMISFERIO,
        las = 1, cex.names = 1, cex.axis = 0.7, cex.main = 1)
mtext("HEMISFERIO", side = 1, line = 3, adj = 0.5, cex = 1)

8 Modelo de Probabilidad

P_HEMISFERIO <- TDFANPCOMPLETA$ni / sum(TDFANPCOMPLETA$ni)

par(mar = c(9, 4, 4, 2))
barplot(P_HEMISFERIO,
        main = "Gráfica N°3: Distribución de Probabilidad según el Hemisferio de los pozos",
        ylab = "Probabilidad",
        col = "#2E4053", names.arg = TDFANPCOMPLETA$HEMISFERIO,
        las = 1, cex.names = 1, cex.axis = 0.9, cex.main = 1)
mtext("HEMISFERIO", side = 1, line = 3, adj = 0.5, cex = 1)

8.1 Probabilidad

¿Cuál es la probalidad de qué un pozo se encuentre en el Hemisferio Sur?

x <- round(
  (TDFANPCOMPLETA$ni[TDFANPCOMPLETA$HEMISFERIO == "SUR"] /
   sum(TDFANPCOMPLETA$ni)) * 100, 1)

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

La probabilidad de que un pozo se encuentre en el Hemisferio Sur es del 34,8 %, lo que indica que aproximadamente 35 de cada 100 pozos registrados están ubicados en esta zona geográfica.

¿Cuántos pozos petroleros pueden encontrarse en el Hemisferio Sur?

p <- x / 100

n <- 10000

cantidad_esperada <- n * p
Operador_objetivo <- "SUR"

cat("Para n =", n, "pozos, la cantidad esperada por Hemisferio", Operador_objetivo, "=", round(cantidad_esperada, 2), "\n")
## Para n = 10000 pozos, la cantidad esperada por Hemisferio SUR = 3480

Con una probabilidad del 34,8 %, se espera que de un total de 10 000 pozos petroleros aproximadamente 3 480 se encuentren ubicados en el Hemisferio Sur.