Estados de los pozos petrolíferos

1 Cargar datos

Se establece el directorio de trabajo y se importan los datos originales, verificando su estructura para confirmar que las variables fueron reconocidas correctamente.

setwd("C:/Users/Usuario/Desktop/TRABAJO DE ESTADISTICA/PDF-EXCEL-QGIS")
Datos <- read.csv("Pozos brasil 2.csv", header = TRUE, sep = ";", dec = ",", fileEncoding = "Latin1")
str(Datos)
## 'data.frame':    29575 obs. of  59 variables:
##  $ POCO                      : chr  "7-RO-123HP-RJS" "1-BP-7-RJS" "7-ARGO-4H-ESS" "7-ARGO-5H-ESS" ...
##  $ CADASTRO                  : num  7.43e+10 7.43e+10 3.43e+10 3.43e+10 3.43e+10 ...
##  $ OPERADOR                  : chr  "Petrobras" "BP Energy" "Shell Brasil" "Shell Brasil" ...
##  $ POCO_OPERADOR             : chr  "7RO123HPRJS" "ANU" "7ARGO4HESS" "7ARGO5HESS" ...
##  $ ESTADO                    : chr  "RJ" "RJ" "ES" "ES" ...
##  $ BACIA                     : chr  "Campos" "Campos" "Campos" "Campos" ...
##  $ BLOCO                     : chr  "" "C-M-473" "" "" ...
##  $ SIG_CAMPO                 : chr  "RO   " "" "ARGO " "ARGO " ...
##  $ CAMPO                     : chr  "RONCADOR" "" "ARGONAUTA" "ARGONAUTA" ...
##  $ TERRA_MAR                 : chr  "M" "M" "M" "M" ...
##  $ POCO_POS_ANP              : chr  "S" "S" "S" "S" ...
##  $ TIPO                      : chr  "Explotatório" "Exploratório" "Explotatório" "Explotatório" ...
##  $ CATEGORIA                 : chr  "Desenvolvimento" "Pioneiro" "Desenvolvimento" "Desenvolvimento" ...
##  $ RECLASSIFICACAO           : chr  "PRODUTOR COMERCIAL DE PETRÓLEO" "PORTADOR DE PETRÓLEO" "ABANDONADO POR OUTRAS RAZÕES" "INDEFINIDO" ...
##  $ SITUACAO                  : chr  "PRODUTOR" "ABANDONADO POR LOGÍSTICA EXPLORATÓRIA" "ABANDONADO DEFINITIVAMENTE" "PRODUTOR" ...
##  $ INICIO                    : chr  "03/03/2012" "14/03/2012" "12/04/2012" "14/04/2012" ...
##  $ TERMINO                   : chr  "10/03/2013" "20/09/2012" "19/09/2012" "02/05/2013" ...
##  $ CONCLUSAO                 : chr  "10/03/2013" "19/10/2012" "28/09/2012" "13/05/2013" ...
##  $ TITULARIDADE              : chr  "Público" "Público" "Público" "Público" ...
##  $ LATITUDE_BASE_4C          : chr  "-21:57:45,630" "-23:06:09,622" "-21:08:06,801" "-21:08:12,535" ...
##  $ LONGITUDE_BASE_4C         : chr  "-39:44:01,130" "-40:00:41,295" "-39:46:53,226" "-39:46:49,296" ...
##  $ LATITUDE_BASE_DD          : num  -22 -23.1 -21.1 -21.1 -21.1 ...
##  $ LONGITUDE_BASE_DD         : num  -39.7 -40 -39.8 -39.8 -39.8 ...
##  $ DATUM_HORIZONTAL          : chr  "SIRGAS2000" "SIRGAS2000" "SIRGAS2000" "SIRGAS2000" ...
##  $ TIPO_DE_COORDENADA_DE_BASE: chr  "Definitiva" "Definitiva" "Definitiva" "Definitiva" ...
##  $ DIRECAO                   : chr  "Horizontal" "Vertical" "Horizontal" "Horizontal" ...
##  $ PROFUNDIDADE_VERTICAL_M   : num  -3145 6900 2937 2934 2953 ...
##  $ PROFUNDIDADE_SONDADOR_M   : num  4050 6925 3809 4575 4570 ...
##  $ PROFUNDIDADE_MEDIDA_M     : num  4050 6925 3809 4575 4570 ...
##  $ REFERENCIA_DE_PROFUNDIDADE: chr  "MR" "MR" "MR" "MR" ...
##  $ MESA_ROTATIVA             : num  24 25 24.2 24.2 24.2 ...
##  $ COTA_ALTIMETRICA_M        : num  0 0 0 0 0 ...
##  $ LAMINA_D_AGUA_M           : num  1827 2730 1706 1705 1654 ...
##  $ DATUM_VERTICAL            : chr  "NM" "NM" "NM" "NM" ...
##  $ UNIDADE_ESTRATIGRAFICA    : chr  "" "" "" "" ...
##  $ GEOLOGIA_GRUPO_FINAL      : chr  "Campos" "Lagoa Feia" "Campos" "Campos" ...
##  $ GEOLOGIA_FORMACAO_FINAL   : chr  "Carapebus" "Macabu" "Ubatuba" "Ubatuba" ...
##  $ GEOLOGIA_MEMBRO_FINAL     : chr  "" "" "" "" ...
##  $ CDPE                      : chr  "Existe" "Existe" "Existe" "" ...
##  $ AGP                       : chr  "" "" "" "" ...
##  $ PC                        : chr  "" "Existe" "" "" ...
##  $ PAG                       : chr  "" "" "" "" ...
##  $ PERFIS_CONVENCIONAIS      : chr  "" "Existe" "" "" ...
##  $ DURANTE_PERFURACAO        : chr  "Existe" "Existe" "Existe" "Existe" ...
##  $ PERFIS_DIGITAIS           : chr  "" "" "" "" ...
##  $ PERFIS_PROCESSADOS        : chr  "" "" "" "" ...
##  $ PERFIS_ESPECIAIS          : chr  "" "" "" "" ...
##  $ AMOSTRA_LATERAL           : chr  "" "Existe" "" "" ...
##  $ SISMICA                   : chr  "" "Existe" "" "" ...
##  $ TABELA_TEMPO_PROFUNDIDADE : chr  "" "" "" "" ...
##  $ DADOS_DIRECIONAIS         : chr  "Existe" "Existe" "Existe" "Existe" ...
##  $ TESTE_A_CABO              : chr  "Existe" "Existe" "" "" ...
##  $ TESTE_DE_FORMACAO         : chr  "" "" "" "" ...
##  $ CANHONEIO                 : chr  "" "" "" "" ...
##  $ TESTEMUNHO                : chr  "" "" "" "" ...
##  $ GEOQUIMICA                : chr  "" "" "" "" ...
##  $ SIG_SONDA                 : chr  "SS-49" "DS4" "NB2" "NB2" ...
##  $ NOM_SONDA                 : chr  "SEDCO 707" "Deep Ocean Clarion" "Bully 2" "Bully 2" ...
##  $ DHA_ATUALIZACAO           : chr  "28/1/18 5:00" "28/1/18 5:00" "28/1/18 5:00" "28/1/18 5:00" ...

