Formacion al final del pozo `

1 Carga de Librerias

En esta sección se incorporan las librerías necesarias para facilitar la manipulación y el análisis de los datos.

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

2 Carga de datos

Se procede a la preparación de las herramientas de trabajo y a la apertura del archivo con la base de datos de los pozos petroleros de Brasil

3 Extraer la variable

En esta sección se extrae la variable correspondiente a las formaciones geológicas finales de la base de datos para su posterior análisis.

library(dplyr)
library(forcats)

TDF_Agrupada_F <- Datos %>%
  mutate(GEOFF_Agrupado = ifelse(GEOLOGIA_FORMACAO_FINAL == "" | is.na(GEOLOGIA_FORMACAO_FINAL), 
                                 "Sin Información", 
                                 GEOLOGIA_FORMACAO_FINAL)) %>%
  mutate(GEOFF_Agrupado = recode(GEOFF_Agrupado, 
                                 "Embasamento"     = "Roca Base",
                                 "Açu"             = "Form. Açu",
                                 "Pendência"       = "Form. Pendencia",
                                 "Ubatuba"         = "Form. Ubatuba",
                                 "Sergi"           = "Form. Sergi",
                                 "Urucutuca"       = "Form. Urucutuca",
                                 "Carapebus"       = "Form. Carapebus",
                                 "Barra de Itiuba" = "Barra de Itiúba",
                                 "São Mateus"      = "Form. San Mateo")) %>%
  # Agrupamos en 4 principales + 1 "Otras" = 5 grupos en total
  mutate(GEOFF_Agrupado = fct_lump_n(GEOFF_Agrupado, n = 4, other_level = "Otras Formaciones")) %>%
  count(GEOFF_Agrupado, name = "Freq")

print(TDF_Agrupada_F)
##      GEOFF_Agrupado  Freq
## 1         Form. Açu  1133
## 2     Form. Ubatuba   257
## 3         Roca Base   748
## 4   Sin Información 24630
## 5 Otras Formaciones  2807

4 Conteo

Calcula la cantidad exacta de pozos y el porcentaje que representa cada grupo sobre el total nacional.

TDF_Agrupada_F$GEOFF_Agrupado <- as.character(TDF_Agrupada_F$GEOFF_Agrupado)

TDF_Agrupada_F1<- TDF_Agrupada_F %>%
  group_by(GEOFF_Agrupado) %>%
  summarise(
    ni = sum(Freq),
    hi = round(ni / sum(TDF_Agrupada_F$Freq) * 100, 2)) %>%
  arrange(desc(ni))

TDF_Agrupada_F1 <- as.data.frame(TDF_Agrupada_F1)
TDF_Agrupada_F1
##      GEOFF_Agrupado    ni    hi
## 1   Sin Información 24630 83.28
## 2 Otras Formaciones  2807  9.49
## 3         Form. Açu  1133  3.83
## 4         Roca Base   748  2.53
## 5     Form. Ubatuba   257  0.87
TDF_Agrupada_F1$fi <- TDF_Agrupada_F1$ni / sum(TDF_Agrupada_F1$ni)
colnames(TDF_Agrupada_F1)[colnames(TDF_Agrupada_F1) == "GEOFF_Agrupado"] <- "Forma_Geo_Final"
TDF_Agrupada_F1 <- TDF_Agrupada_F1[, c("Forma_Geo_Final", "ni", "hi","fi")]
total_ni <- sum(TDF_Agrupada_F1$ni) 
total_hi <- sum((TDF_Agrupada_F1$hi))
total_fi <- sum((TDF_Agrupada_F1$fi))
TDF_Agrupada_F1.1 <- rbind(TDF_Agrupada_F1, data.frame( Forma_Geo_Final = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi,
                                                          fi = total_fi))
print(TDF_Agrupada_F1.1)
##     Forma_Geo_Final    ni     hi          fi
## 1   Sin Información 24630  83.28 0.832797971
## 2 Otras Formaciones  2807   9.49 0.094911243
## 3         Form. Açu  1133   3.83 0.038309383
## 4         Roca Base   748   2.53 0.025291631
## 5     Form. Ubatuba   257   0.87 0.008689772
## 6             Total 29575 100.00 1.000000000

5 Tabla de frecuencia

library(gt)
gt(TDF_Agrupada_F1.1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Distibución de Formación al final del pozo 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(TDF_Agrupada_F1.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
Distibución de Formación al final del pozo de los pozos petrolíferos en Brasil
Forma_Geo_Final ni
Frecuencia Relativa
Porcentual (%) Fracción
Sin Información 24630 83.28 0.8328
Otras Formaciones 2807 9.49 0.0949
Form. Açu 1133 3.83 0.0383
Roca Base 748 2.53 0.0253
Form. Ubatuba 257 0.87 0.0087
Total 29575 100.00 1.0000

6 Gráficas

6.1 Diagrama de barras frecuencia absoluta local

Se representan los datos numéricos mediante gráficos de barras y circulares para identificar tendencias de forma visual

TDF_Agrupada_F_g <- TDF_Agrupada_F1[TDF_Agrupada_F1$Forma_Geo_Final != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDF_Agrupada_F_g$ni,
        main = "Gráfica N°1: Distribución de pozos petrolíferos por Formación\nal final del pozo ",
        ylab = "Cantidad",
        col = "#263238", names.arg = TDF_Agrupada_F_g$Forma_Geo_Final,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Grupo", side = 1, line = 7)

6.2 Diagrama de barras frecuencia absoluta global

par(mar = c(9, 4, 4, 2))
barplot(TDF_Agrupada_F_g$ni,
        main = "Gráfica N°2: Distribución de pozos petrolíferos por\nFormación al final del pozo",
        ylab = "Cantidad",
        col = "#263238", names.arg = TDF_Agrupada_F_g$Forma_Geo_Final,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,30000))
        mtext("Grupo", side = 1, line = 7)

6.3 Diagrama de barras frecuencia relativa local

par(mar = c(9, 4, 4, 2))
barplot(TDF_Agrupada_F_g$hi,
        main = "Gráfica N°3: Distribución porcentual de pozos petrolíferos por\nFormación al final del pozo",
        ylab = "Porcentaje",
        col = "#263238", names.arg = TDF_Agrupada_F_g$Forma_Geo_Final,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
        mtext("Grupo", side = 1, line = 7)

6.4 Diagrama de barras frecuencia relativa global

par(mar = c(9, 4, 4, 2))
barplot(TDF_Agrupada_F_g$hi,
        main = "Gráfica N°4: Distribución porcentual de pozos petrolíferos por\nFormación al final del pozo",
        ylab = "Porcentaje",
        col = "#263238", names.arg = TDF_Agrupada_F_g$Forma_Geo_Final,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,100))
        mtext("Grupo", side = 1, line = 7)

6.5 Diagrama circular

library(ggplot2)
library(ggrepel)

datos_plot <- TDF_Agrupada_F_g

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

ggplot(datos_plot, aes(ymax = ymax, ymin = ymin,
                        xmax = 4, xmin = 1,
                        fill = Forma_Geo_Final)) +
  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_brewer(palette = "Blues") +
  ggtitle("Gráfica N°5: Distribución porcentual de pozos petrolíferos por\nFormación al final del pozo") +
  theme_void() +
  theme(
    legend.position = "right",
    plot.title = element_text(hjust = 0),
    legend.background = element_rect(color = "black", fill = "white", linewidth = 0.5),
    legend.margin = margin(10, 10, 10, 10)
  )

7 Indicadores Estádistico

Conclusiones <- data.frame(
Variable = "Formación al Final del Pozo",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Sin Información",
`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 Formación al Final del Pozode los Pozos Petroleros en Brasil") %>%
tab_source_note(source_note = "Autor: Caleb Yanez") %>%
  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 Formación al Final del Pozode los Pozos Petroleros 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
Formación al Final del Pozo N/A N/A N/A Sin Información N/A N/A N/A N/A N/A N/A
Autor: Caleb Yanez

8 Conclusión

El valor más frecuente de Formación al Final del Pozo es Sin Información.