Análisis Descriptivo de la Clasificación Operativa de los Pozos Petrolíferos de Brasil

1 Introducción

El presente estudio describe la distribución de los pozos petrolíferos de Brasilsegún su clasificación operativa, con en datos oficiales de la Agencia Nacional del Petróleo, Gas Natural y Biocombustibles (ANP). Las categorías originales se consolidaron en cuatro grupos para facilitar la interpretación de las frecuencias y proporciones de cada tipo de pozo registrado.

2 Carga de datos

Se importa el conjunto de datos de pozos petroleros de Brasil y se verifica su estructura, tipos de variables y codificación.

3 Obtención de la frecuencia

Se extrae la variable de clasificación operativa y se contabiliza la frecuencia absoluta de cada categoría registrada.

TipoPozo  <- Datos$RECLASSIFICACAO
TDFTipoPozo <- as.data.frame(table(TipoPozo ))
TDFTipoPozo
##                                                         TipoPozo  Freq
## 1                                                                 1603
## 2                               ABANDONADO POR ACIDENTE MECÂNICO   794
## 3                                         ABANDONADO POR ERUPÇÃO     4
## 4                    ABANDONADO POR IMPOSSIBILIDADE DE AVALIAÇÃO    14
## 5                       ABANDONADO POR OBJETIVO FORA DE PREVISÃO    43
## 6                      ABANDONADO POR OBJETIVO/ALVO NÃO ATINGIDO    75
## 7                                   ABANDONADO POR OUTRAS RAZÕES   697
## 8                                ABANDONADO POR PERDA CIRCULAÇÃO    19
## 9                                            CONTROLE DE ERUPÇÃO     1
## 10                                              DESCARTE DE ÁGUA     9
## 11                          DESCOBRIDOR DE CAMPO COM GÁS NATURAL    84
## 12             DESCOBRIDOR DE CAMPO COM GÁS NATURAL E CONDENSADO    18
## 13                             DESCOBRIDOR DE CAMPO COM PETRÓLEO   352
## 14               DESCOBRIDOR DE CAMPO COM PETRÓLEO E GÁS NATURAL    48
## 15   DESCOBRIDOR DE CAMPO COM PETRÓLEO, GÁS NATURAL E CONDENSADO     9
## 16                        DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL    57
## 17           DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL E CONDENSADO    13
## 18                           DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO   301
## 19             DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO E GÁS NATURAL    46
## 20 DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO, GÁS NATURAL E CONDENSADO     7
## 21                                                  EXPERIMENTAL     6
## 22                                     EXTENSÃO PARA GÁS NATURAL    70
## 23                        EXTENSÃO PARA GÁS NATURAL E CONDENSADO    22
## 24                                        EXTENSÃO PARA PETRÓLEO   630
## 25                          EXTENSÃO PARA PETRÓLEO E GÁS NATURAL    59
## 26              EXTENSÃO PARA PETRÓLEO, GÁS NATURAL E CONDENSADO    29
## 27                                                    INDEFINIDO   358
## 28                                               INJEÇÃO DE ÁGUA  1309
## 29                                     INJEÇÃO DE ÁGUA ADITIVADA     8
## 30                                                INJEÇÃO DE CO2     1
## 31                                        INJEÇÃO DE GÁS NATURAL    29
## 32                              INJEÇÃO DE QUALQUER OUTRO FLUIDO     4
## 33                                              INJEÇÃO DE VAPOR    96
## 34                                                    OBSERVAÇÃO   766
## 35                                            OUTRAS FINALIDADES    89
## 36                                              PESQUISA MINERAL     4
## 37                                       PORTADOR DE GÁS NATURAL   133
## 38                          PORTADOR DE GÁS NATURAL E CONDENSADO    10
## 39                                          PORTADOR DE PETRÓLEO   490
## 40                            PORTADOR DE PETRÓLEO E GÁS NATURAL    71
## 41                PORTADOR DE PETRÓLEO, GÁS NATURAL E CONDENSADO     9
## 42                                              PRODUÇÃO DE ÁGUA    26
## 43                             PRODUTOR COMERCIAL DE GÁS NATURAL   358
## 44                PRODUTOR COMERCIAL DE GÁS NATURAL E CONDENSADO    42
## 45                                PRODUTOR COMERCIAL DE PETRÓLEO 14506
## 46                  PRODUTOR COMERCIAL DE PETRÓLEO E GÁS NATURAL   373
## 47      PRODUTOR COMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO    89
## 48                          PRODUTOR SUBCOMERCIAL DE GÁS NATURAL   154
## 49             PRODUTOR SUBCOMERCIAL DE GÁS NATURAL E CONDENSADO    29
## 50                             PRODUTOR SUBCOMERCIAL DE PETRÓLEO   744
## 51               PRODUTOR SUBCOMERCIAL DE PETRÓLEO E GÁS NATURAL    49
## 52   PRODUTOR SUBCOMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO     1
## 53                 SECO COM INDÍCIOS DE GÁS NATURAL E CONDENSADO    10
## 54                                 SECO COM INDÍCIOS DE PETRÓLEO   790
## 55                   SECO COM INDÍCIOS DE PETRÓLEO E GÁS NATURAL   143
## 56                                 SECO COM INDÍCIOS GÁS NATURAL   252
## 57                                             SECO SEM INDÍCIOS  3621
## 58                                                   TREINAMENTO     1