2 Tabla de distribuciòn de frecuencia

Aquí se obtiene la frecuencia absoluta de los diferentes estados operativos de los pozos.

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

##Agrupación por condición En este bloque se recodifican los valores originales en grupos operativos más generales.

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$Condición <- ifelse(TDFSituación$Situación %in% c("ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO
", "ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO", "ABANDONADO DEFINITIVAMENTE", "ABANDONADO POR LOGÍSTICA EXPLORATÓRIA
", "ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO", "EM ABANDONO"), "Abandonados",
                                 ifelse(TDFSituación$Situación %in% c("EM ABANDONO", "EM PERFURAÇÃO00"), "Intervención", 
                                        ifelse(TDFSituación$Situación %in% c("EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO0", "EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO"), "Equipado en espera", 
                                               ifelse(TDFSituación$Situación %in% c("INJETOR", "PRODUTOR"), "En funcionamiento", 
                                                      ifelse(TDFSituación$Situación %in% c("CEDIDO PARA PRODUÇÃO DE ÁGUA", "PRODUÇÃO DE AGUA PARA INJEÇÃO"), "Producción de agua",
                                                             ifelse(TDFSituación$Situación %in% c("DEVOLVIDO", "DE DESCARTE"), "Descartado",
                                                                    ifelse(TDFSituación$Situación %in% c("ARRASADO"), "Devastado","Otros")))))))
head(TDFSituación$Condición)
## [1] "Otros"       "Otros"       "Abandonados" "Abandonados" "Otros"      
## [6] "Abandonados"

3 Frecuencias absoluta y relativa

Aquí se calculan las frecuencias por cada categoría operativa.

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)

