1 Introducción y Metodología

El presente informe estadístico analiza la variable Fecha de Conclusión (CONCLUSAO) de los pozos petroleros de Brasil.

knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE)

# 1. LIBRERÍAS Y CARGA DE DATOS
library(readxl)
library(dplyr)
library(gt)
library(e1071)
library(lubridate)

# CARGA DE DATOS
setwd("C:/Users/HP/Downloads/tabela_de_pocos_janeiro_2018.xlsx")
Datos_Brutos <- read_excel("tabela_de_pocos_janeiro_2018.xlsx")


# 2. PROCESAMIENTO (Agrupación por Décadas)

Datos <- Datos_Brutos %>%
  mutate(Fecha_Obj = as.Date(CONCLUSAO),   
         Anio_Exacto = year(Fecha_Obj)) %>%
  filter(!is.na(Anio_Exacto) & Anio_Exacto > 1900) %>%
  mutate(
    Decada_Concl = floor(Anio_Exacto / 10) * 10, 
    Periodo = paste0(Decada_Concl, " - ", Decada_Concl + 9)
  )

Variable_Exacta <- Datos$Anio_Exacto
Variable_Clases <- Datos$Periodo
Variable_Orden  <- Datos$Decada_Concl 

if(length(Variable_Exacta) == 0) stop("ERROR: No hay datos válidos para CONCLUSIÓN.")


df_calc <- data.frame(Periodo = Variable_Clases, Orden = Variable_Orden)

TDF_Raw <- df_calc %>%
  group_by(Orden, Periodo) %>%
  summarise(ni = n(), .groups = 'drop') %>%
  arrange(Orden) 

ni <- TDF_Raw$ni
N <- sum(ni)
hi <- (ni / N) * 100 

Ni_asc <- cumsum(ni)
Ni_desc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_desc <- rev(cumsum(rev(hi)))

TDF_Decadas <- data.frame(
  Periodo = TDF_Raw$Periodo,
  ni = ni, 
  hi = round(hi, 2),
  Ni_asc = Ni_asc, 
  Ni_desc = Ni_desc, 
  Hi_asc = round(Hi_asc, 2), 
  Hi_desc = round(Hi_desc, 2)
)

2 Distribucion de Frecuencia

Se presenta la distribución de pozos concluidos agrupada en intervalos de 10 años.

totales <- c("TOTAL", sum(ni), round(sum(hi), 2), "-", "-", "-", "-")

TDF_Char <- TDF_Decadas %>% mutate(across(everything(), as.character))
TDF_Show <- rbind(TDF_Char, totales)

TDF_Show %>%
  gt() %>%
  tab_header(
    title = md("**DISTRIBUCIÓN POR DÉCADAS**"),
    subtitle = md("Variable: **Año de Conclusión**")
  ) %>%
  tab_source_note(source_note = "Fuente: Tabela de Poços 2018") %>%
  cols_label(
    Periodo = "Periodo (Década)", 
    ni = "Cant. Pozos (ni)", 
    hi = "Porcentaje (hi%)", 
    Ni_asc = "Ni (Asc)", Ni_desc = "Ni (Desc)",
    Hi_asc = "Hi (Asc)", Hi_desc = "Hi (Desc)"
  ) %>%
  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)
  )
DISTRIBUCIÓN POR DÉCADAS
Variable: Año de Conclusión
Periodo (Década) Cant. Pozos (ni) Porcentaje (hi%) Ni (Asc) Ni (Desc) Hi (Asc) Hi (Desc)
1920 - 1929 2 0.01 2 29311 0.01 100
1930 - 1939 4 0.01 6 29309 0.02 99.99
1940 - 1949 189 0.64 195 29305 0.67 99.98
1950 - 1959 818 2.79 1013 29116 3.46 99.33
1960 - 1969 2427 8.28 3440 28298 11.74 96.54
1970 - 1979 2523 8.61 5963 25871 20.34 88.26
1980 - 1989 9533 32.52 15496 23348 52.87 79.66
1990 - 1999 3662 12.49 19158 13815 65.36 47.13
2000 - 2009 5480 18.7 24638 10153 84.06 34.64
2010 - 2019 4673 15.94 29311 4673 100 15.94
TOTAL 29311 100 - - - -
Fuente: Tabela de Poços 2018

3 Análisis Gráfico

Representación visual de la actividad de perforacion en Brazil

3.1 Gráficos de Barras

col_gris_azulado <- "#5D6D7E"
col_ejes <- "#2E4053"

vals_x <- TDF_Decadas$Periodo
vals_y <- TDF_Decadas$ni
ylim_max <- max(vals_y) * 1.1

