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)
)
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 | ||||||
Representación visual de la actividad de perforacion en Brazil
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)
# 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)
# 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()
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 | ||||||||||
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.