4 Construcción del cuadro con totales

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        Abandonados  5337  18.05
## 2         Descartado  1486   5.02
## 3          Devastado  2193   7.42
## 4  En funcionamiento 12565  42.49
## 5 Equipado en espera     9   0.03
## 6              Otros  7536  25.48
## 7 Producción de agua   449   1.52
## 8              Total 29575 100.00

5 Ordenación ordinal de la condición de los pozos

En este bloque se ordenan las categorías según su importancia operativa para tratarlas como una variable cualitativa ordinal.

orden_niveles <- c("En funcionamiento", 
                   "Equipado en espera", 
                   "Producción de agua", 
                   "Intervención", 
                   "Abandonados", 
                   "Descartado", 
                   "Devastado", 
                   "Otros", 
                   "Total")

TDFSituacióncompleta$Condición <- factor(TDFSituacióncompleta$Condición, 
                                        levels = orden_niveles, 
                                        ordered = TRUE)
TDFSituacióncompleta <- TDFSituacióncompleta[order(TDFSituacióncompleta$Condición), ]

6 Presentación tabular formateada

Se genera un cuadro formal utilizando

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
En funcionamiento 12565 42.49
Equipado en espera 9 0.03
Producción de agua 449 1.52
Abandonados 5337 18.05
Descartado 1486 5.02
Devastado 2193 7.42
Otros 7536 25.48
Total 29575 100.00

7 Gráficas

7.1 Histograma de frecuencia absoluta local

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))
barplot(TDFSituaciónfinal$ni,
        main = "Gráfica N°1: Estado de los pozos petrolíferos en Brasil",
        ylab = "Cantidad",
        col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

7.2 Histograma de frecuencia absoluta global

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

par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$ni,
        main = "Gráfica N°2: Estado de los pozos petrolíferos en Brasil",
        ylab = "Cantidad",
        col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 0.99,
        ylim = c(0,30000)) 
mtext("Condición", side = 1, line = 7)

7.3 Histograma de frecuencia relativa local

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

par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$hi,
        main = "Gráfica N°3: Porcentaje de la condición de los pozos en Brasil",
        ylab = "Porcentaje",
        col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

7.4 Histograma de frecuencia relativa global

Este bloque ajusta el eje Y hasta el 100%.

par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$hi,
        main = "Gráfica N°4: Porcentaje de la condición de los pozos en Brasil",
        ylab = "Porcentaje",
        col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

7.5 Diagrama circular

El diagrama representa la proporción de cada categoría respecto del total.

library(ggplot2)
library(ggrepel)
datos_plot <- TDFSituaciónfinal
datos_plot$ymax <- cumsum(datos_plot$hi)
datos_plot$ymin <- c(0, head(datos_plot$ymax, n=-1))
datos_plot$posicion_label <- (datos_plot$ymax + datos_plot$ymin) / 2

mis_colores <- c("#F1B6DA", "#FDE0EF", "#F7F7F7", "#E6F5D0", "#b4e6ae", "#7FBC41","#DE77AE")
ggplot(datos_plot, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=2, fill=Condición)) +
  geom_rect(color = "black") +
  coord_polar(theta="y") +
  
  geom_label_repel(aes(y = posicion_label, x = 4, label = paste0(round(hi, 2))),
                   size = 4, 
                   nudge_x = 0.5,  
                   show.legend = FALSE) +
  
  scale_fill_manual(values = mis_colores) +
  ggtitle("Gráfica N°5: Distribución porcentual de las condiciones de los pozos petroliferos en Brasil") +
  theme_void() + 
  theme(legend.position = "right", 
        plot.title = element_text(hjust = 0), 
        legend.background = element_rect(color = "black", 
                                     fill = "white",    
                                     linewidth = 0.5, 
                                     linetype = "solid"
  ), 
  legend.margin = margin(t = 10, r = 10, b = 10, l = 10) 
  ) 

8 Resumen Estadístico

Conclusiones <- data.frame(
Variable = "Condiciones de los pozos",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "En funcionamiento",
`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 pozos") %>%
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 pozos
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 En funcionamiento 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 condición En funcionamiento constituye la moda de la variable, lo que indica que la mayor proporción de pozos petrolíferos en Brasil se encuentra actualmente operativa, reflejando una predominancia de actividades productivas frente a estados inactivos.