Modelo de Probabilidad de las Coordenadas de los Pozos Petroleros en Brasil

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

1 Carga de datos

Se importa la base de datos de pozos petrolíferos de Brasil y se verifica la estructura de las variables para asegurar su correcta lectura.

2 Tabla de distribuciòn de frecuencia

Se calcula la frecuencia absoluta de los pozos según el tipo de coordenada base registrada.

Coordenada_base <- Datos$TIPO_DE_COORDENADA_DE_BASE
TDFCoordenada_base <- as.data.frame(table(Coordenada_base))
TDFCoordenada_base
##   Coordenada_base  Freq
## 1      Definitiva 29535
## 2      Provisória    40

3 Estandarización de categorías

Se renombran las categorías originales para presentarlas en español, facilitando su interpretación y análisis.

español <- c("Definitiva", "Provisional")
levels(TDFCoordenada_base$Coordenada_base) <- español
head(TDFCoordenada_base$Coordenada_base)
## [1] Definitiva  Provisional
## Levels: Definitiva Provisional

4 Cálculo de frecuencias

Se calculan la frecuencia absoluta (ni) y la frecuencia relativa porcentual (hi) para cada tipo de coordenada base.

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

TDFCoordenada_base1 <- data.frame(TDFCoordenada_base1)

5 Tabla final con totales

Se añade una fila con el total general para facilitar la verificación de la distribución completa de los datos.

library(dplyr)

TDFCoordenada_base1 <- TDFCoordenada_base1[, c("Coordenada_base", "ni", "hi")]

orden_importancia <- c("Definitiva", "Provisional")

TDFCoordenada_base1$Coordenada_base <- factor(
  TDFCoordenada_base1$Coordenada_base,
  levels = orden_importancia
)

TDFCoordenada_base1 <- TDFCoordenada_base1 %>%
  arrange(Coordenada_base)
TDFCoordenada_base1$fi <- TDFCoordenada_base1$ni / sum(TDFCoordenada_base1$ni)
fila_total <- data.frame(
  Coordenada_base = "Total",
  ni = sum(TDFCoordenada_base1$ni),
  hi = sum(TDFCoordenada_base1$hi),
  fi = sum(TDFCoordenada_base1$fi))
TDFCoordenada_base1.1 <- rbind(TDFCoordenada_base1,fila_total)

print(TDFCoordenada_base1.1)
##   Coordenada_base    ni     hi          fi
## 1      Definitiva 29535  99.86 0.998647506
## 2     Provisional    40   0.14 0.001352494
## 3           Total 29575 100.00 1.000000000

6 Presentación tabular

Se presenta la tabla de frecuencias con formato profesional, adecuada para informes académicos.

library(gt)
gt(TDFCoordenada_base1.1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Coordenada base 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(TDFCoordenada_base1.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
Coordenada base de los Pozos Petrolíferos en Brasil
Coordenada_base ni
Frecuencia Relativa
Porcentual (%) Fracción
Definitiva 29535 99.86 0.9986
Provisional 40 0.14 0.0014
Total 29575 100.00 1.0000

7 Gráficas

7.1 Histograma de frecuencia absoluta local

Muestra la cantidad de pozos según el tipo de coordenada, excluyendo el total general, para comparar magnitudes.

TDFCoordenada_base2 <- TDFCoordenada_base1.1[TDFCoordenada_base1.1$Coordenada_base != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFCoordenada_base2$ni,
        main = "Gráfico No. 1. Distribución en cantidad de las coordenadas de los pozos",
        xlab = "Coordenadas" , ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFCoordenada_base2$Coordenada_base,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)

7.2 Histograma de frecuencia relativa local

Presenta el porcentaje de pozos por tipo de coordenada, permitiendo una interpretación probabilística.

par(mar = c(9, 4, 4, 2))
barplot(TDFCoordenada_base2$hi,
        main = "Gráfico No. 2. Distribución porcentual de las coordenadas de los pozos",
        xlab = "Coordenadas" , ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFCoordenada_base2$Coordenada_base,
        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 del tipo de coordenada de los pozos.

P_Coordenada <- TDFCoordenada_base2$ni / sum(TDFCoordenada_base2$ni)

par(mar = c(9, 4, 4, 2))
barplot(P_Coordenada,
        main = "Gráfica N°3: Distribución de Probabilidad de las Coordenadas de los Pozos",
        xlab = "Coordenadas", ylab = "Probabilidad",
        col = "#2E4053", names.arg = TDFCoordenada_base2$Coordenada_base,
        las = 1, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)

8.1 Probabilidad

¿Cuál es la probabilidad de que un pozo petrolero tenga una coordenada Provisional?

x <- round(
  (TDFCoordenada_base2$ni[TDFCoordenada_base2$Coordenada_base == "Provisional"] /
   sum(TDFCoordenada_base2$ni)) * 100, 1)

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

La probabilidad obtenida indica que aproximadamente el 0.1% de los pozos petrolíferos en Brasil tienen coordenadas provisionales.

¿Cuántos pozos petroleros pueden tener coordenadas provisionales?.

p <- x / 100

n <- 1000

cantidad_esperada <- n * p
coordenada_objetivo <- "Provisional"

cat("Para n =", n, "pozos, cantidad esperada de pozos con coordenadas provisionales", coordenada_objetivo, "=", round(cantidad_esperada, 2), "\n")
## Para n = 1000 pozos, cantidad esperada de pozos con coordenadas provisionales Provisional = 1

Se espera que aproximadamente 1 pozos petroleros tengan coordenadas provisionales, por cada 1000 pozos considerados.