1 Introducción y Metodología

El presente informe estadístico analiza la variable Término (Fecha de finalización) de los pozos petroleros de Brasil durante el periodo ampliado 2009 - 2019.

# 1. LIBRERÍAS Y CARGA DE DATOS

library(readxl)
library(dplyr)
library(gt)
library(e1071)
library(lubridate)

# --- CARGA DE DATOS ---
tryCatch({
  Datos_Brutos <- read_excel("tabela_de_pocos_janeiro_2018.xlsx")
}, error = function(e) {
  stop("ERROR: No se encuentra el archivo 'tabela_de_pocos_janeiro_2018.xlsx'. Verifica la carpeta.")
})

# 2. PROCESAMIENTO (Agrupación por Décadas)
# AQUÍ SE CAMBIÓ LA VARIABLE 'INICIO' POR 'TERMINO'

Datos <- Datos_Brutos %>%
  mutate(Fecha_Obj = as.Date(TERMINO),   # <--- CAMBIO CLAVE AQUÍ
         Anio_Exacto = year(Fecha_Obj)) %>%
  filter(!is.na(Anio_Exacto) & Anio_Exacto > 1900) %>%
  mutate(
    Decada_Termino = floor(Anio_Exacto / 10) * 10, 
    Periodo = paste0(Decada_Termino, " - ", Decada_Termino + 9)
  )

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

if(length(Variable_Exacta) == 0) stop("ERROR: No hay datos válidos para TÉRMINO.")

# 3. CÁLCULOS MATEMÁTICOS (TABLA DE FRECUENCIAS)

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 Distribución de Frecuencias

A continuación se presenta la tabla de frecuencias detallada.

# Totales
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: **Término de Perforació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: Término de Perforación
Periodo (Década) Cant. Pozos (ni) Porcentaje (hi%) Ni (Asc) Ni (Desc) Hi (Asc) Hi (Desc)
1920 - 1929 2 0.01 2 27729 0.01 100
1930 - 1939 4 0.01 6 27727 0.02 99.99
1940 - 1949 188 0.68 194 27723 0.7 99.98
1950 - 1959 818 2.95 1012 27535 3.65 99.3
1960 - 1969 2427 8.75 3439 26717 12.4 96.35
1970 - 1979 2523 9.1 5962 24290 21.5 87.6
1980 - 1989 9538 34.4 15500 21767 55.9 78.5
1990 - 1999 3663 13.21 19163 12229 69.11 44.1
2000 - 2009 3941 14.21 23104 8566 83.32 30.89
2010 - 2019 4625 16.68 27729 4625 100 16.68
TOTAL 27729 100 - - - -
Fuente: Tabela de Poços 2018

3 Analisi Grafico

Representación visual de la actividad de perforacion en Brazil

3.1 Histograma de Frecuencias

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: Distribucion de Fecha de Finalizacion(Termino) de Pozos Petroleros de Brazil",
       cex.main = 0.8,
       ylab = "Cantidad de Pozos Finalizados",
       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)

# GRÁFICO 2: Frecuencia Absoluta (GLOBAL)
par(mar = c(10, 5, 4, 2))
bp2 <- barplot(vals_y,
       main = "Gráfica N°2: Distribucion de Fecha de Finalizacion(Termino) de Pozos Petroleros de Brazil",
       cex.main = 0.8,
       ylab = "Cantidad de Pozos Finalizados",
       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)

vals_y_pct <- TDF_Decadas$hi

3.2 Gráficos Porcentuales

# GRÁFICO 3: Porcentual (LOCAL)
par(mar = c(10, 5, 4, 2))
bp3 <- barplot(vals_y_pct,
       main = "Gráfica N°3: Distribucion Porcentual de Fecha de finalizacion (Terminno) en Pozos petroleros de Brazil",
       cex.main = 0.8,
       ylab = "% del Total",
       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: Distribucion Porcentual de Fecha de finalizacion (Terminno) en Pozos petroleros de Brazil",
       cex.main = 0.8,
       ylab = "% del Total",
       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 Finalizacion (Termino) de Pozos Petroleros de Brazil",
       cex.main = 0.8,
       xlab = "", outline = TRUE, outpch = 19, outcol = "#C0392B", 
       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 Término", 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_Termino) %>% 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 Acumuladas por Décadas de Fecha de Finalizacion (Termino) de Pozos Petroleros de Brazil",
    cex.main = 0.7,
    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

# CÁLCULO DE INDICADORES (Variable exacta)

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 Término (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 Término"
 ) %>%
 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 Término
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 Término (Exacto) [1922; 2017] 1,989.81 1,987.00 1986 265.42 16.29 0.82 −0.2143 −0.55 54 outliers
Autor: Grupo 3

5 Conclusiones

anio_min <- min(Variable_Exacta)
anio_max <- max(Variable_Exacta)
anio_pico <- moda_txt

tendencia <- if(as.numeric(substr(anio_pico,1,4)) > 2000) "creciente hacia las últimas décadas" else "decreciente en los últimos años"

cat(paste0(
 
 "## Análisis Descriptivo y Conclusiones\n\n",
 
 "El análisis histórico de la variable **Término de Perforación** abarca un extenso periodo desde **", anio_min, "** hasta **", anio_max, "**. ",
 "Se observa que el año con mayor cantidad de pozos finalizados (Moda) fue **", anio_pico, "**.\n\n",
 "Al observar la distribución agrupada por décadas, se aprecia una tendencia general **", tendencia, "** en la finalización de pozos. ",
 "El coeficiente de variación es del **", round(cv_val, 2), "%**, indicando que la intensidad de finalización ha sido **",
 if(cv_val < 30) "constante" else "variable", "** a lo largo de la historia. ",
 "La asimetría de **", round(asimetria_val, 4), "** confirma el sesgo de la distribución temporal."
))

5.1 Análisis Descriptivo y Conclusiones

El análisis histórico de la variable Término de Perforación abarca un extenso periodo desde 1922 hasta 2017. Se observa que el año con mayor cantidad de pozos finalizados (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 finalización de pozos. El coeficiente de variación es del 0.82%, indicando que la intensidad de finalización ha sido constante a lo largo de la historia. La asimetría de -0.2143 confirma el sesgo de la distribución temporal.