Análisis Estadístico de la Clasificación de Pozos Petroleros en Brasil

Introducción

La industria petrolera representa una actividad estratégica para el desarrollo energético de varios países. En este trabajo se analiza la clasificación general de los pozos petroleros en Brasil mediante técnicas de estadística descriptiva. Para ello se utilizan tablas de frecuencia y representaciones gráficas que permiten interpretar la distribución de las distintas categorías de pozos.

1 Librerias

library(dplyr)
library(gt)

2 Cargar datos

La evaluación cuantitativa arranca con la lectura del documento matriz. Este paso conserva el formato original de los registros, facilitando la integración de los parámetros operativos. Respetar la disposición inicial de la información es fundamental para mantener la coherencia del análisis.

3 Extrae la variable

Para focalizar el análisis estadístico, se aísla la variable categórica de interés principal. En este caso, se extrae la clasificación general del pozo, lo que permite estructurar los datos de forma aislada para su posterior conteo y tabulación.

clasif_pozo <-Datos$CATEGORIA
TDFClasificación_G <- as.data.frame(table(clasif_pozo))
TDFClasificación_G

4 Conteo

En esta etapa se realiza la tabulación inicial de la variable extraída. Dado que las categorías originales provienen de una nomenclatura específica en portugués, se aplica un proceso de traducción. Adicionalmente, se ejecuta una re-clasificación agrupando los tipos de pozos en niveles más representativos para enriquecer y simplificar la interpretación.

TDFClasificación_G$clasif_pozo <- recode(TDFClasificación_G$clasif_pozo,
"Desenvolvimento"      = "Desarrollo",
"Especial"             = "Especial",
"Estratigráfico"       = "Estratigráfico",
"Extensão"             = "Extensión",
"Injeção"              = "Inyección",
"Jazida Mais Profunda" = "Yacimiento más profundo",
"Jazida Mais Rasa"     = "Yacimiento más somero",
"Pioneiro"             = "Pionero",
"Pioneiro Adjacente"   = "Pionero adyacente"
)
head(TDFClasificación_G)

4.1 Agrupación de categorías

Las clasificaciones se agrupan en categorías más generales para simplificar el análisis estadístico.

  • Desarrollo de Campo ← Desarrollo, Extensión
  • Descubrimiento ← Pionero, Pionero adyacente
  • Operación ← Especial, Inyección
  • Tipo de yacimiento ← Estratigráfico, Yacimiento más somero, Yacimiento más profundo
TDFClasificación_G$Clasificación <- ifelse(TDFClasificación_G$clasif_pozo %in% c("Desarrollo","Extensión"),
                                             "Desarrollo de Campo",
                                             ifelse(TDFClasificación_G$clasif_pozo %in% c("Pionero","Pionero adyacente"),"Descubrimiento",
                                                    ifelse(TDFClasificación_G$clasif_pozo %in% c("Especial","Inyección"),"Operación",
                                                           ifelse(TDFClasificación_G$clasif_pozo %in% c("Estratigráfico", "Yacimiento más somero", "Yacimiento más profundo"), "Tipo de yacimiento","Otros"))))
head(TDFClasificación_G$Clasificación)
## [1] "Desarrollo de Campo" "Operación"           "Tipo de yacimiento" 
## [4] "Desarrollo de Campo" "Operación"           "Tipo de yacimiento"

5 Tabla de frecuencia

La consolidación de los datos procesados se presenta a través de una tabla de distribución de frecuencias. Esta matriz resume las frecuencias absolutas y relativas (en formato fraccional y porcentual), proporcionando una visión cuantitativa clara y estructurada de cómo se distribuyen los pozos petrolíferos.

TDFClasificación_G$Freq <- as.numeric(as.character(TDFClasificación_G$Freq))

TDFClasificación_G1 <- TDFClasificación_G %>%
group_by(Clasificación) %>%
summarise(
  ni = sum(Freq),
  hi = round(sum(Freq) / sum(TDFClasificación_G$Freq)*100, 5))