##Agrupación Las subcategorías originales se consolidan en cuatro grupos operacionales mutuamente excluyentes para simplificar el análisis.

library(dplyr)

TDFTipoPozo$Grupo <- case_when(
  TDFTipoPozo$TipoPozo  %in% c(
    "PRODUTOR COMERCIAL DE GÁS NATURAL", "PRODUTOR COMERCIAL DE GÁS NATURAL E CONDENSADO",
    "PRODUTOR COMERCIAL DE PETRÓLEO", "PRODUTOR COMERCIAL DE PETRÓLEO E GÁS NATURAL",
    "PRODUTOR COMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO",
    "PRODUTOR SUBCOMERCIAL DE GÁS NATURAL", "PRODUTOR SUBCOMERCIAL DE GÁS NATURAL E CONDENSADO",
    "PRODUTOR SUBCOMERCIAL DE PETRÓLEO", "PRODUTOR SUBCOMERCIAL DE PETRÓLEO E GÁS NATURAL",
    "PRODUTOR SUBCOMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO",
    "DESCOBRIDOR DE CAMPO COM GÁS NATURAL", "DESCOBRIDOR DE CAMPO COM GÁS NATURAL E CONDENSADO",
    "DESCOBRIDOR DE CAMPO COM PETRÓLEO", "DESCOBRIDOR DE CAMPO COM PETRÓLEO E GÁS NATURAL",
    "DESCOBRIDOR DE CAMPO COM PETRÓLEO, GÁS NATURAL E CONDENSADO",
    "DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL", "DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL E CONDENSADO",
    "DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO", "DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO E GÁS NATURAL",
    "DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO, GÁS NATURAL E CONDENSADO",
    "EXTENSÃO PARA GÁS NATURAL", "EXTENSÃO PARA GÁS NATURAL E CONDENSADO",
    "EXTENSÃO PARA PETRÓLEO", "EXTENSÃO PARA PETRÓLEO E GÁS NATURAL",
    "EXTENSÃO PARA PETRÓLEO, GÁS NATURAL E CONDENSADO",
    "PORTADOR DE GÁS NATURAL", "PORTADOR DE GÁS NATURAL E CONDENSADO",
    "PORTADOR DE PETRÓLEO", "PORTADOR DE PETRÓLEO E GÁS NATURAL",
    "PORTADOR DE PETRÓLEO, GÁS NATURAL E CONDENSADO"
  ) ~ "Pozos productivos",

  TDFTipoPozo$TipoPozo %in% c(
    "INJEÇÃO DE ÁGUA", "INJEÇÃO DE ÁGUA ADITIVADA", "INJEÇÃO DE CO2",
    "INJEÇÃO DE GÁS NATURAL", "INJEÇÃO DE QUALQUER OUTRO FLUIDO", "INJEÇÃO DE VAPOR"
  ) ~ "Inyección/Soporte",

  TDFTipoPozo$TipoPozo %in% c(
    "SECO COM INDÍCIOS DE GÁS NATURAL E CONDENSADO", "SECO COM INDÍCIOS DE PETRÓLEO",
    "SECO COM INDÍCIOS DE PETRÓLEO E GÁS NATURAL", "SECO COM INDÍCIOS GÁS NATURAL",
    "SECO SEM INDÍCIOS"
  ) ~ "Pozos secos",

  .default = "Pozos abandonados"
)

