Análisis de las Condiciones Operativas de los Pozos Petrolíferos en Brasil

1 Introducción

El presente análisis estudia la distribución de los estados operativos de los pozos petrolíferos en Brasil. A partir de los datos disponibles, se clasifican los pozos en categorías generales con el fin de analizar su frecuencia y representación porcentual. Posteriormente se utilizan tablas y gráficos para visualizar la estructura de la actividad petrolera según la condición operativa de cada pozo.

2 Carga e inspección de los datos

Importación del conjunto de datos y verificación de su estructura.

3 Obtención de la frecuencia de estados operativos

Obtención de la frecuencia de los estados operativos registrados.

Situación <- Datos$SITUACAO
TDFSituación <- as.data.frame(table(Situación))
TDFSituación
##                                                                              Situación
## 1                                                                                     
## 2                                ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO
## 3                                         ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO
## 4                                                           ABANDONADO DEFINITIVAMENTE
## 5                                                ABANDONADO POR LOGÍSTICA EXPLORATÓRIA
## 6  ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO
## 7                                                                             ARRASADO
## 8                                                         CEDIDO PARA PRODUÇÃO DE ÁGUA
## 9                                                                          DE DESCARTE
## 10                                                                           DEVOLVIDO
## 11                                                                         EM ABANDONO
## 12                           EM INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO
## 13                                                                       EM PERFURAÇÃO
## 14                                               EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO
## 15                                              EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO
## 16                                                                             INJETOR
## 17                                                                               OUTRO
## 18                                                       PRODUÇÃO DE AGUA PARA INJEÇÃO
## 19                                                                            PRODUTOR
##    Freq
## 1   824
## 2  3120
## 3     2
## 4  5074
## 5   719
## 6   253
## 7  2193
## 8   262
## 9    40
## 10 1446
## 11    8
## 12 2711
## 13    6
## 14    9
## 15   60
## 16 2653
## 17   96
## 18  187
## 19 9912
View(TDFSituación)

4 Estandarización y traducción de categorías

Traducción y estandarización de las categorías originales.

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
TDFSituación$Situación[TDFSituación$Situación == ""] <- "Sin registro"
## Warning in `[<-.factor`(`*tmp*`, TDFSituación$Situación == "", value =
## structure(c(NA, : invalid factor level, NA generated
TDFSituación$Situación <- recode(TDFSituación$Situación, 
"ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO" = "En proceso de cierre definitivo",
"ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO" = "En espera de reinicio de perforación",
"ABANDONADO DEFINITIVAMENTE" = "Abandonado definitivamente", 
"ABANDONADO POR LOGÍSTICA EXPLORATÓRIA" = "Abandonado por logística",
"ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO" = "Suspendido en espera de intervención",
"ARRASADO" = "Desmantelado",
"CEDIDO PARA PRODUÇÃO DE ÁGUA" = "Cedido para producción de agua",
"DE DESCARTE" = "Descartado",
"DEVOLVIDO" = "Devuelto",
"EM ABANDONO" = "En proceso de abandono", 
"EM INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO" = "En intervención activa", 
"EM PERFURAÇÃO" = "En perforación", 
"EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO" = "Equipado esperando inyección", 
"EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO" = "Equipado esperando producción", 
"INJETOR" = "Pozo inyector", 
"PRODUÇÃO DE AGUA PARA INJEÇÃO" = "Producción de agua para inyección",
"PRODUTOR" = "Pozo productor") 

4.1 Clasificación en condiciones operativas generales

En este bloque se recodifican los valores originales en grupos operativos más generales.

library(dplyr)

TDFSituación <- TDFSituación %>%
  mutate(Condición = case_when(
    Situación %in% c("En perforación", "Equipado esperando producción", "Equipado esperando inyección", "Pozo productor", "Pozo inyector", "Producción de agua para inyección") ~ "Activos y en Desarrollo",
    
    Situación %in% c("En intervención activa", "Suspendido en espera de intervención", "En espera de reinicio de perforación", "Cedido para producción de agua", "Devuelto") ~ "Suspendidos o Inactivos",
    
    Situación %in% c("En proceso de abandono", "En proceso de cierre definitivo", "Abandonado por logística") ~ "En Proceso de Abandono",
    
    Situación %in% c("Abandonado definitivamente", "Desmantelado", "Descartado") ~ "Clausura Definitiva", TRUE ~ "Sin registro"
  ))

head(TDFSituación$Situación)
## [1] <NA>                                 En proceso de cierre definitivo     
## [3] En espera de reinicio de perforación Abandonado definitivamente          
## [5] Abandonado por logística             Suspendido en espera de intervención
## 19 Levels:  ... Pozo productor
TDFSituación$Condición <- factor(TDFSituación$Condición, 
                                 levels = c("Activos y en Desarrollo", 
                                            "Suspendidos o Inactivos", 
                                            "En Proceso de Abandono", 
                                            "Clausura Definitiva", 
                                            "Sin registro"), 
                                 ordered = TRUE)

5 Cálculo de frecuencias absolutas y relativas

Se calculan las frecuencias absolutas (ni) y relativas (hi) para cada condición operativa de los pozos petrolíferos.

TDFSituación$Freq <- as.numeric(as.character(TDFSituación$Freq))
library(dplyr)
TDFSituación1 <- Datos$TDFSituación
TDFSituación1 <- TDFSituación %>%
  group_by(Condición) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFSituación$Freq)*100, 2))

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

6 Construcción de la tabla de distribución

Se agrega la fila acumulada y se forma la tabla final.