TDFClasificación_G1 <- data.frame(TDFClasificación_G1)

TDFClasificación_G1$fi <- TDFClasificación_G1$ni / sum(TDFClasificación_G1$ni)

TDFClasificación_G1 <- TDFClasificación_G1[, c("Clasificación", "ni", "hi", "fi")]

total_ni <- sum(TDFClasificación_G1$ni)
total_hi <- sum(TDFClasificación_G1$hi)
total_fi <- sum(TDFClasificación_G1$fi)

TDFClasificación_G1.1 <- rbind(TDFClasificación_G1, data.frame(
  Clasificación = "Total",
  ni            = total_ni,
  hi            = total_hi,
  fi            = total_fi
))
print(TDFClasificación_G1.1)
##         Clasificación    ni        hi         fi
## 1 Desarrollo de Campo 20578  69.57904 0.69579036
## 2      Descubrimiento  4882  16.50719 0.16507185
## 3           Operación  3609  12.20287 0.12202874
## 4  Tipo de yacimiento   506   1.71090 0.01710904
## 5               Total 29575 100.00000 1.00000000
gt(TDFClasificación_G1.1) %>%
  tab_header(
    title    = md("**DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"),
    subtitle  = "Distribución de la clasificación de pozos petrolíferos en Brasil"
  ) %>%
  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(TDFClasificación_G1.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)
  )
DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL
Distribución de la clasificación de pozos petrolíferos en Brasil
Clasificación ni
Frecuencia Relativa
Porcentual (%) Fracción
Desarrollo de Campo 20578 69.58 0.6958
Descubrimiento 4882 16.51 0.1651
Operación 3609 12.20 0.1220
Tipo de yacimiento 506 1.71 0.0171
Total 29575 100.00 1.0000

6 Gráficas

La visualización de los estadísticos descriptivos es fundamental para identificar patrones y distribuciones de manera intuitiva. A continuación, se despliegan diversos gráficos que ilustran la magnitud y proporción de las distintas clasificaciones de pozos.

6.1 Diagrama de barras frecuencia absoluta local

Esta representación gráfica expone el recuento directo de pozos asignados a cada categoría, ajustando la escala del eje vertical al valor máximo observado localmente en la muestra.

par(mar = c(9, 4, 4, 2))
TDFClasificación_G2 <- TDFClasificación_G1.1[TDFClasificación_G1.1$Clasificación != "Total", ]

bp <- barplot(TDFClasificación_G2$ni,
        main = "Gráfica N°1: Distribución en Cantidad de la Clasificación General de los pozos petroliferos",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFClasificación_G2$Clasificación,
        las = 2, cex.names = 0.7, cex.axis = 0.8, cex.main = 0.9, xaxt = "n",)
text(x = bp,
     y = par("usr")[3] - 1000, 
     labels = TDFClasificación_G2$Clasificación,
     srt = 45,adj = 1, xpd = TRUE, cex = 0.9)

mtext("Clasificación General", side = 1, line = 7, adj = 0.4, cex = 1)

6.2 Diagrama de barras frecuencia absoluta global

A diferencia del gráfico anterior, este histograma proyecta la cantidad absoluta de pozos sobre una escala global ampliada (hasta 30,000), permitiendo dimensionar el volumen de los datos dentro de un contexto mayor.

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFClasificación_G2$ni,
        main = "Gráfica N°2: Distribución en Cantidad de la Clasificación General de los pozos petroliferos",
        ylab = "Cantidad",
        col = "#2E4053", names.arg = TDFClasificación_G2$Clasificación,
        las = 2, cex.names = 0.7, cex.axis = 0.8, cex.main = 0.9, xaxt = "n",
        ylim = c(0,30000)) 
text(x = bp,
     y = par("usr")[3] - 1000, 
     labels = TDFClasificación_G2$Clasificación,
     srt = 45,adj = 1, xpd = TRUE, cex = 0.9)

