Modelo de Probabilidad de los Campos de producción de los pozos petrolíferos en Brasil

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 Cargar datos

Se importan los datos y se valida su estructura para el análisis estadístico.

3 Extraer la variable

En este apartado se selecciona la variable Campo para analizar la distribución de los pozos petrolíferos según el campo de producción al que pertenecen.

sum(table(TDFCampo$Campos))
## [1] 542
TDFCampo$Freq <- as.numeric(as.character(TDFCampo$Freq))
library(dplyr)
TDFCampos <- Datos$TDFCampo
TDFCampos <- TDFCampo %>%
  group_by(Campo) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFCampo$Freq)*100, 4))

TDFCampos <- data.frame(TDFCampos)

4 Conteo

Se presenta el cuadro resumen con los totales de frecuencia absoluta y relativa.

TDFCampos <- TDFCampos [, c("Campo", "ni", "hi")]
TDFCampos$fi <- TDFCampos$ni / sum(TDFCampos$ni)
total_ni <- sum(TDFCampos$ni) 
total_hi <- sum(TDFCampos$hi)
total_fi <- sum(TDFCampos$fi)
TDFCampos1 <- rbind(TDFCampos, data.frame( Campo = "Total",
                                                ni = total_ni,
                                                hi = total_hi,
                                                fi = total_fi))
print(TDFCampos1)
##                     Campo    ni       hi          fi
## 1        Campos fluviales   790   2.6712 0.026711750
## 2        Campos insulares   130   0.4396 0.004395604
## 3        Campos lacustres   292   0.9873 0.009873204
## 4          Campos marinos  3904  13.2003 0.132003381
## 5 Extensiones geograficas   531   1.7954 0.017954353
## 6            Otros campos 23928  80.9062 0.809061708
## 7                   Total 29575 100.0000 1.000000000

5 Tabla de frecuencia

Se genera una tabla formal utilizando el paquete gt.

library(gt)
gt(TDFCampos1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Campos de Producción de los Pozos Petrolíferos") %>%  
    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(TDFCampos1))
  ) %>%
  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
Campos de Producción de los Pozos Petrolíferos
Campo ni
Frecuencia Relativa
Porcentual (%) Fracción
Campos fluviales 790 2.67 0.0267
Campos insulares 130 0.44 0.0044
Campos lacustres 292 0.99 0.0099
Campos marinos 3904 13.20 0.1320
Extensiones geograficas 531 1.80 0.0180
Otros campos 23928 80.91 0.8091
Total 29575 100.00 1.0000

6 Gráficas

6.1 Histograma de frecuencia absoluta local

Se muestra la distribución en cantidad de campos petroleros por grupo a nivel local.

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

6.2 Histograma de frecuencia relativa local

Se muestra la distribución porcentual de campos petroleros por grupo a nivel local.

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

7 Modelo de probabilidad

Se construye la distribución de probabilidad empírica de los campos petroleros.

P_Campos <- TDFCampos1$ni / sum(TDFCampos1$ni)

par(mar = c(9, 4, 4, 2))
barplot(P_Campos,
        main = "Gráfica N°3: Distribución de Probabilidad de los campos petroleros por grupo",
        ylab = "Probabilidad",
        col = "#2E4053", names.arg = TDFCampos1$Campo,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Campos", side = 1, line = 7)

7.1 Probabilidad

¿Cuál es la probabilidad de que un pozo petrolero seleccionado aleatoriamente pertenezca a un campo marino?

x <- round(
  (TDFCampos1$ni[TDFCampos1$Campo == "Campos marinos"] /
   sum(TDFCampos1$ni)) * 100, 1)

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

La probabilidad calculada indica que aproximadamente el 13,2 % de los pozos petroleros pertenecen a campos marinos, lo que evidencia una presencia relevante, aunque no mayoritaria, dentro de la producción petrolera brasileña.

Si se seleccionan 1000 pozos petroleros, ¿cuántos se espera que pertenezcan a campos marinos?

p <- x / 100

n <- 1000

cantidad_esperada <- n * p
Bloque_objetivo <- "Campos marinos"

cat("Para n =", n, "Pozos, cantidad esperada en", Bloque_objetivo, "=", round(cantidad_esperada, 2), "\n")
## Para n = 1000 Pozos, cantidad esperada en Campos marinos = 132

De acuerdo con el modelo probabilístico, para un total de 1000 pozos, se espera que 132 pozos corresponda a campos marinos, manteniendo la distribución observada en los datos reales

8 Conclusión

El modelo probabilístico determinó que aproximadamente el 13,2 % de los pozos analizados pertenecen a campos marinos. Por lo tanto, manteniendo esta proporción, de cada 1000 pozos se esperaría que alrededor de 132 correspondan a campos marinos, reflejando su participación dentro de la distribución de los pozos petrolíferos en Brasil.