# GRÁFICO 1: Frecuencia Absoluta (LOCAL)
par(mar = c(10, 5, 4, 2)) 
bp <- barplot(vals_y, 
       main = "Gráfica No.1: Distribuvion De Fecha de Conclusion de Pozos Petroleros de Brazil",
       ylab = "Cantidad de Pozos Concluidos",
       cex.main = 0.8,
       col = col_gris_azulado, border = "white", axes = FALSE,
       ylim = c(0, ylim_max),
       axisnames = FALSE) 

axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp, labels = vals_x, col = col_ejes, col.axis = col_ejes, las=2, cex.axis=0.8)
title(xlab = "Década", line = 8) 
grid(nx=NA, ny=NULL, col="#D7DBDD", lty="dotted") 
box(bty="l", col=col_ejes)

par(mar = c(10, 5, 4, 2))
bp2 <- barplot(vals_y,
       main = "Gráfica N°2: Distribuvion De Fecha de Conclusion de Pozos Petroleros de Brazil",
       ylab = "Cantidad de Pozos Concluidos",
       cex.main = 0.8,
       col = col_gris_azulado, border = "white", axes = FALSE,
       ylim = c(0, N), # Eje Y hasta el total N
       axisnames = FALSE)

axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp2, labels = vals_x, col = col_ejes, col.axis = col_ejes, las=2, cex.axis=0.8)
title(xlab = "Década", line = 8)
grid(nx=NA, ny=NULL, col="#D7DBDD", lty="dotted")
box(bty="l", col=col_ejes)

3.2 Gráficos de Barras (Frecuencia Porcentual)

# GRÁFICO 3: Porcentual (LOCAL)
vals_y_pct <- TDF_Decadas$hi

par(mar = c(10, 5, 4, 2))
bp3 <- barplot(vals_y_pct,
       main = "Gráfica N°3: Distribución Porcentual Fecha de Conclusion de Pozos Petroleros de Brazil",
       ylab = "% del Total",
       cex.main = 0.8,
       col = col_gris_azulado, border = "white", axes = FALSE,
       ylim = c(0, max(vals_y_pct)*1.2),
       axisnames = FALSE) 

axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp3, labels = vals_x, col = col_ejes, col.axis = col_ejes, las=2, cex.axis=0.8)
text(x = bp3, y = vals_y_pct, label = paste0(round(vals_y_pct, 1), "%"), pos = 3, cex = 0.7, col = col_ejes)
title(xlab = "Década", line = 8)
grid(nx=NA, ny=NULL, col="#D7DBDD", lty="dotted")
box(bty="l", col=col_ejes)

# GRÁFICO 4: Porcentual (GLOBAL - Escala 0 a 100%)
par(mar = c(10, 5, 4, 2))
bp4 <- barplot(vals_y_pct,
       main = "Gráfica N°4: Distribución Porcentual Fecha de Conclusion de Pozos Petroleros de Brazil",
       ylab = "% del Total",
       cex.main = 0.8,
       col = col_gris_azulado, border = "white", axes = FALSE,
       ylim = c(0, 100), # Eje Y fijo a 100%
       axisnames = FALSE)

axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp4, labels = vals_x, col = col_ejes, col.axis = col_ejes, las=2, cex.axis=0.8)
text(x = bp4, y = vals_y_pct, label = paste0(round(vals_y_pct, 1), "%"), pos = 3, cex = 0.7, col = col_ejes)
title(xlab = "Década", line = 8)
abline(h=seq(0,100,20), col="#D7DBDD", lty="dotted")
box(bty="l", col=col_ejes)

3.3 Diagrama de Caja y Ojivas

# GRÁFICO 5: Boxplot 
par(mar = c(7, 5, 4, 2)) 
boxplot(Variable_Exacta, horizontal = TRUE, col = col_gris_azulado, 
       main = "Gráfica N°5: Diagrama de Caja de Fecha de Conclusion de Pozos Petroleros de Brazil",
       xlab = "", outline = TRUE, outpch = 19, outcol = "#C0392B",
       cex.main = 0.8,
       boxwex = 0.5, frame.plot = FALSE, xaxt = "n") 

eje_x <- pretty(Variable_Exacta, n = 8)
axis(1, at = eje_x, labels = format(eje_x, scientific=FALSE), cex.axis=0.8, col=col_ejes, col.axis=col_ejes)
title(xlab = "Año Exacto de Conclusión", line = 4)
grid(nx=NULL, ny=NA, col="lightgray", lty="dotted")

# GRÁFICO 6: Ojivas
par(mar = c(10, 5, 4, 8), xpd = TRUE) 
x_vals_num <- unique(Datos$Decada_Concl) %>% sort()
x_labels <- unique(Datos$Periodo) %>% sort() 
y_asc <- TDF_Decadas$Ni_asc
y_desc <- TDF_Decadas$Ni_desc

col_azul <- "#2E4053"
col_rojo <- "#C0392B"

