Bloques de Concesión

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

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

2 Tabla de distribuciòn de frecuencia

Aquí se obtiene la frecuencia absoluta de los diferentes estados operativos de los pozos.

3 Agrupación de la variable Bloco por Regiones Geográficas

Los bloques de concesión se agrupan según su denominación en regiones geográficas de Brasil, con el fin de facilitar un análisis espacial agregado.

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 Frecuencias absoluta y relativa

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

5 Construcción del cuadro con totales

Se incorpora una fila de totales a la tabla de frecuencias para consolidar la información y facilitar su interpretación estadística.

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

6 Presentación tabular formateada

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

7 Gráficas

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

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

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

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

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

8 Cuadro de conclusiones y estadísticos

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

9 Conclusiones

9.1 Análisis Descriptivo

Dentro del conjunto de datos, la distribución de los bloques de concesión por ubicación evidencia como ubicación más frecuente a la categoría “Campos Maduros/Genéricos”; esta alta concentración indica que dicha categoría constituye la moda de la variable.