1 Introducción y Metodología

El presente informe estadístico analiza la variable Fecha de Inicio (INICIO) de los pozos petroleros de Brasil. Para el análisis discreto, se ha extraído el Año de la fecha registrada, permitiendo evaluar la evolución temporal de las actividades de perforación.

# 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)

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

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

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

# 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

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

# 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: **Inicio 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: Inicio 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 29575 0.01 100
1930 - 1939 7 0.02 9 29573 0.03 99.99
1940 - 1949 192 0.65 201 29566 0.68 99.97
1950 - 1959 840 2.84 1041 29374 3.52 99.32
1960 - 1969 2414 8.16 3455 28534 11.68 96.48
1970 - 1979 2562 8.66 6017 26120 20.34 88.32
1980 - 1989 9501 32.13 15518 23558 52.47 79.66
1990 - 1999 3670 12.41 19188 14057 64.88 47.53
2000 - 2009 5690 19.24 24878 10387 84.12 35.12
2010 - 2019 4697 15.88 29575 4697 100 15.88
TOTAL 29575 100 - - - -
Fuente: Tabela de Poços 2018

3 Análisis Gráfico

Visualización de la evolución histórica de la perforación por décadas.

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: Distribucion de Fecha de Inicio(Inicio) de Pozos Petroleros de Brazil",
        cex.main = 0.8,
        ylab = "Cantidad de Pozos",
        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 - Total acumulado visible)
# En este caso, como es una suma total, el gráfico 2 suele mostrar el total
# Pero para mantener la consistencia con tu código anterior, haremos un gráfico
# donde el eje Y llegue hasta el TOTAL de datos (N), para ver la proporción real.
par(mar = c(10, 5, 4, 2))
bp2 <- barplot(vals_y,
        main = "Gráfica N°2: Distribucion de Fecha de Inicio(Inicio) de Pozos Petroleros de Brazil",
        cex.main = 0.8,
        ylab = "Cantidad de Pozos",
        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 de Barras (Frecuencia Porcentual)

# 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 Inicio(Inicio) de 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 Inicio(Inicio) de 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 Inicio de Pozos Petroleros en 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", 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_Inicio) %>% 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 Inicio 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 Estadístico

# 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 Inicio (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"
  ) %>%
  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
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 Inicio (Exacto) [1922; 2018] 1,990.64 1,988.00 1982 262.92 16.21 0.81 −0.3246 −0.52 96 outliers
Autor: Grupo 3

5 Conclusiones

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

tendencia <- if(anio_pico > 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 **Inicio de Perforación** abarca un extenso periodo desde **", anio_min, "** hasta **", anio_max, "**. ",
  "Se observa que el año con mayor actividad puntual (Moda) fue **", anio_pico, "**, coincidiendo con el pico de desarrollo.\n\n",
  "Al observar la distribución agrupada por décadas, se aprecia una tendencia general **", tendencia, "** en la actividad petrolera. ",
  "El coeficiente de variación es del **", round(cv_val, 2), "%**, indicando que la intensidad de perforació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 Inicio de Perforación abarca un extenso periodo desde 1922 hasta 2018. Se observa que el año con mayor actividad puntual (Moda) fue 1982, coincidiendo con el pico de desarrollo.

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