Modelo de Distribución de Probabilidades por Grupos Geológicos Finales

1 Carga de datos

setwd("C:/Users/Usuario/Desktop/TRABAJO DE ESTADISTICA/PDF-EXCEL-QGIS")
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 frecuencia

Grupos_Finales <- Datos$GEOLOGIA_GRUPO_FINAL
TDFGrupos_Finales <- as.data.frame(table(Grupos_Finales))
names(TDFGrupos_Finales) <- c("Geologia", "Freq")
TDFGrupos_Finales
##              Geologia  Freq
## 1                     25521
## 2           Afligidos    17
## 3              Agulha     7
## 4              Almada     6
## 5               Apodi  1144
## 6        Areia Branca   272
## 7              Balsas     3
## 8              Bambuí     1
## 9          Barra Nova    94
## 10             Brotas   291
## 11             Camamu     4
## 12            Camburi    33
## 13             Campos   533
## 14            Canindé    95
## 15           Coruripe   210
## 16              Curuá     6
## 17          Espinhaço    13
## 18     Espírito Santo   166
## 19           Estância     2
## 20              Frade    82
## 21          Guaratiba   207
## 22 Humberto de Campos     4
## 23        Igreja Nova     3
## 24              Ilhas    66
## 25         Itamambuca    47
## 26            Itararé     7
## 27            Jangada     1
## 28         Lagoa Feia    95
## 29              Macaé    79
## 30           Macaúbas     2
## 31           Marimari    11
## 32          Massacará     8
## 33             Nativo   101
## 34               Pará     1
## 35             Paraná     1
## 36            Paranoá    19
## 37           Perucaba    37
## 38          Piaçabuçu    54
## 39              Purus     9
## 40       Rio do Peixe     2
## 41           Rio Ivaí     1
## 42        Santo Amaro   233
## 43            Sergipe    18
## 44       Serra Grande     6
## 45               Tefé    58
## 46          Trombetas     2
## 47            Urupadi     3

Las unidades geológicas se reclasifican en grupos mayores según su naturaleza geológica, reduciendo la dispersión categórica sin pérdida de informació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
TDFGrupos_Finales$Grupo_Geologico <- ifelse(
  TDFGrupos_Finales$Geologia %in% c(
    "Apodi","Campos","Camamu","Espírito Santo","Sergipe","Lagoa Feia",
    "Macaé","Guaratiba","Almada","Humberto de Campos","Balsas",
    "Coruripe","Santo Amaro","Frade","Nativo","Perucaba","Areia Branca",
    "Canindé","Marimari","Estância","Massacará","Brotas"
  ), "Cuencas sedimentarias",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Bambuí","Itararé","Serra Grande","Paranoá","Macaúbas"
  ), "Formaciones",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Espinhaço"
  ), "Provincias",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Barra Nova","Camburi","Itamambuca","Ilhas","Piaçabuçu"
  ), "Ambientes costeros",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Purus","Tefé","Trombetas","Rio do Peixe","Rio Ivaí","Urupadi"
  ), "Sistemas fluviales",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Pará","Paraná"
  ), "Regiones administrativas",
  
  "Otros/Locales"
))))))

head(TDFGrupos_Finales)
##       Geologia  Freq       Grupo_Geologico
## 1              25521         Otros/Locales
## 2    Afligidos    17         Otros/Locales
## 3       Agulha     7         Otros/Locales
## 4       Almada     6 Cuencas sedimentarias
## 5        Apodi  1144 Cuencas sedimentarias
## 6 Areia Branca   272 Cuencas sedimentarias

3 Cálculo de frecuencias por grupo

TDFGrupos_Finales$Freq <- as.numeric(TDFGrupos_Finales$Freq)

TDFGrupos_Finales1 <- TDFGrupos_Finales %>%
  group_by(Grupo_Geologico) %>%
  summarise(
    ni = sum(Freq),
    hi = round(ni / sum(TDFGrupos_Finales$Freq) * 100, 2))

