Análisis Descriptivo de la Reclasificación Operativa de los Pozos Petrolíferos de Brasil
Introducción
El presente estudio describe la distribución de los pozos petrolíferos de Brasilsegún su clasificación operativa, con en datos oficiales de la Agencia Nacional del Petróleo, Gas Natural y Biocombustibles (ANP). Las categorías originales se consolidaron en cuatro grupos para facilitar la interpretación de las frecuencias y proporciones de cada tipo de pozo registrado.
La adecuación del entorno de trabajo es el primer paso metodológico.
Se requiere la activación de dplyr para la manipulación y
recodificación eficiente de los datos, así como gt para la
estructuración y presentación formal de las tablas resultantes.
Se procede a la lectura e importación de la base de datos matriz. Este paso asegura que los registros originales conserven su estructura y codificación especial, permitiendo un análisis preciso de la información operativa.
Para focalizar el análisis, se aísla específicamente la variable RECLASSIFICACAO. Esta extracción permite contabilizar la frecuencia absoluta inicial de cada categoría registrada antes de someterla a procesos de síntesis.
subclasif_pozo <- Datos$RECLASSIFICACAO
TDFTipoPozo <- as.data.frame(table(subclasif_pozo ))
TDFTipoPozoDada la gran cantidad de subcategorías originales, se ejecuta una recodificación para consolidarlas en cuatro grupos operacionales mutuamente excluyentes. Posteriormente, se transforman en una variable de tipo factor ordenado (jerarquizando desde el estado más productivo al de abandono) para estructurar el análisis cualitativo.
library(dplyr)
TDFTipoPozo$Grupo <- case_when(
TDFTipoPozo$subclasif_pozo %in% c(
"PRODUTOR COMERCIAL DE GÁS NATURAL", "PRODUTOR COMERCIAL DE GÁS NATURAL E CONDENSADO",
"PRODUTOR COMERCIAL DE PETRÓLEO", "PRODUTOR COMERCIAL DE PETRÓLEO E GÁS NATURAL",
"PRODUTOR COMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO",
"PRODUTOR SUBCOMERCIAL DE GÁS NATURAL", "PRODUTOR SUBCOMERCIAL DE GÁS NATURAL E CONDENSADO",
"PRODUTOR SUBCOMERCIAL DE PETRÓLEO", "PRODUTOR SUBCOMERCIAL DE PETRÓLEO E GÁS NATURAL",
"PRODUTOR SUBCOMERCIAL DE PETRÓLEO, GÁS NATURAL E CONDENSADO",
"DESCOBRIDOR DE CAMPO COM GÁS NATURAL", "DESCOBRIDOR DE CAMPO COM GÁS NATURAL E CONDENSADO",
"DESCOBRIDOR DE CAMPO COM PETRÓLEO", "DESCOBRIDOR DE CAMPO COM PETRÓLEO E GÁS NATURAL",
"DESCOBRIDOR DE CAMPO COM PETRÓLEO, GÁS NATURAL E CONDENSADO",
"DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL", "DESCOBRIDOR DE NOVA JAZIDA GÁS NATURAL E CONDENSADO",
"DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO", "DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO E GÁS NATURAL",
"DESCOBRIDOR DE NOVA JAZIDA PETRÓLEO, GÁS NATURAL E CONDENSADO",
"EXTENSÃO PARA GÁS NATURAL", "EXTENSÃO PARA GÁS NATURAL E CONDENSADO",
"EXTENSÃO PARA PETRÓLEO", "EXTENSÃO PARA PETRÓLEO E GÁS NATURAL",
"EXTENSÃO PARA PETRÓLEO, GÁS NATURAL E CONDENSADO",
"PORTADOR DE GÁS NATURAL", "PORTADOR DE GÁS NATURAL E CONDENSADO",
"PORTADOR DE PETRÓLEO", "PORTADOR DE PETRÓLEO E GÁS NATURAL",
"PORTADOR DE PETRÓLEO, GÁS NATURAL E CONDENSADO"
) ~ "Pozos productivos",
TDFTipoPozo$subclasif_pozo %in% c(
"INJEÇÃO DE ÁGUA", "INJEÇÃO DE ÁGUA ADITIVADA", "INJEÇÃO DE CO2",
"INJEÇÃO DE GÁS NATURAL", "INJEÇÃO DE QUALQUER OUTRO FLUIDO", "INJEÇÃO DE VAPOR"
) ~ "Inyección/Soporte",
TDFTipoPozo$subclasif_pozo %in% c(
"SECO COM INDÍCIOS DE GÁS NATURAL E CONDENSADO", "SECO COM INDÍCIOS DE PETRÓLEO",
"SECO COM INDÍCIOS DE PETRÓLEO E GÁS NATURAL", "SECO COM INDÍCIOS GÁS NATURAL",
"SECO SEM INDÍCIOS"
) ~ "Pozos secos",
.default = "Pozos abandonados"
)
# Factor ordenado (del más favorable al menos)
niveles_ordinales <- c("Pozos productivos", "Inyección/Soporte",
"Pozos secos", "Pozos abandonados")
TDFTipoPozo$Grupo <- factor(TDFTipoPozo$Grupo,
levels = niveles_ordinales, ordered = TRUE)
TDFTipoPozo <- TDFTipoPozo[order(TDFTipoPozo$Grupo), ]Las frecuencias absolutas y relativas se compilan en una tabla de distribución formal. La integración de los totales finales (\(n_i\), \(h_i\), \(f_i\)) permite corroborar la integridad de los datos y ofrecer una presentación estadística estandarizada.
TDFTipoPozo$Freq <- as.numeric(as.character(TDFTipoPozo$Freq))
library(dplyr)
TDFReclasificación1 <- Datos$TDFTipoPozo
TDFReclasificación1 <- TDFTipoPozo %>%
group_by(Grupo) %>%
summarise(
ni = sum(Freq),
hi = round(sum(Freq) / sum(TDFTipoPozo$Freq)*100, 5))
TDFReclasificación1 <- data.frame(TDFReclasificación1)
TDFReclasificación1$fi <- TDFReclasificación1$ni / sum(TDFReclasificación1$ni)
TDFReclasificación1 <- TDFReclasificación1 [, c("Grupo", "ni", "hi", "fi")]
total_ni <- sum(TDFReclasificación1$ni)
total_hi <- sum(TDFReclasificación1$hi)
total_fi <- sum(TDFReclasificación1$fi)
TDFReclasificación1.1 <- rbind(TDFReclasificación1, data.frame( Grupo = "Total",
ni = total_ni,
hi = total_hi,
fi = total_fi))
print(TDFReclasificación1.1)## Grupo ni hi fi
## 1 Pozos productivos 18803 63.57735 0.63577346
## 2 Inyección/Soporte 1447 4.89265 0.04892646
## 3 Pozos secos 4816 16.28402 0.16284024
## 4 Pozos abandonados 4509 15.24598 0.15245985
## 5 Total 29575 100.00000 1.00000000
gt(TDFReclasificación1.1) %>%
tab_header(
title = md("**Tabla N°1: DISTRIBUCIÓN DE FRECUENCIAS DE POZOS PETROLEROS DE BRASIL**"),
subtitle = "Reclasificación de pozos petroleros 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(TDFReclasificación1.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 | |||
| Reclasificación de pozos petroleros en Brasil | |||
| Grupo | ni |
Frecuencia Relativa
|
|
|---|---|---|---|
| Porcentual (%) | Fracción | ||
| Pozos productivos | 18803 | 63.58 | 0.6358 |
| Inyección/Soporte | 1447 | 4.89 | 0.0489 |
| Pozos secos | 4816 | 16.28 | 0.1628 |
| Pozos abandonados | 4509 | 15.25 | 0.1525 |
| Total | 29575 | 100.00 | 1.0000 |
Las representaciones gráficas son fundamentales para identificar patrones. En esta sección se despliegan histogramas y un diagrama circular que facilitan el análisis visual de las proporciones en las distintas clasificaciones.
Este gráfico muestra la cantidad total de pozos pertenecientes a cada grupo, ajustando el eje de ordenadas a la máxima frecuencia observada dentro de las categorías.
TDFReclasificación2 <- TDFReclasificación1.1[TDFReclasificación1.1$Grupo != "Total", ]
par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFReclasificación2$ni,
main = "Gráfica N°1: Distribución de pozos por reclasificación",
ylab = "Cantidad",
col = "#2E4053",
xaxt = "n",
cex.axis = 0.8, cex.main = 0.9)
text(x = bp, y = -3,
labels = TDFReclasificación2$Grupo,
srt = 45, adj = 1.2, xpd = TRUE, cex = 0.8)
mtext("Reclasificación", side = 1, line = 6, adj = 0.8)Al fijar la escala en un rango amplio (hasta 30,000 unidades), se dimensiona el tamaño de cada grupo operativo frente a un contexto volumétrico mayor.
par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFReclasificación2$ni,
main = "Gráfica N°2: Distribución de pozos por reclasificación",
ylab = "Cantidad",
col = "#2E4053",
xaxt = "n",
cex.axis = 0.8, cex.main = 0.9,
ylim = c(0, 30000))
text(x = bp, y = -3,
labels = TDFReclasificación2$Grupo,
srt = 45, adj = 1.2, xpd = TRUE, cex = 0.8)
mtext("Reclasificación", side = 1, line = 6, adj = 0.8) Ilustra el peso porcentual de cada grupo operativo, permitiendo comparar de forma directa la predominancia de una categoría sobre las demás mediante sus cuotas relativas.
par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFReclasificación2$hi,
main = "Gráfica N°3: Distribución porcentual de pozos por reclasificación",
ylab = "Porcentaje",
col = "#2E4053",
xaxt = "n",
cex.axis = 0.8, cex.main = 0.9)
text(x = bp, y = -3,
labels = TDFReclasificación2$Grupo,
srt = 45, adj = 1.2, xpd = TRUE, cex = 0.8)
mtext("Reclasificación", side = 1, line = 6, adj = 0.8)Proyecta los porcentajes de cada categoría dentro del marco total del 0% al 100%, homogeneizando la interpretación de su participación global.
par(mar = c(9, 4, 4, 2))
bp <- barplot(TDFReclasificación2$hi,
main = "Gráfica N°4: Distribución porcentual de pozos por reclasificación",
ylab = "Porcentaje",
col = "#2E4053",
xaxt = "n",
cex.axis = 0.8, cex.main = 0.9,
ylim = c(0, 100))
text(x = bp, y = -3,
labels = TDFReclasificación2$Grupo,
srt = 45, adj = 1.2, xpd = TRUE, cex = 0.8)
mtext("Reclasificación", side = 1, line = 6, adj = 0.8)Brinda una rápida apreciación visual del fraccionamiento del mercado. El ángulo y tamaño de cada sector representan la proporción de los grupos respecto al total de pozos registrados.
pie(TDFReclasificación2$hi,
main = "Gráfica N°5: Distribución porcentual de la reclasificación de pozos en Brasil",
radius = 0.6,
labels = paste0(round(TDFReclasificación2$hi,2)),
col = c("#6C8A9B", "#E6E6E4", "#F9F5EF", "#FD6574"),
cex = 1, cex.main = 1,
init.angle = 270)
legend(x = -1.95, y =1,
legend = TDFReclasificación2$Grupo,
fill = c("#6C8A9B", "#E6E6E4", "#F9F5EF", "#FD6574"),
cex = 0.6,
title = "Reclasificación")Dado que la variable analizada ha sido estructurada como categórica ordinal (niveles operacionales), la medida de tendencia central más idónea a reportar es la Moda, indicando la categoría donde se concentra la mayor densidad de datos.
Conclusiones <- data.frame(
Variable = "Reclasificación de los pozos",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Pozos Productivos",
`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 Reclasificaciones 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 las Reclasificaciones 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 |
|---|---|---|---|---|---|---|---|---|---|---|
| Reclasificación de los pozos | N/A | N/A | N/A | Pozos Productivos | N/A | N/A | N/A | N/A | N/A | N/A |
| Autor: Anahi Macias | ||||||||||
El análisis de tendencia central revela que la moda corresponde al grupo Pozos Productivos. Esto indica que la mayor proporción de pozos en Brasil se encuentra destinada directamente a la extracción de hidrocarburos, reflejando un enfoque predominante y efectivo de la industria hacia las fases de producción.