INTRODUCCION
Este estudio analiza la evolución temporal de los pozos petrolíferos en Brasil. La Variable Año de Inicio de los pozos petrolíferos es de tipo ordinal, pero se convirtió en discreta al asignarle identificadores numéricos (Xi ) para facilitar el análisis probabilístico y la comparación con el modelo.
Carga de Paquetes
Importación del archivo
Filtrado de fechas
Datos <- Datos_Brutos %>%
mutate(
Fecha_Limpieza = trimws(as.character(INICIO)),
Fecha_Obj = if_else(
grepl("-", Fecha_Limpieza),
as.Date(Fecha_Limpieza, format = "%Y-%m-%d"),
as.Date(Fecha_Limpieza, format = "%d/%m/%Y")
),
Anio = year(Fecha_Obj)
) %>%
filter(!is.na(Anio) & Anio >= 1920 & Anio <= 2020)
X <- Datos$Anio
if(length(X) == 0) {
stop("¡ERROR! No hay datos válidos en la variable INICIO.")
}breaks_dec <- seq(1920, 2020, by = 10)
h_total <- hist(X, breaks = breaks_dec, plot = FALSE)
TDF_General <- data.frame(
Decada = paste(head(breaks_dec, -1), tail(breaks_dec, -1), sep = "-"),
ni = h_total$counts,
hi = round((h_total$counts / sum(h_total$counts)) * 100, 2)
)
totales_simplificados <- c("TOTAL", sum(TDF_General$ni), 100)
TDF_Show_Simple <- rbind(mutate(TDF_General, across(everything(), as.character)), totales_simplificados)
TDF_Show_Simple %>%
gt() %>%
tab_header(title = md("TABLA DE FRECUENCIAS: INFERENCIA ESTADÍSTICA"), subtitle = md("Variable: **Inicio de Perforación**")) %>%
tab_source_note(source_note = "Autor: Ashly Alzate") %>%
cols_label(Decada = "Periodo (Década)", ni = "Frecuencia Absoluta (ni)", hi = "Frecuencia Relativa (hi%)") %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")), locations = cells_title(groups = c("title", "subtitle"))) %>%
tab_style(style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")), locations = cells_column_labels())| TABLA DE FRECUENCIAS: INFERENCIA ESTADÍSTICA | ||
| Variable: Inicio de Perforación | ||
| Periodo (Década) | Frecuencia Absoluta (ni) | Frecuencia Relativa (hi%) |
|---|---|---|
| 1920-1930 | 2 | 0.01 |
| 1930-1940 | 15 | 0.05 |
| 1940-1950 | 218 | 0.74 |
| 1950-1960 | 1047 | 3.54 |
| 1960-1970 | 2398 | 8.11 |
| 1970-1980 | 2932 | 9.91 |
| 1980-1990 | 9348 | 31.61 |
| 1990-2000 | 3654 | 12.36 |
| 2000-2010 | 6079 | 20.55 |
| 2010-2020 | 3882 | 13.13 |
| TOTAL | 29575 | 100 |
| Autor: Ashly Alzate | ||
Diagrama de Barras (Escala Local)
col_barras <- "#5D6D7E"
col_ejes <- "#2E4053"
par(mar = c(10, 5, 4, 2))
bp <- barplot(TDF_General$ni, main = "Gráfica N°1: Distribución de Fecha de Inicio",
cex.main = 0.9, ylab = "Cantidad de Pozos", col = col_barras, border = "white",
axes = FALSE, axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp, labels = TDF_General$Decada, col = col_ejes, col.axis = col_ejes, las = 2, cex.axis = 0.9)
title(xlab = "Década", line = 8)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)Agrupación 1
Analizamos la actividad exploratoria entre 1920 y 1979 para determinar si la frecuencia de perforaciones mantuvo una tendencia estable o presentó variaciones significativas en este periodo.
par(mar = c(6, 5, 4, 2))
col_barras <- "#5D6D7E"
col_ejes <- "#2E4053"
X1 <- X[X >= 1920 & X < 1991]
breaks_s1 <- seq(1920, 1990, by = 10)
h1_data <- hist(X1, breaks = breaks_s1, plot = FALSE)
# Creamos las etiquetas para todas las barras
etiquetas_decadas <- paste("Década", 1:length(h1_data$counts))
bp1 <- barplot(h1_data$counts,
col = col_barras,
border = "white",
main = "Gráfica: Distribución de Frecuencia (1920-1990)",
ylab = "Frecuencia",
axes = FALSE,
axisnames = FALSE)
axis(2, col = col_ejes, col.axis = col_ejes)
axis(1, at = bp1, labels = etiquetas_decadas, col = col_ejes, col.axis = col_ejes, las = 1, cex.axis = 0.8)
title(xlab = "Periodos Históricos", line = 3.5)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)media_rev <- sum((0:(length(counts_rev) - 1)) * counts_rev) / sum(counts_rev)
prob_g <- 1 / (1 + media_rev)
k_vals <- 0:(length(h1$counts) - 1)
esp_raw <- dgeom(k_vals, prob = prob_g)
esp_counts <- length(X1) * esp_raw / sum(esp_raw)
Fo1 <- h1$counts / sum(h1$counts)
esp_raw_orig <- rev(esp_raw)
Fe1 <- esp_raw_orig / sum(esp_raw_orig)
esp_counts_orig <- rev(esp_counts)matriz_prob <- rbind(Fo1, Fe1)
etiquetas_x <- paste("Década", 1:length(h1$counts))
par(mar = c(6, 5, 4, 2) + 0.1)
bp <- barplot(matriz_prob,
beside = TRUE,
col = c("#5D6D7E", "#F2F3F4"),
border = "black",
axes = FALSE,
ylim = c(0, 1),
main = "Gráfica N°2: Modelo Geométrico (Derecha a Izquierda)",
cex.main = 1.1,
xlab = NA,
ylab = NA)
title(ylab = "Densidad de Probabilidad", line = 3.5, cex.lab = 1.1)
title(xlab = "Periodos Históricos", line = 4.5, cex.lab = 1.1)
axis(side = 2, at = seq(0, 1, by = 0.2), labels = c("0.0", "0.2", "0.4", "0.6", "0.8", "1.0"), las = 1, hadj = 1, tcl = -0.5)
text(x = colMeans(bp), y = - (1 * 0.04), labels = etiquetas_x, xpd = TRUE, cex = 0.85, srt = 25, adj = 1)
abline(h = 0)
legend("topleft", inset = c(0.02, 0.02),
legend = c("Real", "Modelo Geométrico"),
fill = c("#5D6D7E", "#F2F3F4"),
border = "black", bty = "n", cex = 1.0)cor1 <- cor(Fo1, Fe1) * 100
par(mar = c(5, 5, 4, 2) + 0.1)
plot(Fo1, Fe1,
main = "Gráfica N°3: Correlación — Agrupación 1",
xlab = "Probabilidad Observada",
ylab = "Probabilidad Esperada",
xlim = c(0, max(Fo1) + 0.05),
ylim = c(0, max(Fe1) + 0.05),
pch = 19,
col = "#5D6D7E",
cex = 1.5,
axes = FALSE)
axis(side = 1, las = 1)
axis(side = 2, las = 1, hadj = 1)
box(which = "plot", lty = "solid", lwd = 1)
grid(nx = NULL, ny = NULL, col = "lightgray", lty = "dotted")
abline(lm(Fe1 ~ Fo1 + 0), col = "red", lwd = 2)tabla_1 <- data.frame(
Modelo = "Geométrico",
Pearson = round(cor1, 2),
Chi_Cuadrado = round(x2_1, 4),
Umbral = round(vc1, 4),
Decision = ifelse(x2_1 < vc1, "Modelo aceptado", "Modelo rechazado")
)
gt(tabla_1) %>%
tab_header(title = md("**Tabla N°2: Resumen Bondad de Ajuste Sección 1 (Modelo Geométrico)**")) %>%
tab_source_note(source_note = "Autor: Ashly Alzate") %>%
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))| Tabla N°2: Resumen Bondad de Ajuste Sección 1 (Modelo Geométrico) | ||||
| Modelo | Pearson | Chi_Cuadrado | Umbral | Decision |
|---|---|---|---|---|
| Geométrico | 98.75 | 0.0568 | 11.0705 | Modelo aceptado |
| Autor: Ashly Alzate | ||||
Calculamos la probabilidad de que un pozo inicie antes de 1991 (60 años después de 1920) bajo el modelo geométrico:
prob_s1 <- pgeom(1990 - 1920, prob = prob_g)
cat("La probabilidad calculada es del", round(prob_s1 * 100, 2), "%")## La probabilidad calculada es del 100 %
Agrupación 2
Evaluamos el comportamiento de las perforaciones en la era moderna (2000–2020) para identificar patrones de crecimiento y establecer si la intensidad de la actividad fue constante.
X2 <- X[X >= 2000 & X <= 2020]
breaks_lustros <- seq(2000, 2020, by = 5)
h2_data <- hist(X2, breaks = breaks_lustros, plot = FALSE)
etiquetas_2 <- paste("Periodo", 1:length(h2_data$counts))
bp2 <- barplot(h2_data$counts,
names.arg = etiquetas_2,
col = col_barras,
border = "white",
main = "Gráfica: Distribución de Frecuencia (2000-2020)",
xlab = "Periodos Históricos",
ylab = "Frecuencia",
las = 1)
grid(nx = NA, ny = NULL, col = "#D7DBDD", lty = "dotted")
box(bty = "l", col = col_ejes)Estimamos el parámetro λ para definir las frecuencias teóricas y contrastar el ajuste del modelo con la actividad observada en este periodo.
X2 <- X[X >= 2000 & X <= 2020]
breaks_lustros <- seq(2000, 2020, by = 5)
h2 <- hist(X2, breaks = breaks_lustros, plot = FALSE)
lambda2 <- mean(X2 - 2000)
Fe2 <- dpois(0:3, lambda2 / 5)
Fe2 <- Fe2 / sum(Fe2)
Fo2 <- h2$counts / sum(h2$counts)
etiquetas_periodos <- paste("Periodo", 1:length(Fo2))
par(mar = c(5, 5, 4, 2) + 0.1)
barplot(rbind(Fo2, Fe2),
beside = TRUE,
col = c(col_barras, "#F2F3F4"),
names.arg = etiquetas_periodos,
ylim = c(0, 1),
main = "Gráfica N°5: Modelo Poisson",
ylab = "Densidad de Probabilidad",
xlab = "Periodos Históricos")
legend("topright", legend = c("Real", "Modelo Poisson"), fill = c(col_barras, "#F2F3F4"), bty = "n")cor2 <- cor(Fo2, Fe2) * 100
plot(Fo2, Fe2,
main = "Gráfica N°6: Correlación de Pearson — Sección 2",
xlab = "Probabilidad Observada",
ylab = "Probabilidad Esperada",
pch = 19,
col = col_barras,
xlim = c(0, max(Fo2) + 0.02),
ylim = c(0, max(Fe2) + 0.02))
abline(lm(Fe2 ~ Fo2 + 0), col = "red", lwd = 2)## [1] 0.1180146
## [1] 7.814728
Tabla de bondad de resumen
tabla_2 <- data.frame(
Modelo = "Poisson",
Pearson = round(cor2, 2),
Chi_Cuadrado = round(x2_2, 4),
Umbral = round(vc2, 4),
Decision = ifelse(x2_2 < vc2, "Modelo aceptado", "Modelo rechazado")
)
gt(tabla_2) %>%
tab_header(title = md("**Tabla N°3: Resumen Bondad de Ajuste Sección 2 (Poisson)**")) %>%
tab_source_note(source_note = "Autor: Ashly Alzate") %>%
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))| Tabla N°3: Resumen Bondad de Ajuste Sección 2 (Poisson) | ||||
| Modelo | Pearson | Chi_Cuadrado | Umbral | Decision |
|---|---|---|---|---|
| Poisson | 82.85 | 0.118 | 7.8147 | Modelo aceptado |
| Autor: Ashly Alzate | ||||
De cada 1,000 pozos perforados en la era moderna (2000–2020), ¿cuántos se estimó que iniciaron operaciones en el último lustro (2015–2020)?
## [1] 0.01436936
El modelo Poisson estimó que, por cada 1,000 pozos de este periodo, aproximadamente 1 correspondieron al último lustro (2015–2020).
n <- length(X)
media_mu <- mean(X)
desv_s <- sd(X)
# Cálculo del intervalo de confianza al 95% para la media
error_margin <- qt(0.975, df = n - 1) * (desv_s / sqrt(n))
ic_inferior <- media_mu - error_margin
ic_superior <- media_mu + error_margin
cat("Intervalo de Confianza (95%): [", round(ic_inferior, 0), ",", round(ic_superior, 0), "]")## Intervalo de Confianza (95%): [ 1990 , 1991 ]
Debido a que la variable es discreta, aseguramos con un 95% de confianza que el verdadero parámetro poblacional se encuentra acotado entre 1990 y 1991
Los valores de la variable Inicio de Perforación se pueden explicar mediante un modelo geométrico y poisson por secciones, podemos afirmar debido a que la variable es discreta, aseguramos con un 95% de confianza que el verdadero parámetro poblacional se encuentra acotado entre 1990 y 1991 años, con una desviación estándar de 16.21. Además, se evidencia una alta concentración de pozos en los últimos periodos, lo que es consistente con una tendencia de crecimiento sostenido en la actividad exploratoria de petróleo en Brasil.