TDFGrupos_Finales1 <- as.data.frame(TDFGrupos_Finales1)
TDFGrupos_Finales1
##            Grupo_Geologico    ni    hi
## 1       Ambientes costeros   294  0.99
## 2    Cuencas sedimentarias  3601 12.18
## 3              Formaciones    35  0.12
## 4            Otros/Locales 25555 86.41
## 5               Provincias    13  0.04
## 6 Regiones administrativas     2  0.01
## 7       Sistemas fluviales    75  0.25
TDFGrupos_Finales1 <- TDFGrupos_Finales1 [, c("Grupo_Geologico", "ni", "hi")]
total_ni <- sum(TDFGrupos_Finales1$ni) 
total_hi <- sum(TDFGrupos_Finales1$hi)
TDFGrupos_Finales1.1 <- rbind(TDFGrupos_Finales1, data.frame( Grupo_Geologico = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi))
print(TDFGrupos_Finales1.1)
##            Grupo_Geologico    ni     hi
## 1       Ambientes costeros   294   0.99
## 2    Cuencas sedimentarias  3601  12.18
## 3              Formaciones    35   0.12
## 4            Otros/Locales 25555  86.41
## 5               Provincias    13   0.04
## 6 Regiones administrativas     2   0.01
## 7       Sistemas fluviales    75   0.25
## 8                    Total 29575 100.00
library(gt)
gt(TDFGrupos_Finales1.1) %>%
  tab_header( 
    title = md("**Cuadro No.1**"), 
    subtitle = "Distibución de grupos geológicos de los pozos petrolíferos en  Brasil") %>% 
 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))
Cuadro No.1
Distibución de grupos geológicos de los pozos petrolíferos en Brasil
Grupo_Geologico ni hi
Ambientes costeros 294 0.99
Cuencas sedimentarias 3601 12.18
Formaciones 35 0.12
Otros/Locales 25555 86.41
Provincias 13 0.04
Regiones administrativas 2 0.01
Sistemas fluviales 75 0.25
Total 29575 100.00

4 Gráficas

4.1 Histograma de frecuencia absoluta local

TDFGrupos_Finales2 <- TDFGrupos_Finales1.1[TDFGrupos_Finales1.1$Grupo_Geologico != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$ni,
        main = "Gráfica N°1: Distribución en orden de cantidad de pozos petrolíferos por grupo geológico",
        ylab = "Cantidad",
        col = "#263238", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Grupo", side = 1, line = 7)

4.2 Histograma de frecuencia relativa local

par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$hi,
        main = "Gráfica N°3: Distribución porcentual de pozos petrolíferos por grupo geológico",
        ylab = "Porcentaje",
        col = "#263238", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
        mtext("Grupo", side = 1, line = 7)

5 Modelo de Probabilidad

P_GRUPOFINAL <- TDFGrupos_Finales2$ni / sum(TDFGrupos_Finales2$ni)

par(mar = c(9, 4, 4, 2))
barplot(P_GRUPOFINAL,
        main = "Gráfica N°3: Distribución de Probabilidad según el Grupo Geológico",
        ylab = "Probabilidad",
        col = "#2E4053", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Grupo", side = 1, line = 8, adj = 0.5, cex = 1.2)

5.1 Probabilidad

¿Cuál es la probalidad de qué el Grupo Geológico sea Ambiente costero?

x <- round(
  (TDFGrupos_Finales2$ni[TDFGrupos_Finales2$Grupo_Geologico == "Ambientes costeros"] /
   sum(TDFGrupos_Finales2$ni)) * 100, 1)

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

¿Cuántos pozos petroleros pueden poseer un Grupo Geológico de tipo Ambiente costero?

p <- x / 100

n <- 1000

cantidad_esperada <- n * p
Operador_objetivo <- "Ambiente costero"

cat("Para n =", n, "pozos, la cantidad esperada de Grupo Geológico de Ambiente costero es,", Operador_objetivo, "=", round(cantidad_esperada, 2), "\n")
## Para n = 1000 pozos, la cantidad esperada de Grupo Geológico de Ambiente costero es, Ambiente costero = 10