1 Introducción y Metodología

El presente informe estadístico analiza la variable Inicio de Perforación de pozos petroleros de Brasil, aplicando técnicas descriptivas e inferenciales.

2 Tabla de Distribución de Frecuencia

Dado que la variable abarca casi un siglo (1920–2018), trabajar con años individuales generaría demasiado ruido estadístico. Por ello, agrupamos los datos en décadas. Esto nos permite visualizar la tendencia estructural y facilita el cálculo de probabilidades.

library(dplyr)
library(magrittr)
library(ggplot2)
library(gt)
library(lubridate)
library(MASS)

# Carga y Procesamiento
Datos_Brutos <- read.csv("tabela_de_pocos_janeiro_2018.csv", header = TRUE, sep = ",", dec = ".", fileEncoding = "UTF-8-BOM")
colnames(Datos_Brutos) <- gsub("ï..", "", colnames(Datos_Brutos))

Datos <- Datos_Brutos %>%
  mutate(Fecha_Obj = as.Date(INICIO, format = "%d/%m/%Y"), Anio = year(Fecha_Obj)) %>%
  filter(!is.na(Anio) & Anio >= 1920 & Anio <= 2020)
X <- Datos$Anio

# Tabla de Frecuencias
breaks_dec <- seq(1920, 2020, by = 10)
h_total    <- hist(X, breaks = breaks_dec, plot = FALSE)
TDF_General <- data.frame(
  Decada = paste(head(breaks_dec, -1), tail(breaks_dec, -1), sep = "-"),
  ni     = h_total$counts,
  hi     = round((h_total$counts / sum(h_total$counts)) * 100, 2)
)
totales_simplificados <- c("TOTAL", sum(TDF_General$ni), 100)
TDF_Show_Simple <- rbind(mutate(TDF_General, across(everything(), as.character)), totales_simplificados)

TDF_Show_Simple %>%
  gt() %>%
  tab_header(title = md("TABLA DE FRECUENCIAS: INFERENCIA ESTADÍSTICA"), subtitle = md("Variable: **Inicio de Perforación**")) %>%
  tab_source_note(source_note = "Fuente: Tabela de Poços 2018") %>%
  cols_label(Decada = "Periodo (Década)", ni = "Frecuencia Absoluta (ni)", hi = "Frecuencia Relativa (hi%)") %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_style(style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")), locations = cells_title(groups = c("title", "subtitle"))) %>%
  tab_style(style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")), locations = cells_column_labels())
TABLA DE FRECUENCIAS: INFERENCIA ESTADÍSTICA
Variable: Inicio de Perforación
Periodo (Década) Frecuencia Absoluta (ni) Frecuencia Relativa (hi%)
1920-1930 2 0.01
1930-1940 15 0.05
1940-1950 218 0.74
1950-1960 1047 3.54
1960-1970 2398 8.11
1970-1980 2932 9.91
1980-1990 9348 31.61
1990-2000 3654 12.36
2000-2010 6079 20.55
2010-2020 3882 13.13
TOTAL 29575 100
Fuente: Tabela de Poços 2018

3 Gráficas

3.1 Diagrama de Barras (Escala Local)

A continuación, presentamos el histograma de frecuencias.

col_barras <- "#5D6D7E"
col_ejes   <- "#2E4053"
par(mar = c(10, 5, 4, 2))
bp <- barplot(TDF_General$ni, main = "Gráfica N°1: Distribución de Fecha de Inicio", 
              cex.main = 0.9, ylab = "Cantidad de Pozos", col = col_barras, border = "white", 
              axes = FALSE, axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp, labels = TDF_General$Decada, col = col_ejes, col.axis = col_ejes, las = 2, cex.axis = 0.9)
title(xlab = "Década", line = 8)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)

4 Agrupación 1

Analizamos si el inicio de perforación sigue una distribución de Poisson.

col_barras <- "#5D6D7E"
col_ejes   <- "#2E4053"
X1 <- X[X >= 1920 & X < 1980]
hist(X1, 
     breaks = seq(1920, 1980, by = 10), 
     col = col_barras, 
     border = "white", 
     main = "Gráfica: Histograma Real ", 
     xlab = "Año", 
     ylab = "Frecuencia")

4.1 Conjetura del Modelo

Calculamos el parámetro λ (lambda) para comparar con los datos reales.

X1 <- X[X >= 1920 & X < 1980]
breaks_s1 <- seq(1920, 1980, by = 10)
h1 <- hist(X1, breaks = breaks_s1, plot = FALSE)

lambda1 <- mean(X1 - 1920)
Fe1 <- dpois(0:5, lambda1/10)
Fe1 <- Fe1 / sum(Fe1)
Fo1 <- h1$counts / sum(h1$counts)

barplot(rbind(Fo1, Fe1), 
        beside = TRUE, 
        col = c("#5D6D7E", "#F2F3F4"), 
        border = "black", 
        names.arg = paste0(seq(1920, 1970, by=10), "s"), 
        main = "Gráfica N°2: Comparativa Modelo Poisson", 
        ylab = "Probabilidad")
legend("topleft", legend = c("Real", "Modelo Poisson"), fill = c("#5D6D7E", "#F2F3F4"), bty = "n")

4.2 Test de Pearson

plot(Fo1, Fe1, main = "Gráfica N°3: Correlación de Pearson — Sección 1", xlab = "Frecuencia Observada", ylab = "Frecuencia Esperada", pch = 19, col = col_barras)
abline(lm(Fe1 ~ Fo1 + 0), col = "red", lwd = 2)

cor1 <- cor(Fo1, Fe1) * 100
cor1
## [1] 89.71652

4.3 Test de Chi-Cuadrado

x2_1 <- sum((Fo1 - Fe1)^2 / Fe1)
x2_1
## [1] 0.283978
vc1  <- qchisq(0.95, length(Fo1) - 1)
vc1
## [1] 11.0705

4.4 Tabla Resumen de Test

tabla_1 <- data.frame(
  Modelo       = "Poisson",
  Pearson      = round(cor1, 2),
  Chi_Cuadrado = round(x2_1, 4),
  Umbral       = round(vc1, 4),
  Decision     = ifelse(x2_1 < vc1, "Modelo aceptado", "Modelo rechazado")
)

gt(tabla_1) %>%
  tab_header(title = md("**Tabla N°2: Resumen Bondad de Ajuste Sección 1 (Poisson)**")) %>%
  tab_source_note(source_note = "Autor: Ashly Alzate") %>%
  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))
