Grupos Geológicos

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 Datos

Se importan los datos originales de pozos petrolíferos y se verifica la estructura de las variables para garantizar su correcta lectura.

2 Tabla de distribución de frecuencia

Se construye la tabla de frecuencias absolutas de la variable Geología grupo final, identificando la presencia de cada unidad geológica.

3 Agrupación geológica

Las unidades geológicas se reclasifican en grupos mayores según su naturaleza geológica, reduciendo la dispersión categórica sin pérdida de información.

library(dplyr)
TDFGrupos_Finales$Grupo_Geologico <- ifelse(
  TDFGrupos_Finales$Geologia %in% c(
    "Apodi","Campos","Camamu","Espírito Santo","Sergipe","Lagoa Feia",
    "Macaé","Guaratiba","Almada","Humberto de Campos","Balsas",
    "Coruripe","Santo Amaro","Frade","Nativo","Perucaba","Areia Branca",
    "Canindé","Marimari","Estância","Massacará","Brotas"
  ), "Cuencas sedimentarias",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Bambuí","Itararé","Serra Grande","Paranoá","Macaúbas"
  ), "Formaciones",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Espinhaço"
  ), "Provincias",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Barra Nova","Camburi","Itamambuca","Ilhas","Piaçabuçu"
  ), "Ambientes costeros",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Purus","Tefé","Trombetas","Rio do Peixe","Rio Ivaí","Urupadi"
  ), "Sistemas fluviales",

  ifelse(TDFGrupos_Finales$Geologia %in% c(
    "Pará","Paraná"
  ), "Regiones administrativas",
  
  "Otros/Locales"
))))))

head(TDFGrupos_Finales)
##       Geologia  Freq       Grupo_Geologico
## 1              25521         Otros/Locales
## 2    Afligidos    17         Otros/Locales
## 3       Agulha     7         Otros/Locales
## 4       Almada     6 Cuencas sedimentarias
## 5        Apodi  1144 Cuencas sedimentarias
## 6 Areia Branca   272 Cuencas sedimentarias

4 Cálculo de frecuencias por grupo

Se calculan la frecuencia absoluta (ni) y la frecuencia relativa (hi) para cada grupo geológico, permitiendo el análisis comparativo.

TDFGrupos_Finales$Freq <- as.numeric(TDFGrupos_Finales$Freq)

TDFGrupos_Finales1 <- TDFGrupos_Finales %>%
  group_by(Grupo_Geologico) %>%
  summarise(
    ni = sum(Freq),
    hi = round(ni / sum(TDFGrupos_Finales$Freq) * 100, 2))

TDFGrupos_Finales1 <- as.data.frame(TDFGrupos_Finales1)
TDFGrupos_Finales1
##            Grupo_Geologico    ni    hi
## 1       Ambientes costeros   294  0.99
## 2    Cuencas sedimentarias  3601 12.18
## 3              Formaciones    35  0.12
## 4            Otros/Locales 25555 86.41
## 5               Provincias    13  0.04
## 6 Regiones administrativas     2  0.01
## 7       Sistemas fluviales    75  0.25

5 Construcción del cuadro con totales

Se incorpora una fila de totales para verificar la consistencia de los resultados y confirmar el 100 % de participación relativa.

TDFGrupos_Finales1$fi <- TDFGrupos_Finales1$ni / sum(TDFGrupos_Finales1$ni)
TDFGrupos_Finales1 <- TDFGrupos_Finales1 [, c("Grupo_Geologico", "ni", "hi","fi")]
total_ni <- sum(TDFGrupos_Finales1$ni) 
total_hi <- 100
total_fi <- sum(TDFGrupos_Finales1$fi) 

TDFGrupos_Finales1.1 <- rbind(TDFGrupos_Finales1, data.frame( Grupo_Geologico = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi,
                                                          fi = total_fi))
