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

1 Carga de Librerias

En esta sección se cargan las librerías necesarias para ejecutar las funciones utilizadas durante el procesamiento y análisis de los datos

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

2 Carga de Datos

Se importan los datos originales de pozos petrolíferos y se verifica la estructura de las variables para garantizar su correcta lectura.

3 Extraer la variable

En esta sección se extrae la variable correspondiente a los grupos geológicos finales de los pozos petrolíferos para analizar su distribución en la base de datos.

library(dplyr)
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

4 Conteo

Se calculan la frecuencia absoluta (ni) y la frecuencia relativa (hi) para cada grupo geológico, permitiendo el análisis comparativo.

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$fi <- TDFGrupos_Finales1$ni / sum(TDFGrupos_Finales1$ni)
TDFGrupos_Finales1 <- TDFGrupos_Finales1 [, c("Grupo_Geologico", "ni", "hi","fi")]
total_ni <- sum(TDFGrupos_Finales1$ni) 
total_hi <- 100
total_fi <- sum(TDFGrupos_Finales1$fi) 

TDFGrupos_Finales1.1 <- rbind(TDFGrupos_Finales1, data.frame( Grupo_Geologico = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi,
                                                          fi = total_fi))
print(TDFGrupos_Finales1.1)
##            Grupo_Geologico    ni     hi           fi
## 1       Ambientes costeros   294   0.99 9.940828e-03
## 2    Cuencas sedimentarias  3601  12.18 1.217582e-01
## 3              Formaciones    35   0.12 1.183432e-03
## 4            Otros/Locales 25555  86.41 8.640744e-01
## 5               Provincias    13   0.04 4.395604e-04
## 6 Regiones administrativas     2   0.01 6.762468e-05
## 7       Sistemas fluviales    75   0.25 2.535926e-03
## 8                    Total 29575 100.00 1.000000e+00

5 Tabla de frecuencia

Los resultados se presentan en una tabla estadística formateada, facilitando la lectura e interpretación de las frecuencias.

library(gt)
gt(TDFGrupos_Finales1.1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Distibución de grupos geológicos 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(TDFGrupos_Finales1.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
Distibución de grupos geológicos de los pozos petrolíferos en Brasil
Grupo_Geologico ni
Frecuencia Relativa
Porcentual (%) Fracción
Ambientes costeros 294 0.99 0.0099
Cuencas sedimentarias 3601 12.18 0.1218
Formaciones 35 0.12 0.0012
Otros/Locales 25555 86.41 0.8641
Provincias 13 0.04 0.0004
Regiones administrativas 2 0.01 0.0001
Sistemas fluviales 75 0.25 0.0025
Total 29575 100.00 1.0000

6 Gráficas

6.1 Histograma de frecuencia absoluta local

Representa la cantidad de pozos en cada grupo geológico sin considerar el total nacional.

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)

6.2 Histograma de frecuencia relativa local

Expresa la participación porcentual de cada grupo en el conjunto analizado.

par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$hi,
        main = "Gráfica N°2: 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)

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

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

La probabilidad de que un pozo petrolero pertenezca al grupo geológico “Ambientes costeros” es del 1 %, lo que indica una baja frecuencia dentro del total de pozos analizados.

¿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

Con una probabilidad estimada, se espera que de 1000 pozos petroleros aproximadamente 10 presenten un grupo geológico de tipo Ambiente costero.

8 Conclusión

La distribución de los grupos geológicos indica una probabilidad aproximada del 1 % de que un pozo pertenezca a Ambientes costeros. De acuerdo con el modelo probabilístico, se estima que de cada 1000 pozos analizados, alrededor de 10 corresponderían a este grupo geológico, evidenciando una baja participación dentro del total.