Tabla N°2: Resumen Bondad de Ajuste Sección 1 (Poisson)
Modelo Pearson Chi_Cuadrado Umbral Decision
Poisson 89.72 0.284 11.0705 Modelo aceptado
Autor: Ashly Alzate

4.5 Cálculo de Probabilidades (Sección 1)

¿Cuál fue la probabilidad calculada de que un pozo iniciara sus operaciones antes de 1980 en este modelo?

prob_s1 <- ppois(1979 - 1920, lambda = lambda1)
cat("La probabilidad calculada es del", round(prob_s1 * 100, 2), "%")
## La probabilidad calculada es del 95.76 %

5 Agrupación 2

Analizamos la segunda etapa.

X2 <- X[X >= 2000 & X <= 2020]
breaks_lustros <- seq(2000, 2020, by = 5)
h2 <- hist(X2, breaks = breaks_lustros, col = col_barras, border = "white", main = "Histograma Sección 2", xlab = "Año", ylab = "Frecuencia")

5.1 Conjetura del Modelo

lambda2 <- mean(X2 - 2000); Fe2 <- dpois(0:3, lambda2/5); Fe2 <- Fe2 / sum(Fe2)
Fo2 <- h2$counts / sum(h2$counts)
barplot(rbind(Fo2, Fe2), beside = TRUE, col = c(col_barras, "#F2F3F4"), names.arg = c("00-05", "05-10", "10-15", "15-20"), main = "Gráfica N°5: Modelo Poisson", ylab = "Probabilidad")
legend("topright", legend = c("Real", "Modelo Poisson"), fill = c(col_barras, "#F2F3F4"), bty = "n")

5.2 Test de Pearson

plot(Fo2, Fe2, main = "Gráfica N°6: Correlación de Pearson — Sección 2", xlab = "Frecuencia Observada", ylab = "Frecuencia Esperada", pch = 19, col = col_barras)
abline(lm(Fe2 ~ Fo2 + 0), col = "red", lwd = 2)

cor2 <- cor(Fo2, Fe2) * 100

5.3 Test de Chi-Cuadrado

x2_2 <- sum((Fo2 - Fe2)^2 / Fe2)
vc2  <- qchisq(0.95, length(Fo2) - 1)

5.4 Tabla Resumen de Test

tabla_2 <- data.frame(
  Modelo       = "Poisson",
  Pearson      = round(cor2, 2),
  Chi_Cuadrado = round(x2_2, 4),
  Umbral       = round(vc2, 4),
  Decision     = ifelse(x2_2 < vc2, "Modelo aceptado", "Modelo rechazado")
)

gt(tabla_2) %>%
  tab_header(title = md("**Tabla N°3: Resumen Bondad de Ajuste Sección 2 (Poisson)**")) %>%
  tab_source_note(source_note = "Autor: Ashly Alzate") %>%
  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))
Tabla N°3: Resumen Bondad de Ajuste Sección 2 (Poisson)
Modelo Pearson Chi_Cuadrado Umbral Decision
Poisson 82.85 0.118 7.8147 Modelo aceptado
Autor: Ashly Alzate

5.5 Cálculo de Probabilidades

De cada 1,000 pozos perforados en la era moderna (2000–2020), ¿cuántos se estimó que iniciaron operaciones en el último lustro (2015–2020)?

p_ultimo <- ppois(20, lambda = lambda2) - ppois(15, lambda = lambda2)
p_ultimo
## [1] 0.01436936
cantidad_estimada <- round(p_ultimo * 100, 0) 

El modelo Poisson estimó que, por cada 1,000 pozos de este periodo, aproximadamente 1 correspondieron al último lustro (2015–2020).

6 Conclusiones

Los valores de la variable Inicio de Perforación fluctúan entre 1922 y 2018 y giran en torno a una media de 1990.64, con una desviación estándar de 16.21, con 96 valores atípicos, siendo un conjunto de datos homogéneo, cuyos valores se agrupan fuertemente en la parte alta de la variable. Por lo anterior, el comportamiento es beneficioso, al indicar una concentración sostenida y moderna de la actividad exploratoria.