# Factor ordenado (del más favorable al menos)
niveles_ordinales <- c("Pozos productivos", "Inyección/Soporte",
                       "Pozos secos", "Pozos abandonados")

TDFTipoPozo$Grupo <- factor(TDFTipoPozo$Grupo,
                                   levels = niveles_ordinales, ordered = TRUE)

TDFTipoPozo <- TDFTipoPozo[order(TDFTipoPozo$Grupo), ]

4 Cálculo de frecuencias absolutas y relativas

Se calculan las frecuencias absolutas (ni) y relativas porcentuales (hi) por grupo operacional.

TDFTipoPozo$Freq <- as.numeric(as.character(TDFTipoPozo$Freq))

library(dplyr)

TDFReclasificación1 <- Datos$TDFTipoPozo
TDFReclasificación1 <- TDFTipoPozo %>%
  group_by(Grupo) %>%
  summarise( 
    ni = sum(Freq),

    hi = round(sum(Freq) / sum(TDFTipoPozo$Freq)*100, 5))

TDFReclasificación1 <- data.frame(TDFReclasificación1)

5 Construcción de la tabla de distribución

Se integran las frecuencias en una tabla con totales para verificar la coherencia del conjunto de datos.

TDFReclasificación1$fi <- TDFReclasificación1$ni / sum(TDFReclasificación1$ni)

TDFReclasificación1 <- TDFReclasificación1 [, c("Grupo", "ni", "hi", "fi")]

total_ni <- sum(TDFReclasificación1$ni) 
total_hi <- sum(TDFReclasificación1$hi)
total_fi <- sum(TDFReclasificación1$fi)


TDFReclasificación1.1 <- rbind(TDFReclasificación1, data.frame( Grupo = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi,
                                                          fi = total_fi))
print(TDFReclasificación1.1)
##               Grupo    ni        hi         fi
## 1 Pozos productivos 18803  63.57735 0.63577346
## 2 Inyección/Soporte  1447   4.89265 0.04892646
## 3       Pozos secos  4816  16.28402 0.16284024
## 4 Pozos abandonados  4509  15.24598 0.15245985
## 5             Total 29575 100.00000 1.00000000

6 Presentación del cuadro estadístico

La tabla se formatea con gt para su presentación en el informe final.

library(gt)
gt(TDFReclasificación1.1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Reclasificación de pozos petroleros 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(TDFReclasificación1.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
Reclasificación de pozos petroleros en Brasil
Grupo ni
Frecuencia Relativa
Porcentual (%) Fracción
Pozos productivos 18803 63.58 0.6358
Inyección/Soporte 1447 4.89 0.0489
Pozos secos 4816 16.28 0.1628
Pozos abandonados 4509 15.25 0.1525
Total 29575 100.00 1.0000

7 Análisis Gráfico

7.1 Histograma de frecuencia absoluta local

Muestran la cantidad de pozos por grupo con escala ajustada.

TDFReclasificación2 <- TDFReclasificación1.1[TDFReclasificación1.1$Grupo != "Total", ]
par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFReclasificación2$ni,
        main = "Gráfica N°1: Distribución de pozos por reclasificación",
        ylab = "Cantidad",
        col = "#2E4053", 
        xaxt = "n", 
        cex.axis = 0.8, cex.main = 0.9)

     text(x = bp, y = -3, 
     labels = TDFReclasificación2$Grupo,
     srt = 45, adj = 1.2, xpd = TRUE, cex = 0.8)
        mtext("Reclasificación", side = 1, line = 6, adj = 0.8)

7.2 Histograma de frecuencia absoluta global

Muestran la cantidad de pozos por grupo con escala fija.

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFReclasificación2$ni,
        main = "Gráfica N°2: Distribución de pozos por reclasificación",
        ylab = "Cantidad",
        col = "#2E4053", 
        xaxt = "n", 
        cex.axis = 0.8, cex.main = 0.9,
        ylim = c(0, 30000))

        text(x = bp, y = -3, 
     labels = TDFReclasificación2$Grupo,
     srt = 45, adj = 1.2, xpd = TRUE, cex = 0.8)
        mtext("Reclasificación", side = 1, line = 6, adj = 0.8) 