plot(x_vals_num, y_asc, type = "o", col = col_azul, lwd=2, pch=19,
    main = "Gráfica N°6: Ojivas Ascendente y Dscendente de Fecha de Conclusion de Pozos Petroleros de Brazil",
    cex.main = 0.8,
    ylab = "Frecuencia Acumulada", xlab = "",
    axes = FALSE, frame.plot = FALSE)

axis(1, at = x_vals_num, labels = x_labels, las=2, cex.axis=0.8, col=col_ejes, col.axis=col_ejes)
axis(2, col=col_ejes, col.axis=col_ejes)
title(xlab = "Década", line = 8)
lines(x_vals_num, y_desc, type = "o", col = col_rojo, lwd=2, pch=19)

legend("right", legend = c("Ascendente", "Descendente"),
      col = c(col_azul, col_rojo), lty = 1, pch = 19, cex = 0.7, lwd=2,
      inset = c(-0.15, 0), bty="n")
grid()

4 Resumen Estadistico

media_val <- mean(Variable_Exacta)
mediana_val <- median(Variable_Exacta)

t_moda <- table(Variable_Exacta)
freq_max <- max(t_moda)
modas_calc <- as.numeric(names(t_moda)[t_moda == freq_max])
moda_txt <- paste(modas_calc, collapse = ", ")

rango_txt <- paste0("[", min(Variable_Exacta), "; ", max(Variable_Exacta), "]")
varianza_val <- var(Variable_Exacta)
sd_val <- sd(Variable_Exacta)
cv_val <- (sd_val / abs(media_val)) * 100

asimetria_val <- skewness(Variable_Exacta, type = 2)
curtosis_val <- kurtosis(Variable_Exacta, type = 2)

vals_atipicos <- boxplot.stats(Variable_Exacta)$out
num_atipicos <- length(vals_atipicos)
status_atipicos <- if(num_atipicos > 0) {
 paste0(num_atipicos, " outliers")
} else {
 "0 (Sin atípicos)"
}

df_resumen <- data.frame(
 "Variable" = "Año de Conclusión (Exacto)",
 "Rango" = rango_txt,
 "Media" = media_val,
 "Mediana" = mediana_val,
 "Moda" = moda_txt,
 "Varianza" = varianza_val,
 "Desv_Std" = sd_val,
 "CV_Porc" = cv_val,
 "Asimetria" = asimetria_val,
 "Curtosis" = curtosis_val,
 "Atipicos" = status_atipicos
)

df_resumen %>%
 gt() %>%
 tab_header(
   title = md("**ESTADÍSTICOS DESCRIPTIVOS**"),
   subtitle = "Indicadores calculados sobre años exactos de Conclusión"
 ) %>%
 tab_source_note(source_note = "Autor: Grupo 3") %>%
 fmt_number(columns = c(Media, Mediana, Varianza, Desv_Std, CV_Porc, Curtosis), decimals = 2) %>%
 fmt_number(columns = c(Asimetria), decimals = 4) %>%
 cols_label(
   Variable = "Variable",
   Rango = "Rango [Min; Max]",
   Media = "Media (X̄)",
   Mediana = "Mediana (Me)",
   Moda = "Moda (Mo)",
   Varianza = "Varianza (S²)",
   Desv_Std = "Desv. Est. (S)",
   CV_Porc = "C.V. (%)",
   Asimetria = "Asimetría (As)",
   Curtosis = "Curtosis (K)",
   Atipicos = "Outliers"
 ) %>%
 tab_options(
   column_labels.background.color = "#2E4053",
   table.border.top.color = "black",
   table.border.bottom.color = "#2E4053",
   column_labels.border.bottom.color = "#2E4053",
   data_row.padding = px(8)
 ) %>%
 tab_style(
   style = list(cell_text(weight = "bold", color = "white")),
   locations = cells_column_labels()
 )
ESTADÍSTICOS DESCRIPTIVOS
Indicadores calculados sobre años exactos de Conclusión
Variable Rango [Min; Max] Media (X̄) Mediana (Me) Moda (Mo) Varianza (S²) Desv. Est. (S) C.V. (%) Asimetría (As) Curtosis (K) Outliers
Año de Conclusión (Exacto) [1922; 2018] 1,990.57 1,988.00 1986 261.71 16.18 0.81 −0.3086 −0.52 88 outliers
Autor: Grupo 3

5 Conclusiones

5.1 Análisis Descriptivo y Conclusiones

El análisis histórico de la variable Conclusión de Perforación abarca un extenso periodo desde 1922 hasta 2018. Se observa que el año con mayor cantidad de pozos concluidos (Moda) fue 1986.

Al observar la distribución agrupada por décadas, se aprecia una tendencia general decreciente en los últimos años en la entrega final de pozos. El coeficiente de variación es del 0.81%, indicando que la intensidad de conclusiones ha sido constante a lo largo de la historia. La asimetría de -0.3086 confirma el sesgo de la distribución temporal.