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.
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(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)
)
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 | ||||||
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
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),
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
# 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)
# 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)
# 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()
grid(nx=NULL, ny=NA, col="lightgray", lty="dotted")
# 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 | ||||||||||
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.