Modelo de Probabilidad de la Ubicación de los pozos petrolíferos en las regiones de Brasil

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

1 Cargar datos

Este bloque carga la base de datos original de pozos y revisa la estructura de los datos.

2 Tabla de distribuciòn de frecuencia

Se determina la frecuencia absoluta de los pozos perforados según el estado.

Estados <- datos$ESTADO
TDFEstados <- as.data.frame(table(Estados))
colnames(TDFEstados) <- c("Estados", "Freq")

3 Asignación de regiones

En esta sección se agrupan los estados de acuerdo con su región geográfica en Brasil.

library(dplyr)
TDFEstados$Regiones <- ifelse(TDFEstados$Estados %in% c("AC", "AP", "AM", "TO", "PA", "RR"), "Norte",
                              ifelse(TDFEstados$Estados %in% c("AL", "BA", "CE", "MA", "PB", "PI", "PE", "SE", "PR", "RN"), "Nordeste",
                                     ifelse(TDFEstados$Estados %in% c("ES", "MG", "RJ", "SP", "SC", "RS"), "Sudeste",
                                            ifelse(TDFEstados$Estados %in% c("DF", "GO", "MS", "MT"), "Centro-Oeste", "otros"))))
TDFEstados <- TDFEstados [, c("Estados", "Freq", "Regiones")]
head(TDFEstados)
##   Estados Freq Regiones
## 1      AC    6    Norte
## 2      AL  969 Nordeste
## 3      AM  533    Norte
## 4      AP   84    Norte
## 5      BA 7118 Nordeste
## 6      CE 1273 Nordeste

4 Cálculo de frecuencias por región

A continuación, se calculan las frecuencias absolutas y relativas con el objetivo de cuantificar la concentración y el peso porcentual de las perforaciones en cada región analizada.

TDFEstados$Freq <- as.numeric(as.character(TDFEstados$Freq))
library(dplyr)
TDFEstadosfinal1 <- TDFEstados %>%
  group_by(Regiones) %>%
  
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFEstados$Freq)*100, 5))

TDFEstadosfinal1 <- data.frame(TDFEstadosfinal1)

5 Construcción del cuadro con totales

En este bloque se añade la fila acumulada y se ordena la tabla final.

TDFEstadosfinal1$fi<-TDFEstadosfinal1$ni/sum(TDFEstadosfinal1$ni)
TDFEstadosfinal1 <- TDFEstadosfinal1 [, c("Regiones", "ni", "hi","fi")]
total_ni <- sum(TDFEstadosfinal1$ni) 
total_hi <- sum(TDFEstadosfinal1$hi)
total_fi<-sum(TDFEstadosfinal1$fi)
TDFEstadoscompleta <- rbind(TDFEstadosfinal1, data.frame( Regiones = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi,
                                                          fi = total_fi))
print(TDFEstadoscompleta)
##       Regiones    ni        hi          fi
## 1 Centro-Oeste    33   0.11158 0.001115807
## 2     Nordeste 22583  76.35841 0.763584108
## 3        Norte   727   2.45816 0.024581572
## 4      Sudeste  6232  21.07185 0.210718512
## 5        Total 29575 100.00000 1.000000000

6 Presentación tabular con formato

Se presenta la información en una tabla formal mediante el paquete gt.

library(gt)
gt(TDFEstadoscompleta) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Distibución de pozos petroliferos en las regiones de 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(TDFEstadoscompleta))
  ) %>%
  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 pozos petroliferos en las regiones de Brasil
Regiones ni
Frecuencia Relativa
Porcentual (%) Fracción
Centro-Oeste 33 0.11 0.0011
Nordeste 22583 76.36 0.7636
Norte 727 2.46 0.0246
Sudeste 6232 21.07 0.2107
Total 29575 100.00 1.0000

7 Gráficas

7.1 Histograma de frecuencia absoluta local

Se muestra la distribución de la cantidad de pozos por región, omitiendo el total general.

##Histograma de frecuencia absoluta local (ni)
TDFEstadoscompleta_ <- TDFEstadoscompleta[TDFEstadoscompleta$Regiones != "Total", ]

barplot(TDFEstadoscompleta_$ni,
        main = "Gráfica N°1: Distribución de pozos petroliferos segun su región en Brasil",
        xlab = "Regiones", ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFEstadoscompleta_$Regiones,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)

7.2 Histograma de frecuencia relativa local

barplot(TDFEstadoscompleta_$hi,
        main = "Gráfica N°3: Distribución en porcentaje según su región en Brasil",
        xlab = "Regiones", ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFEstadoscompleta_$Regiones,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)

8 Modelo de probabilidad

Se construye un modelo empírico de probabilidad a partir de las frecuencias relativas por región.

P_Estados <- TDFEstadoscompleta_$ni / sum(TDFEstadoscompleta_$ni)

par(mar = c(9, 4, 4, 2))
barplot(P_Estados,
        main = "Gráfica N°3: Distribución de Probabilidad de la Ubicación de los Pozos en Brasil",
        xlab = "Regiones", ylab = "Probabilidad",
        col = "#2E4053", names.arg = TDFEstadoscompleta_$Regiones,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)

8.1 Probabilidad

¿Cuál es la probabilidad de que un pozo petrolero se encuentre en la región Norte?

x <- round(
  (TDFEstadoscompleta_$ni[TDFEstadoscompleta_$Regiones == "Norte"] /
   sum(TDFEstadoscompleta_$ni)) * 100, 1)

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

La probabilidad obtenida indica que aproximadamente 2.5 % de los pozos petrolíferos en Brasil se encuentran en la región Norte

¿Cuántos pozos petroleros pueden estar en la región Norte?.

p <- x / 100

n <- 1000

cantidad_esperada <- n * p
region_objetivo <- "Norte"

cat("Para n =", n, "pozos, cantidad esperada en la región", region_objetivo, "=", round(cantidad_esperada, 2), "\n")
## Para n = 1000 pozos, cantidad esperada en la región Norte = 25

Se espera que aproximadamente 25 pozos se localicen en la región Norte, por cada 1000 pozos considerados.