mtext("Clasificación General", side = 1, line = 7, adj = 0.4, cex = 1)

6.3 Diagrama de barras frecuencia relativa local

Se ilustra el peso porcentual de cada clasificación respecto al total de la muestra, facilitando la comparación de proporciones independientemente de las magnitudes absolutas de los pozos.

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFClasificación_G2$hi,
        main = "Gráfica N°3: Distribución en porcentaje de la Clasificación General de los pozos petrolíferos",
        ylab = "Porcentaje",
        col = "#2E4053",
        xaxt = "n",
        cex.axis = 0.8,
        cex.main = 0.9)

text(x = bp,
     y = par("usr")[3] - 5,
     labels = TDFClasificación_G2$Clasificación,
     srt = 45,
     adj = 1,
     xpd = TRUE,
     cex = 0.9)

mtext("Clasificación General", side = 1, line = 8, adj = 0.4, cex = 1)

6.4 Diagrama de barras frecuencia relativa global

Este gráfico refleja las proporciones relativas enmarcadas en una escala fija de 0 a 100%, estandarizando la perspectiva visual del porcentaje para todas las categorías.

par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFClasificación_G2$hi,
        main = "Gráfica N°4: Distribución en porcentaje de la Clasificación General de los pozos petrolíferos",
        ylab = "Porcentaje",
        col = "#2E4053",
        xaxt = "n",
        cex.axis = 0.8,
        cex.main = 0.9,
        ylim = c(0,100))

text(x = bp,
     y = par("usr")[3] - 5,
     labels = TDFClasificación_G2$Clasificación,
     srt = 45,
     adj = 1,
     xpd = TRUE,
     cex = 0.9)

mtext("Clasificación General", side = 1, line = 8, adj = 0.4, cex = 1)

6.5 Diagrama Circular

El diagrama de sectores proporciona una perspectiva integral de la distribución, evidenciando rápidamente las mayorías y minorías en la clasificación operativa de los pozos mediante áreas proporcionales.

par(mar = c(9, 4, 4, 2))
pie(TDFClasificación_G2$hi, 
    main = "Gráfica N°5: Distribución porcentual de la Clasificación General de los pozos petrolíferos", 
    radius = 0.9,
    labels = paste0(round(TDFClasificación_G2$hi,2)),
    col = c("#6C8A9B", "#E6E6E4", "#F9F5EF", "#FD6574"),
    cex = 1, cex.main = 0.9,
    init.angle = 90)

legend(x = -2.6099, y =1.06,
       legend = TDFClasificación_G2$Clasificación,
       fill = c("#6C8A9B", "#E6E6E4", "#F9F5EF", "#FD6574"),
       cex = 0.9,
       title = "Clasificación General")

7 Indicadores Estadísticos

Para complementar el análisis, se sintetizan las medidas de tendencia central y de dispersión pertinentes. Dado que se evalúa una variable cualitativa nominal (Clasificación General), la mayoría de los indicadores métricos no aplican, destacando únicamente la Moda como el estadístico principal que señala la categoría con mayor frecuencia.

Conclusiones <- data.frame(
Variable = "Clasificación General de los Pozos",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Desarrollo de Campo",
`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 la Clasificación General de los Pozos Petrolíferos en Brasil") %>%
tab_source_note(source_note = "Autor: Anahi Macias") %>%
  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 la Clasificación General de los Pozos Petrolíferos 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
Clasificación General de los Pozos N/A N/A N/A Desarrollo de Campo N/A N/A N/A N/A N/A N/A
Autor: Anahi Macias

8 Conclusiones

Los resultados muestran que la categoría Desarrollo de Campo concentra la mayor cantidad de pozos petroleros en Brasil. Esto sugiere que la actividad petrolera del país se encuentra principalmente en fases de explotación y desarrollo, mientras que las etapas exploratorias representan una proporción menor.