Modelo de Probabilidad de los Bloques de Concesión

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

Se importan los datos originales y se verifica su estructura para asegurar una lectura correcta.

2 Tabla de distribuciòn de frecuencia

Se obtiene la frecuencia absoluta de los bloques de concesión según su denominación.

3 Agrupación de la variable Bloco por Regiones Geográficas

Los bloques de concesión se agrupan según su denominación en regiones geográficas de Brasil, con el fin de facilitar un análisis espacial agregado.

TDFBloque$Region <- ifelse(is.na(TDFBloque$Bloque), "Sin información",
  ifelse(grepl("^(POT|BPOT|REC|BREC|SEAL|BA|BT|PN|CE|AR|AL|SE|AG|RC|RP)", TDFBloque$Bloque), "Nordeste",
    ifelse(grepl("^(BC|BS|ES|C-M|S-M|BM|BES|TUPI|LIBRA|LULA|BUZIOS|IARA|SP|RJ|CM|CF|CR)", TDFBloque$Bloque), "Sudeste",
        ifelse(grepl("^(AM|SOL|FZA|AC|SF|SO)", TDFBloque$Bloque), "Norte",
            ifelse(TDFBloque$Bloque %in% c("Brasil", "CP", "CAM", "ET", "RO", "FZB", "ARG", "MG", "DJM", "FP", "SZ", "FBM", "PIR", "CS"), "Campos Maduros/Genérico", "Otros")))))
TDFBloque$Region[TDFBloque$Region == "Sin información"] <- "Otros"
head(TDFBloque$Region)
## [1] "Otros"    "Otros"    "Otros"    "Otros"    "Otros"    "Nordeste"

4 Cálculo de frecuencia

Se calculan las frecuencias absolutas y relativas por región.

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

TDFBloque_ <- data.frame(TDFBloque_)

5 Construcción del cuadro con totales

Se incorpora una fila de totales a la tabla de frecuencias para consolidar la información y facilitar su interpretación estadística.

TDFBloque_ <- TDFBloque_ [, c("Region", "ni", "hi")]
TDFBloque_$fi <- TDFBloque_$ni / sum(TDFBloque_$ni)
total_ni <- sum(TDFBloque_$ni) 
total_hi <- 100 
total_fi <- sum(TDFBloque_$fi) 
TDFBloque_1 <- rbind(TDFBloque_, data.frame(Region = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi,
                                                          fi = total_fi))
print(TDFBloque_1)
##                    Region    ni     hi          fi
## 1 Campos Maduros/Genérico 12633  42.72 0.427151310
## 2                Nordeste  3538  11.96 0.119628064
## 3                   Norte    68   0.23 0.002299239
## 4                   Otros 11654  39.40 0.394049028
## 5                 Sudeste  1682   5.69 0.056872358
## 6                   Total 29575 100.00 1.000000000

6 Presentación tabular formateada

Se presenta la tabla final mediante un formato profesional utilizando la librería gt, optimizando la visualización y legibilidad de los resultados.

library(gt)
gt(TDFBloque_1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Distribución de los Bloques de Concesión por Ubicación") %>%  
    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(TDFBloque_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
Distribución de los Bloques de Concesión por Ubicación
Region ni
Frecuencia Relativa
Porcentual (%) Fracción
Campos Maduros/Genérico 12633 42.72 0.4272
Nordeste 3538 11.96 0.1196
Norte 68 0.23 0.0023
Otros 11654 39.40 0.3940
Sudeste 1682 5.69 0.0569
Total 29575 100.00 1.0000

7 Gráficas

7.1 Histograma de frecuencia absoluta local

Se visualiza la cantidad de bloques por región.

TDFBloque_2 <- TDFBloque_1[TDFBloque_1$Region!= "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFBloque_2$ni,
        main = "Gráfica N°1: Distribución en cantidad de los bloques de concesión por ubicación",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFBloque_2$Region,
        las = 2, cex.names = 0.79, cex.axis = 0.8, cex.main = 1)
mtext("Región", side = 1, line = 7)

7.2 Histograma de frecuencia relativa local (hi)

Este gráfico representa el peso porcentual de cada región respecto del total de bloques analizados.

par(mar = c(9, 4, 4, 2))
barplot(TDFBloque_2$hi,
        main = "Gráfica N°3: Distribución en porcentaje de los bloques de concesión por ubicación",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFBloque_2$Region,
        las = 2, cex.names = 0.79, cex.axis = 0.8, cex.main = 1)
mtext("Región", side = 1, line = 7)

8 Modelo de probabilidad

Se construye la distribución de probabilidad empírica por región.

P_Bloque <- TDFBloque_2$ni / sum(TDFBloque_2$ni)

par(mar = c(9, 4, 4, 2))
barplot(P_Bloque,
        main = "Gráfica N°3: Distribución de Probabilidad de los bloques de concesión por ubicación",
        ylab = "Probabilidad",
        col = "#2E4053", names.arg = TDFBloque_2$Region,
        las = 2, cex.names = 0.79, cex.axis = 0.8, cex.main = 1)
mtext("Región", side = 1, line = 7)

8.1 Probabilidad

¿Cuál es la probabilidad de que un bloque de concesión seleccionado aleatoriamente pertenezca a la región Nordeste?

x <- round(
  (TDFBloque_2$ni[TDFBloque_2$Region == "Nordeste"] /
   sum(TDFBloque_2$ni)) * 100, 1)

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

La probabilidad calculada indica que cerca del 12 % de los bloques de concesión se ubican en la región Nordeste, lo que evidencia una presencia moderada frente al total nacional.

¿Cuántos bloques de concesión existen en la región Nordeste?

p <- x / 100

n <- 1000

cantidad_esperada <- n * p
Bloque_objetivo <- "Nordeste"

cat("Para n =", n, "bloques de concesión esperada en", Bloque_objetivo, "=", round(cantidad_esperada, 2), "\n")
## Para n = 1000 bloques de concesión esperada en Nordeste = 120

Con base en el modelo probabilístico, para un conjunto hipotético de 1000 bloques, se espera que aproximadamente 120 bloques pertenezcan a la región Nordeste, manteniendo la proporción observada en los datos reales.