Clasificación oficial de la posición del pozo según la ANP

1 Carga y exploración inicial de los datos

Se establece el directorio de trabajo, se importa la base de datos y se revisa su estructura general.

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

Se construye la tabla de frecuencia para la variable hemisferio.

HEMISFERIO <- Datos$POCO_POS_ANP
TDFHEMISFERIO <- as.data.frame(table(HEMISFERIO))
TDFHEMISFERIO
##   HEMISFERIO  Freq
## 1          N 19297
## 2          S 10278

3 Agrupación por hemisferio

Se reclasifican los datos en dos categorías generales: Norte y Sur.

library(stringi)
Grupo_S <- stri_startswith_fixed(
  str = TDFHEMISFERIO$HEMISFERIO,
  pattern = "S"
)
TDFHEMISFERIO$HEMISFERIO <- ifelse(Grupo_S, "SUR", "NORTE")
head(TDFHEMISFERIO$HEMISFERIO)
## [1] "NORTE" "SUR"

4 Cálculo de frecuencias por categorías

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

TDFHEMISFERIO$Freq <- as.numeric(as.character(TDFHEMISFERIO$Freq))
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
TDF_ANP_s_n <- Datos$TDFHEMISFERIO
TDF_ANP_s_n <- TDFHEMISFERIO %>%
  group_by(HEMISFERIO) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFHEMISFERIO$Freq)*100, 2))

TDF_ANP_s_n <- data.frame(TDF_ANP_s_n)

5 Inclusión de totales

Se agregan los totales generales de frecuencia absoluta y relativa.

TDF_ANP_s_n <- TDF_ANP_s_n [, c("HEMISFERIO", "ni", "hi")]
total_ni <- sum(TDF_ANP_s_n$ni)
total_hi <- sum(TDF_ANP_s_n$hi)
TDFANPCOMPLETA <- rbind(TDF_ANP_s_n, data.frame(HEMISFERIO = "Total",
                                                ni = total_ni, 
                                                hi = total_hi))
print(TDFANPCOMPLETA)
##   HEMISFERIO    ni     hi
## 1      NORTE 19297  65.25
## 2        SUR 10278  34.75
## 3      Total 29575 100.00

6 Presentación tabular con gt

Se presenta la tabla final en un formato estadístico formal.

library(gt)
gt(TDFANPCOMPLETA) %>%
  tab_header( 
    title = md("**DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Hemisferio de los pozos petrolíferos en Brasil") %>% 
  tab_style(style = list(cell_text(align = "center")), locations = list())
DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL
Hemisferio de los pozos petrolíferos en Brasil
HEMISFERIO ni hi
NORTE 19297 65.25
SUR 10278 34.75
Total 29575 100.00

7 Gráficas

7.1 Histograma de frecuencia absoluta local

Se visualiza la distribución absoluta de los pozos por hemisferio.

TDFANPCOMPLETA<- TDFANPCOMPLETA[TDFANPCOMPLETA$HEMISFERIO != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFANPCOMPLETA$ni,
        main = "Gráfica N°1: Distribución de pozos segun su hemisferio",
        ylab = "Cantidad",
        col = "darkseagreen1", names.arg = TDFANPCOMPLETA$HEMISFERIO,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)
mtext("HEMISFERIO", side = 1, line = 3, adj = 0.5, cex = 1.5)

7.2 Histograma de frecuencia absoluta global

Se muestra la distribución absoluta considerando el total global.

par(mar = c(9, 4, 4, 2))
barplot(TDFANPCOMPLETA$ni,
        main = "Gráfica N°2: Distribución de pozos segun su hemisferio",
        ylab = "Cantidad",
        col = "darkseagreen1", names.arg = TDFANPCOMPLETA$HEMISFERIO,
        las = 1, cex.names = 1, cex.axis = 0.7, cex.main = 1,
        ylim = c(0,30000)) 
mtext("HEMISFERIO", side = 1, line = 3, adj = 0.5, cex = 1.5)

7.3 Histograma de frecuencia relativa local

Se representa la distribución porcentual local.

par(mar = c(9, 4, 4, 2))
barplot(TDFANPCOMPLETA$hi,
        main = "Gráfica N°3: Distribución en porcentaje de pozos segun su hemisferio",
        ylab = "Porcentaje",
        col = "darkseagreen1", names.arg = TDFANPCOMPLETA$HEMISFERIO,
        las = 1, cex.names = 1, cex.axis = 0.7, cex.main = 1)
mtext("HEMISFERIO", side = 1, line = 3, adj = 0.5, cex = 1.5)

7.4 Histograma de frecuencia relativa global

Se representa la distribución porcentual global.

par(mar = c(9, 4, 4, 2))
barplot(TDFANPCOMPLETA$hi,
        main = "Gráfica N°4: Distribución en porcentaje de pozos segun su hemisferio",
        ylab = "Porcentaje",
        col = "darkseagreen1", names.arg = TDFANPCOMPLETA$HEMISFERIO,
        las = 1, cex.names = 1, cex.axis = 0.7, cex.main = 1,
        ylim = c(0,100))
mtext("HEMISFERIO", side = 1, line = 3, adj = 0.5, cex = 1.5)

8 Diagrama circular

Se ilustra la participación porcentual de cada hemisferio.

library(ggplot2)
library(ggrepel)

datos_plot <- TDFANPCOMPLETA 
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
colores <- c("#90CFFF", "#966BFF")
ggplot(datos_plot, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=0, fill=HEMISFERIO)) +
  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 = colores) +
  ggtitle("Gráfica N°5: Distribución porcentual de hemisferios") +
  theme_void()+
  theme(
    legend.position = "right",
    plot.title = element_text(hjust = 0.5),
    legend.background = element_rect(color = "black", 
                                     fill = "white",    
                                     linewidth = 0.5, 
                                     linetype = "solid"
    ), 
    legend.margin = margin(t = 10, r = 10, b = 10, l = 10))

9 Resumen Estadístico

Conclusiones <- data.frame(
Variable = "Hemisferio de los pozos",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Norte",
`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 del Hemisferio de Pozos Petrolíferos en Brasil") %>%
tab_source_note(source_note = "Autor: Benjamin Salazar") %>%
  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 del Hemisferio de 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
Hemisferio de los pozos N/A N/A N/A Norte N/A N/A N/A N/A N/A N/A
Autor: Benjamin Salazar

9.1 Conclusiones

9.1.1 Análisis Descriptivo

La moda de la variable corresponde al hemisferio Norte, lo que indica que la mayor concentración de pozos petrolíferos en Brasil se localiza en dicha región, reflejando una predominancia espacial de la actividad petrolera en el hemisferio norte del país.