Campos de producción de los pozos petrolíferos en Brasil

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

Se obtiene la frecuencia absoluta de pozos perforados por estado.

3 Agrupación de los campos petroleros

Se agrupan los campos en categorías generales según patrones presentes en su denominación.

sum(table(TDFCampo$Campos))
## [1] 542

4 Frecuencias absoluta y relativa

Se calculan las frecuencias absoluta (ni) y relativa (hi) de cada grupo de campos.

TDFCampo$Freq <- as.numeric(as.character(TDFCampo$Freq))
library(dplyr)
TDFCampos <- Datos$TDFCampo
TDFCampos <- TDFCampo %>%
  group_by(Campo) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFCampo$Freq)*100, 4))

TDFCampos <- data.frame(TDFCampos)

5 Construcción del cuadro de resultados

Se presenta el cuadro resumen con los totales de frecuencia absoluta y relativa.

TDFCampos <- TDFCampos [, c("Campo", "ni", "hi")]
TDFCampos$fi <- TDFCampos$ni / sum(TDFCampos$ni)
total_ni <- sum(TDFCampos$ni) 
total_hi <- sum(TDFCampos$hi)
total_fi <- sum(TDFCampos$fi)
TDFCampos1 <- rbind(TDFCampos, data.frame( Campo = "Total",
                                                ni = total_ni,
                                                hi = total_hi,
                                                fi = total_fi))
print(TDFCampos1)
##                     Campo    ni       hi          fi
## 1        Campos fluviales   790   2.6712 0.026711750
## 2        Campos insulares   130   0.4396 0.004395604
## 3        Campos lacustres   292   0.9873 0.009873204
## 4          Campos marinos  3904  13.2003 0.132003381
## 5 Extensiones geograficas   531   1.7954 0.017954353
## 6            Otros campos 23928  80.9062 0.809061708
## 7                   Total 29575 100.0000 1.000000000

6 Presentación tabular con formato

Se genera una tabla formal utilizando el paquete gt.

library(gt)
gt(TDFCampos1) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Campos de Producción de los Pozos Petrolíferos") %>%  
    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(TDFCampos1))
  ) %>%
  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
Campos de Producción de los Pozos Petrolíferos
Campo ni
Frecuencia Relativa
Porcentual (%) Fracción
Campos fluviales 790 2.67 0.0267
Campos insulares 130 0.44 0.0044
Campos lacustres 292 0.99 0.0099
Campos marinos 3904 13.20 0.1320
Extensiones geograficas 531 1.80 0.0180
Otros campos 23928 80.91 0.8091
Total 29575 100.00 1.0000

7 Gráficas

7.1 Histograma de frecuencia absoluta local

Se muestra la distribución en cantidad de campos petroleros por grupo a nivel local.

TDFCampos1 <- TDFCampos1[TDFCampos1$Campo != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFCampos1$ni,
        main = "Gráfica N°1: Distribución en cantidad de campos petroleros por grupo",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFCampos1$Campo,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Campos", side = 1, line = 7)

7.2 Histograma de frecuencia absoluta global

Se presenta la distribución en cantidad de campos petroleros por grupo a nivel global.

par(mar = c(9, 4, 4, 2))
barplot(TDFCampos1$ni,
        main = "Gráfica N°2: “Distribución en cantidad de campos petroleros por grupo",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFCampos1$Campo,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,30000)) 
mtext("Campos", side = 1, line = 7)

7.3 Histograma de frecuencia relativa local

Se muestra la distribución porcentual de campos petroleros por grupo a nivel local.

par(mar = c(9, 4, 4, 2))
barplot(TDFCampos1$hi,
        main = "Gráfica N°3: Distribución porcentual de campos petroleros por grupo",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFCampos1$Campo,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Campos", side = 1, line = 7)

7.4 Histograma de frecuencia relativa global

Se presenta la distribución porcentual de campos petroleros por grupo a nivel global.

par(mar = c(9, 4, 4, 2))
barplot(TDFCampos1$hi,
        main = "Gráfica N°4: Distribución porcentual de campos petroleros por grupo",
        ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFCampos1$Campo,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1,
        ylim = c(0,100))
mtext("Campos", side = 1, line = 7)

7.5 Diagrama circular

Se representa gráficamente la distribución porcentual de los campos petroleros por grupo.

library(ggplot2)
library(ggrepel)
datos_plot <- TDFCampos1
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("#0D47A1", "#1565C0","#1976D2", "#1E88E5", "#64B5F6", "#90CAF9")
ggplot(datos_plot, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=2, fill=Campo)) +
  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 campos petroleros por grupo") +
  theme_void() + 
  theme(legend.position = "right", 
        plot.title = element_text(hjust = 0))

8 Resumen Estadístico

Conclusiones <- data.frame(
Variable = "Campos de producción",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Otros Campos",
`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 Campos de Producció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 Campos de Producció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
Campos de producción N/A N/A N/A Otros Campos N/A N/A N/A N/A N/A N/A
Autor: Caleb Yanez

9 Conclusiones

9.1 Análisis Descriptivo

La distribución de los campos de producción de los pozos petrolíferos en Brasil muestra una clara predominancia de la categoría Otros campos, la cual constituye la moda de la variable analizada. Esto evidencia una alta diversidad en la denominación y clasificación de los campos, sin una concentración marcada en una única categoría específica.