Distribución de pozos petroleros marinos y terrestres 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 Importación de datos

Se carga el archivo CSV y se verifica su estructura para confirmar el tipo de variables presentes.

2 Construcción de la tabla de distribución inicial

Se obtiene la variable TERRA_MAR y se genera la tabla base de frecuencias.

Ubicación <- Datos$TERRA_MAR
TDFUbicación <- as.data.frame(table(Ubicación))
TDFUbicación
##   Ubicación  Freq
## 1         M  6649
## 2         T 22926

3 Creación de la clasificación Mar–Tierra

Se recodifican los valores “M” y “T” a sus descripciones correspondientes.

library(dplyr)
TDFUbicación$Sitio <- ifelse(TDFUbicación$Ubicación %in% c("M"), "Mar", 
                             ifelse(TDFUbicación$Ubicación %in% c("T"), "Tierra", NA))
head(TDFUbicación$Sitio)
## [1] "Mar"    "Tierra"

4 Conversión de frecuencias y agrupación por categoría

Se convierte la frecuencia a numérica y se obtiene ni y hi por sitio.

TDFUbicación$Freq <- as.numeric(as.character(TDFUbicación$Freq))
library(dplyr)
TDFUbicación1 <- Datos$TDFUbicación
TDFUbicación1 <- TDFUbicación %>%
  group_by(Sitio) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFUbicación$Freq)*100, 4))

TDFUbicación1 <- data.frame(TDFUbicación1)

5 Incorporación de fila de totales

Se agregan los totales de frecuencia absoluta y relativa.

TDFUbicación1$fi <- TDFUbicación1$ni / sum(TDFUbicación1$ni)

fila_total <- data.frame(Sitio = "Total",
  ni = sum(TDFUbicación1$ni),
  hi = sum(TDFUbicación1$hi),
  fi = sum(TDFUbicación1$fi))
TDFUbicacióncompleta <- rbind(TDFUbicación1, fila_total)

print(TDFUbicacióncompleta)
##    Sitio    ni       hi        fi
## 1    Mar  6649  22.4818 0.2248183
## 2 Tierra 22926  77.5182 0.7751817
## 3  Total 29575 100.0000 1.0000000

6 Construcción del cuadro final mediante gt

Se genera la tabla final con título y subtítulo formales.

library(gt)
gt(TDFUbicacióncompleta) %>%
  tab_header( 
    title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"), 
    subtitle = "Clasificación de los pozos petrolíferos según ubicación (mar y tierra)") %>%  
    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(TDFUbicacióncompleta))
  ) %>%
  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
Clasificación de los pozos petrolíferos según ubicación (mar y tierra)
Sitio ni
Frecuencia Relativa
Porcentual (%) Fracción
Mar 6649 22.48 0.2248
Tierra 22926 77.52 0.7752
Total 29575 100.00 1.0000

7 Gráficas

7.1 Histograma de frecuencia absoluta local (ni)

Representa la cantidad interna de pozos según sitio.

TDFUbicaciónfinal <- TDFUbicacióncompleta[TDFUbicacióncompleta$Sitio != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFUbicaciónfinal$ni,
        main = "Gráfico No. 1. Distribución de cantidad local de la ubicación de los pozos",
        xlab = "Sitio" , ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFUbicaciónfinal$Sitio,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)

7.2 Histograma de frecuencia absoluta global (ni)

Presenta la cantidad de pozos a escala ampliada.

par(mar = c(9, 4, 4, 2))
barplot(TDFUbicaciónfinal$ni,
        main = "Gráfico No. 2. Distribución de cantidad global de la ubicación de los pozos", 
        xlab = "Sitio", ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFUbicaciónfinal$Sitio,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 0.99,
        ylim = c(0,30000)) 

7.3 Histograma de frecuencia porcentual local (hi)

Representa la proporción interna por sitio.

par(mar = c(9, 4, 4, 2))
barplot(TDFUbicaciónfinal$hi,
        main = "Gráfico No. 3. Distribución porcentual local de la ubicación de los pozos",
        xlab = "Sitio", ylab = "Porcentaje",
        col = "#2E4053", names.arg = TDFUbicaciónfinal$Sitio,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)

7.4 Histograma de frecuencia porcentual global (hi)

Representa las proporciones a escala global.

barplot(TDFUbicaciónfinal$hi,
        main = "Gráfico No. 4. Distribución porcentual global de la ubicación de los pozos",
        xlab = "Sitio", ylab = "Porcentaje", ylim = c(0,100),
        col = "#2E4053", names.arg = TDFUbicaciónfinal$Sitio,
        las = 1, cex.names = 1, cex.axis = 0.8, cex.main = 1)

7.5 Diagrama circular de frecuencias relativas

Muestra la composición porcentual de cada sitio.

par(mar = c(6, 4, 8, 4))
pie(TDFUbicaciónfinal$hi, 
    main = "Gráfico No. 5. Distribución porcentual de la ubicación de los pozos", 
    radius = 0.9,
    labels = paste0(round(TDFUbicaciónfinal$hi,2)),
    col = c("#FFFFE5", "#ADDD8E"),
    cex.main = 0.95,
    init.angle = 90)

legend(x = -2, y =1,
       legend = TDFUbicaciónfinal$Sitio,
       fill = c("#FFFFE5", "#ADDD8E"),
       cex = 1,
       title = "Sitio")

8 Resumen Estadístico

8.1 Ordenamiento de la ubicación de los pozos según facilidad operativa

Las categorías se ordenan según la facilidad técnica y logística de explotación, priorizando los pozos terrestres frente a los marinos, debido a menores costos operativos y mayor accesibilidad.

`

Conclusiones <- data.frame(
Variable = "Ubicación de pozos M-T",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Definitiva",
`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 las ubicaciones de los pozos Marinos y Terrestres") %>%
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 las ubicaciones de los pozos Marinos y Terrestres
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
Ubicación de pozos M-T N/A N/A N/A Definitiva N/A N/A N/A N/A N/A N/A
Autor: Caleb Yanez

9 Conclusiones

9.1 Análisis Descriptivo

La moda corresponde a la categoría Tierra, lo que evidencia que la mayoría de los pozos petrolíferos en Brasil se localizan en zonas terrestres, asociadas a una mayor facilidad de explotación y menor complejidad operativa.