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

1 Carga de Librerias

En esta sección se cargan las librerías necesarias para realizar el procesamiento 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 campos petrolíferos de la base de datos para su posterior análisis.

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

4 Conteo

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

5 Tabla de frecuencia

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

6 Gráficas

6.1 Diagrama de barras 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)

6.2 Diagrama de barras 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)

6.3 Diagrama de barras 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)

6.4 Diagrama de barras 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)

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

7 Indicadores Estádistico

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

8 Conclusión

El valor más frecuente de Campos de producción es Otros Campos.