Formacion al final del pozo `

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

1 Carga de librerias y de datos para estudio

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

2 Tabla de distribuciòn de frecuencia

Se realiza un conteo general para determinar cuántas formaciones distintas existen antes de su organización

3 Agrupación y reasignación de nombres de la formación al final del pozo

Se realiza la traducción de los nombres técnicos, la identificación de datos faltantes y la agrupación de los registros

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 Cálculo de frecuencias por grupo

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

5 Construcción del cuadro con totales

Se organizan las columnas finales y se añade una fila de ‘Total’ para garantizar que el análisis represente el 100% de los datos

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

6 Presentación tabular

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

7 Gráficas

7.1 Histograma de 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)

7.2 Histograma de 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)

7.3 Histograma de 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)

7.4 Histograma de 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)

7.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)
  )

8 Cuadro de conclusiones y estadísticos

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

9 Conclusiones

9.1 Análisis Descriptivo

El análisis de la formación al final de los pozos muestra que la categoría modal es ‘Sin Información’, lo que indica una alta proporción de registros sin detalle técnico de la roca final. Al agrupar en cinco categorías, se observa una distribución heterogénea entre formaciones específicas como Açu o Ubatuba y un conjunto de ‘Otras Formaciones’. Al ser una variable cualitativa, el análisis se basa únicamente en frecuencias y porcentajes