print(TDFGrupos_Finales1.1)
##            Grupo_Geologico    ni     hi           fi
## 1       Ambientes costeros   294   0.99 9.940828e-03
## 2    Cuencas sedimentarias  3601  12.18 1.217582e-01
## 3              Formaciones    35   0.12 1.183432e-03
## 4            Otros/Locales 25555  86.41 8.640744e-01
## 5               Provincias    13   0.04 4.395604e-04
## 6 Regiones administrativas     2   0.01 6.762468e-05
## 7       Sistemas fluviales    75   0.25 2.535926e-03
## 8                    Total 29575 100.00 1.000000e+00

6 Presentación tabular con formato

Los resultados se presentan en una tabla estadística formateada, facilitando la lectura e interpretación de las frecuencias.

library(gt)
gt(TDFGrupos_Finales1.1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Distibución de grupos geológicos 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(TDFGrupos_Finales1.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 grupos geológicos de los pozos petrolíferos en Brasil
Grupo_Geologico ni
Frecuencia Relativa
Porcentual (%) Fracción
Ambientes costeros 294 0.99 0.0099
Cuencas sedimentarias 3601 12.18 0.1218
Formaciones 35 0.12 0.0012
Otros/Locales 25555 86.41 0.8641
Provincias 13 0.04 0.0004
Regiones administrativas 2 0.01 0.0001
Sistemas fluviales 75 0.25 0.0025
Total 29575 100.00 1.0000

6.1 Histograma de frecuencia absoluta local (ni)

Representa la cantidad de pozos en cada grupo geológico sin considerar el total nacional.

TDFGrupos_Finales2 <- TDFGrupos_Finales1.1[TDFGrupos_Finales1.1$Grupo_Geologico != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$ni,
        main = "Gráfica N°1: Distribución en orden de cantidad de pozos petrolíferos por grupo geológico",
        ylab = "Cantidad",
        col = "#263238", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Grupo", side = 1, line = 7)

6.2 Histograma de frecuencia absoluta global (ni)

Muestra la concentración total de pozos petrolíferos por grupo geológico a escala nacional.

par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$ni,
        main = "Gráfica N°2: Distribución en orden de cantidad de pozos petrolíferos por grupo geológico",
        ylab = "Cantidad",
        col = "#263238", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
        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 Histograma de frecuencia relativa local (hi)

Expresa la participación porcentual de cada grupo en el conjunto analizado.

par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$hi,
        main = "Gráfica N°3: Distribución porcentual de pozos petrolíferos por grupo geológico",
        ylab = "Porcentaje",
        col = "#263238", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
        mtext("Grupo", side = 1, line = 7)

6.4 Histograma de frecuencia relativa global (hi)

Permite comparar el peso relativo de cada grupo geológico dentro del total nacional.

par(mar = c(9, 4, 4, 2))
barplot(TDFGrupos_Finales2$hi,
        main = "Gráfica N°4: Distribución porcentual de pozos petrolíferos por grupo geológico",
        ylab = "Porcentaje",
        col = "#263238", names.arg = TDFGrupos_Finales2$Grupo_Geologico,
        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

Visualiza de forma proporcional la participación de cada grupo geológico en el total de pozos.

library(ggplot2)
library(ggrepel)

datos_plot <- TDFGrupos_Finales2

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 = Grupo_Geologico)) +
  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 los pozos petrolíferos según grupo geológico") +
  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 Cuadro de conclusiones y estadísticos

Conclusiones <- data.frame(
Variable = "Grupo geológico",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Otros/Locales",
`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 los Grupos Geológicos de 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 los Grupos Geológicos de 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
Grupo geológico N/A N/A N/A Otros/Locales N/A N/A N/A N/A N/A N/A
Autor: Caleb Yanez

8 Conclusiones

8.1 Análisis Descriptivo

El análisis de la variable grupo geológico evidencia que la moda corresponde a “Otros/Locales”, lo que indica una alta diversidad de unidades geológicas con baja frecuencia individual. Esta concentración en la moda refleja una distribución heterogénea, característica de variables cualitativas nominales, donde no es pertinente el cálculo de media, mediana o dispersión. En términos geológicos, esto sugiere que la actividad petrolera no se restringe a un único tipo de unidad dominante, sino que se distribuye en múltiples contextos geológicos.