7.3 Histograma de frecuencia relativa local

Representan el porcentaje de participación de cada grupo con escala ajustada

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFReclasificación2$hi,
        main = "Gráfica N°3: Distribución porcentual de pozos por reclasificación",
        ylab = "Porcentaje",
        col = "#2E4053", 
        xaxt = "n", 
        cex.axis = 0.8, cex.main = 0.9)


text(x = bp, y = -3, 
     labels = TDFReclasificación2$Grupo,
     srt = 45, adj = 1.2, xpd = TRUE, cex = 0.8)
        mtext("Reclasificación", side = 1, line = 6, adj = 0.8)

7.4 Histograma de frecuencia relativa global

Representan el porcentaje de participación de cada grupo con escala fija hasta el 100 %.

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFReclasificación2$hi, 
        main = "Gráfica N°4: Distribución porcentual de pozos por reclasificación",
        ylab = "Porcentaje",
        col = "#2E4053", 
        xaxt = "n", 
        cex.axis = 0.8, cex.main = 0.9,
        ylim = c(0, 100))

text(x = bp, y = -3, 
     labels = TDFReclasificación2$Grupo,
     srt = 45, adj = 1.2, xpd = TRUE, cex = 0.8)

        mtext("Reclasificación", side = 1, line = 6,  adj = 0.8)

7.5 Diagrama circular

Ilustra la proporción de cada grupo respecto al total de pozos registrados.

pie(TDFReclasificación2$hi, 
    main = "Gráfica N°5: Distribución porcentual de la reclasificación de pozos en Brasil", 
    radius = 0.6,
    labels = paste0(round(TDFReclasificación2$hi,2)),
    col = c("#6C8A9B", "#E6E6E4", "#F9F5EF", "#FD6574"),
    cex = 1, cex.main = 1,
    init.angle = 270)
        
legend(x = -1.95, y =1,
       legend = TDFReclasificación2$Grupo,
       fill = c("#6C8A9B", "#E6E6E4", "#F9F5EF", "#FD6574"),
       cex = 0.6,
       title = "Reclasificación")

8 Resumen Estadístico

Conclusiones <- data.frame(
Variable = "Reclasificación de los pozos",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Pozos Productivos",
`Varianza (S²)` = "N/A",
`Desv. Est. (S)` = "N/A",
`C.V. (%)` = "N/A",
`Asimetría (As)` = "N/A",
`Curtosis (K)` = "N/A",
`Valores Atípicos` = "N/A",
check.names = FALSE)
library(gt)

gt(Conclusiones) %>%
tab_header(
title = md("**CONCLUSIONES Y ESTADÍSTICOS**"),
subtitle = "Resumen de Indicadores de las Reclasificaciones de los Pozos Petrolíferos en Brasil") %>%
tab_source_note(source_note = "Autor: Anahi Macias") %>%
  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_options(
    table.border.top.color = "#2E4053",
    table.border.bottom.color = "#2E4053",
    column_labels.border.bottom.color = "#2E4053",
    data_row.padding = px(6))
CONCLUSIONES Y ESTADÍSTICOS
Resumen de Indicadores de las Reclasificaciones de los Pozos Petrolíferos en Brasil
Variable Rango [Min; Max] Media (X̄) Mediana (Me) Moda (Mo) Varianza (S²) Desv. Est. (S) C.V. (%) Asimetría (As) Curtosis (K) Valores Atípicos
Reclasificación de los pozos N/A N/A N/A Pozos Productivos N/A N/A N/A N/A N/A N/A
Autor: Anahi Macias

8.1 Conclusiones

8.1.1 Análisis Descriptivo

La moda corresponde al grupo Pozos Productivos, lo que indica que la mayor proporción de pozos en Brasil se encuentra destinada directamente a la extracción de hidrocarburos, reflejando un enfoque predominante hacia la producción efectiva.