TDFSituación1 <- TDFSituación1 [, c("Condición", "ni", "hi")]
total_ni <- sum(TDFSituación1$ni) 
total_hi <- 100
TDFSituacióncompleta <- rbind(TDFSituación1, data.frame( Condición = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi))
print(TDFSituacióncompleta)
##                 Condición    ni     hi
## 1 Activos y en Desarrollo 12827  43.37
## 2 Suspendidos o Inactivos  4674  15.80
## 3  En Proceso de Abandono  3847  13.01
## 4     Clausura Definitiva  7307  24.71
## 5            Sin registro   920   3.11
## 6                   Total 29575 100.00

7 Presentación del cuadro estadístico

Se genera un cuadro formal utilizando gt.

library(gt)
gt(TDFSituacióncompleta) %>%
  tab_header( 
    title = md("**Cuadro No.1**"), 
    subtitle = "Situación de los pozos petrolíferos en Brasil") %>% 
 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))
Cuadro No.1
Situación de los pozos petrolíferos en Brasil
Condición ni hi
Activos y en Desarrollo 12827 43.37
Suspendidos o Inactivos 4674 15.80
En Proceso de Abandono 3847 13.01
Clausura Definitiva 7307 24.71
Sin registro 920 3.11
Total 29575 100.00

8 Gráficas

8.1 Histograma de frecuencia absoluta local (ni)

Este gráfico muestra la cantidad de pozos por categoría, sin incluir el total.

TDFSituaciónfinal <- TDFSituacióncompleta[TDFSituacióncompleta$Condición != "Total", ]
par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFSituaciónfinal$ni,
        main = "Gráfica N°1: Distribución en Cantidad de la Clasificación General",
        ylab = "Cantidad",
        col = "#2E4053", 
        xaxt = "n", 
        cex.axis = 0.8, cex.main = 0.9)

text(x = bp, y = -1500, 
     labels = TDFSituaciónfinal$Condición,
     srt = 45, adj = 1, xpd = TRUE, cex = 0.8)
mtext("Condición", side = 1, line = 6, cex = 1)

8.2 Histograma de frecuencia absoluta global (ni)

Este bloque amplía el rango del eje Y para observar categorías dominantes.

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFSituaciónfinal$ni,
        main = "Gráfica N°2: Distribución en Cantidad de la Clasificación General",
        ylab = "Cantidad",
        col = "#2E4053", 
        xaxt = "n", 
        yaxt = "n",
        cex.axis = 0.8, cex.main = 0.9, 
        ylim = c(0, 30000))

axis(side = 2, at = seq(0, 30000, by = 5000), las = 1, cex.axis = 0.8)
text(x = bp, y = -1500, 
     labels = TDFSituaciónfinal$Condición,
     srt = 45, adj = 1, xpd = TRUE, cex = 0.8)
mtext("Condición", side = 1, line = 6, cex = 1)

8.3 Histograma de frecuencia relativa local (hi)

Aquí se representa el porcentaje de pozos por cada categoría.

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFSituaciónfinal$hi,
        main = "Gráfica N°1: Distribución en Cantidad de las condiciones de los pozos petroliferos en Brasil",
        ylab = "Cantidad",
        col = "#2E4053", 
        xaxt = "n", 
        cex.axis = 0.8, cex.main = 0.9)

text(x = bp, y = -3, 
     labels = TDFSituaciónfinal$Condición,
     srt = 45, adj = 1, xpd = TRUE, cex = 0.8)
mtext("Condición", side = 1, line = 6, cex = 1)

8.4 Histograma de frecuencia relativa global (hi)

Este bloque ajusta el eje Y hasta el 100%.

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFSituaciónfinal$hi,
        main = "Gráfica N°1: Distribución en Cantidad de las condiciones de los pozos petroliferos en Brasil",
        ylab = "Cantidad",
        col = "#2E4053", 
        xaxt = "n", 
        cex.axis = 0.8, cex.main = 0.9, 
        ylim = c(0, 100))

text(x = bp, y = -3, 
     labels = TDFSituaciónfinal$Condición,
     srt = 45, adj = 1, xpd = TRUE, cex = 0.8)
mtext("Condición", side = 1, line = 6, cex = 1)

8.5 Diagrama circular

Se muestra la participación relativa de cada condición operativa respecto al total de pozos analizados mediante un diagrama circular.

pie(TDFSituaciónfinal$hi, 
    main = "Gráfica N°5: Distribución porcentual de las condiciones de los pozos petroliferos en Brasil", 
    radius = 0.8,
    labels = paste0(round(TDFSituaciónfinal$hi,2)),
    col = c("#2E4053", "#5D6D7E", "#E67E22", "#C0392B", "#D5D8DC"),
    cex.main = 0.8,
    init.angle = 360)

legend(x = -1.87, y =1,
       legend = TDFSituaciónfinal$Condición,
       fill = c("#2E4053", "#5D6D7E", "#E67E22", "#C0392B", "#D5D8DC"),
       cex = 0.7,
       title = "Condiciones de los pozos")

9 Resumen Estadístico

Se presenta una tabla resumen con los principales indicadores descriptivos asociados a la variable analizada.

Conclusiones <- data.frame(
Variable = "Condiciones de los pozos",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Activos y en Desarrollo",
`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 Condiciones de los pozoss 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 Condiciones de los pozoss 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
Condiciones de los pozos N/A N/A N/A Activos y en Desarrollo N/A N/A N/A N/A N/A N/A
Autor: Anahi Macias

9.1 Conclusiones

9.1.1 Análisis Descriptivo

Los resultados evidencian que la categoría Activos y en Desarrollo concentra la mayor proporción de pozos petrolíferos en Brasil. Este comportamiento indica que gran parte de la actividad petrolera del país se encuentra en etapas de producción o desarrollo operativo, mientras que las fases de abandono o suspensión representan una proporción menor dentro del conjunto de datos analizado.