Bloques de Concesión

1 Carga de Librerias

Se cargan las librerías necesarias para ejecutar las funciones empleadas en el procesamiento, organización y 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 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.

3 Extraer la variable

En esta sección se extrae la variable correspondiente a los bloques de la base de datos para su posterior análisis.

TDFBloque$Region <- ifelse(is.na(TDFBloque$Bloque), "Sin información",
  ifelse(grepl("^(POT|BPOT|REC|BREC|SEAL|BA|BT|PN|CE|AR|AL|SE|AG|RC|RP)", TDFBloque$Bloque), "Nordeste",
    ifelse(grepl("^(BC|BS|ES|C-M|S-M|BM|BES|TUPI|LIBRA|LULA|BUZIOS|IARA|SP|RJ|CM|CF|CR)", TDFBloque$Bloque), "Sudeste",
        ifelse(grepl("^(AM|SOL|FZA|AC|SF|SO)", TDFBloque$Bloque), "Norte",
            ifelse(TDFBloque$Bloque %in% c("Brasil", "CP", "CAM", "ET", "RO", "FZB", "ARG", "MG", "DJM", "FP", "SZ", "FBM", "PIR", "CS"), "Campos Maduros/Genérico", "Otros")))))
TDFBloque$Region[TDFBloque$Region == "Sin información"] <- "Otros"
head(TDFBloque$Region)
## [1] "Otros"    "Otros"    "Otros"    "Otros"    "Otros"    "Nordeste"

4 Conteo

Se obtienen las frecuencias absoluta (ni) y relativa (hi) de los bloques agrupados por región, expresando esta última en porcentaje respecto del total.

TDFBloque$Freq <- as.numeric(as.character(TDFBloque$Freq))
library(dplyr)
TDFBloque_ <- Datos$TDFBloque
TDFBloque_ <- TDFBloque %>%
  group_by(Region) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFBloque$Freq)*100, 2))

TDFBloque_ <- data.frame(TDFBloque_)
TDFBloque_ <- TDFBloque_ [, c("Region", "ni", "hi")]
TDFBloque_$fi <- TDFBloque_$ni / sum(TDFBloque_$ni)
total_ni <- sum(TDFBloque_$ni) 
total_hi <- 100 
total_fi <- sum(TDFBloque_$fi) 
TDFBloque_1 <- rbind(TDFBloque_, data.frame(Region = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi,
                                                          fi = total_fi))
print(TDFBloque_1)
##                    Region    ni     hi          fi
## 1 Campos Maduros/Genérico 12633  42.72 0.427151310
## 2                Nordeste  3538  11.96 0.119628064
## 3                   Norte    68   0.23 0.002299239
## 4                   Otros 11654  39.40 0.394049028
## 5                 Sudeste  1682   5.69 0.056872358
## 6                   Total 29575 100.00 1.000000000

5 Tabla de frecuencia

Se presenta la tabla final mediante un formato profesional utilizando la librería gt, optimizando la visualización y legibilidad de los resultados.

library(gt)
gt(TDFBloque_1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Distribución de los Bloques de Concesión por Ubicación") %>%  
    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(TDFBloque_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
Distribución de los Bloques de Concesión por Ubicación
Region ni
Frecuencia Relativa
Porcentual (%) Fracción
Campos Maduros/Genérico 12633 42.72 0.4272
Nordeste 3538 11.96 0.1196
Norte 68 0.23 0.0023
Otros 11654 39.40 0.3940
Sudeste 1682 5.69 0.0569
Total 29575 100.00 1.0000

6 Gráficas

6.1 Diagrama de barras frecuencia absoluta local (ni)

El histograma muestra la cantidad de bloques por región sin considerar el total, permitiendo comparar visualmente las categorías.

TDFBloque_2 <- TDFBloque_1[TDFBloque_1$Region!= "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFBloque_2$ni,
        main = "Gráfica N°1: Distribución en cantidad de los bloques de concesión por ubicación",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFBloque_2$Region,
        las = 2, cex.names = 0.79, cex.axis = 0.8, cex.main = 1)
mtext("Región", side = 1, line = 7)

6.2 Diagrama de barras frecuencia absoluta global (ni)

Se amplía la escala del eje vertical para resaltar regiones con mayor concentración de bloques de concesión.

par(mar = c(9, 4, 4, 2))
barplot(TDFBloque_2$ni,
        main = "Gráfica N°1: Distribución en cantidad de los bloques de concesión por ubicación",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFBloque_2$Region,
        las = 2, cex.names = 0.79, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,30000)) 
mtext("Región", side = 1, line = 7)

6.3 Diagrama de barras frecuencia relativa local (hi)

Este gráfico representa el peso porcentual de cada región respecto del total de bloques analizados.

par(mar = c(9, 4, 4, 2))
barplot(TDFBloque_2$hi,
        main = "Gráfica N°3: Distribución en porcentaje de los bloques de concesión por ubicación",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFBloque_2$Region,
        las = 2, cex.names = 0.79, cex.axis = 0.8, cex.main = 1)
mtext("Región", side = 1, line = 7)

6.4 Diagrama de barras frecuencia relativa global (hi)

Se ajusta el eje vertical al 100 % para una interpretación directa de la participación relativa de cada región.

par(mar = c(9, 4, 4, 2))
barplot(TDFBloque_2$hi,
        main = "Gráfica N°4: Distribución en porcentaje de los bloques de concesión por ubicación",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFBloque_2$Region,
        las = 2, cex.names = 0.79, cex.axis = 0.8, cex.main = 1)
mtext("Región", side = 1, line = 7)

6.5 Diagrama circular

El diagrama circular muestra la proporción de bloques por región, facilitando la identificación de las zonas predominantes.

library(ggplot2)
library(ggrepel)
TDFBloque_2 <- TDFBloque_2[TDFBloque_2$Region != "Otros", ]
datos_plot <- TDFBloque_2
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("#B0B8C1", "#D9E0E6", "#1F3B6E", "#4C6BA7", "#7D9BC8")

ggplot(datos_plot, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=2, fill=Region)) +
  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 los bloques de concesión por ubicación") +
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))

7 Indicadores Estádistico

Conclusiones <- data.frame(
Variable = "Bloques por Ubicación",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Campos Maduros/Genéricos",
`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 Bloques de Concesión por Ubicación  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 Bloques de Concesión por Ubicación 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
Bloques por Ubicación N/A N/A N/A Campos Maduros/Genéricos N/A N/A N/A N/A N/A N/A
Autor: Caleb Yanez

8 Conclusión

El valor más frecuente de Bloques por Ubicación es Campos Maduros/Genéricos.