El presente informe estadístico analiza la variable Inicio de Perforación de pozos petroleros de Brasil, aplicando técnicas descriptivas e inferenciales.
Dado que la variable abarca casi un siglo (1920-2018), trabajar con años individuales generaría demasiado ruido estadístico. Por ello, agrupamos los datos en décadas (intervalos de 10 años). Esto nos permite visualizar la tendencia estructural y facilita el cálculo de probabilidades en los modelos continuos.
breaks_dec <- seq(1920, 2020, by = 10)
h_total <- hist(X, breaks = breaks_dec, plot = FALSE)
# 2. Creación del Data Frame Principal
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), round(sum(TDF_General$hi), 2))
TDF_Inferencial <- TDF_General %>%
mutate(across(everything(), as.character))
TDF_Show_Simple <- rbind(TDF_Inferencial, totales_simplificados)
TDF_Show_Simple %>%
gt() %>%
tab_header(
title = md("TABLA DE FRECUENCIAS: INFERENCIA ESTATÍSTICA"),
subtitle = md("Variable: **Inicio de Perforación**")
) %>%
tab_source_note(source_note = "Fuente: Tabela de Poços 2018") %>%
cols_label(
Decada = "Periodo (Década)", # Aquí corregí 'Periodo' por 'Decada' que es el nombre real
ni = "Frecuencia Absoluta (ni)",
hi = "Frecuencia Relativa (hi%)"
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#1B4F72"), cell_text(color = "white", weight = "bold")),
locations = cells_title()
) %>%
tab_style(
style = list(cell_fill(color = "#EBF5FB"), cell_text(weight = "bold", color = "#1B4F72")),
locations = cells_column_labels()
)| TABLA DE FRECUENCIAS: INFERENCIA ESTATÍ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.01 |
| Fuente: Tabela de Poços 2018 | ||
A continuación, presentamos el histograma de frecuencias
col_gris_azulado <- "#5D6D7E"
col_ejes <- "#2E4053"
par(mar = c(10, 5, 4, 2))
vals_x <- TDF_General$Decada
vals_y <- TDF_General$ni
ylim_max <- max(vals_y) * 1.1
bp <- barplot(vals_y,
main = "Gráfica No.1: Distribucion de Fecha de Inicio(Inicio) de Pozos Petroleros de Brazil",
cex.main = 1,
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.9)
title(xlab = "Década", line = 8)
grid(nx=NA, ny=NULL, col="#D7DBDD", lty="dotted")
box(bty="l", col=col_ejes)Al observar la Gráfica N°1, se evidencia que la variable Inicio de Perforación no presenta un comportamiento homogéneo a lo largo de todo el siglo. Se distinguen claramente dos dinámicas industriales muy diferentes:
Por esta razón, desde un punto de vista inferencial, es necesario segmentar la muestra en dos periodos independientes. Esto permite ajustar modelos de probabilidad específicos (Normal y Gamma) que describan con mayor precisión la realidad de cada época, mejorando significativamente la bondad de ajuste y la fiabilidad de las predicciones.
En este bloque analizamos si el inicio de perforación en la primera mitad del siglo XX sigue un comportamiento normal.
X1 <- X[X < 1980]
hist(
X1,
breaks = seq(1920, 1980, by = 10),
col = "skyblue",
main = "Histograma Sección 1 (1920–1979)",
xlab = "Año",
ylab = "Frecuencia"
)Calculamos los parámetros fundamentales de la distribución normal: la Media (\(\mu\)) y la Desviación Estándar (\(\sigma\)) de esta época, para generar una curva teórica y compararla con los datos reales.
mu1 <- mean(X1)
sd1 <- sd(X1)
h1 <- hist(X1, breaks = seq(1920, 1980, by = 10), plot = FALSE)
Fo1 <- h1$counts / sum(h1$counts)
Fe1 <- diff(pnorm(seq(1920, 1980, by = 10), mean = mu1, sd = sd1))
barplot(rbind(Fo1, Fe1), beside = TRUE,
col = c("skyblue", "blue"),
names.arg = paste(head(seq(1920, 1980, by = 10), -1), "s", sep=""),
main = "Gráfica N°2: Modelo Normal vs Realidad (1920-1979)",
ylab = "Probabilidad", xlab = "Décadas")
legend("topleft", legend = c("Real", "Modelo"), fill = c("skyblue", "blue"))Aplicamos el coeficiente de correlación para medir qué tan fuerte es la relación lineal entre la frecuencia observada (realidad) y la esperada (modelo normal). Un valor alto indicará que el modelo describe bien la tendencia.
plot(Fo1, Fe1,
main = "Gráfica N°3: Correlación de Pearson - Sección 1",
xlab = "Frecuencia Observada", ylab = "Frecuencia Esperada", pch = 19)
abline(lm(Fe1 ~ Fo1), col = "red", lwd = 2)## [1] 98.1138
Realizamos la prueba de bondad de ajuste de Chi-Cuadrado (\(\chi^2\)). Esta prueba nos dirá matemáticamente si las diferencias entre nuestro modelo y la realidad son aceptables (Error bajo) o si el modelo debe ser rechazado
tabla_1 <- data.frame(
Modelo = "Normal",
Pearson = round(cor1, 2),
Chi_Cuadrado = round(x2_1, 4),
Umbral = round(vc1, 4),
Decision = ifelse(x2_1 < vc1, "Modelo aceptado", "Modelo rechazado")
)
kable(tabla_1, caption = "Tabla N°2: Resumen Bondad de Ajuste Sección 1")| Modelo | Pearson | Chi_Cuadrado | Umbral | Decision |
|---|---|---|---|---|
| Normal | 98.11 | 0.0518 | 11.0705 | Modelo aceptado |
Analizamos la segunda etapa probando un ajuste a la Distribución Gamma.
X2 <- X[X >= 1980]
hist(
X2,
breaks = seq(1980, 2020, by = 10),
col = "lightgreen",
main = "Histograma Sección 2 (1980–2019)",
xlab = "Año",
ylab = "Frecuencia"
)Utilizamos la función fitdistr para encontrar los parámetros de Forma (Alpha) y Tasa (Beta) que mejor ajustan la curva Gamma a nuestros datos de las últimas 4 décadas.
X2 <- X[X >= 1980]
fit_gamma <- fitdistr(X2, "gamma")
alpha <- fit_gamma$estimate["shape"]
beta <- fit_gamma$estimate["rate"]
h2 <- hist(X2, breaks = seq(1980, 2020, by = 10), plot = FALSE)
Fo2 <- h2$counts / sum(h2$counts)
Fe2 <- diff(pgamma(seq(1980, 2020, by = 10), shape = alpha, rate = beta))
barplot(rbind(Fo2, Fe2), beside = TRUE,
col = c("lightgreen", "darkgreen"),
names.arg = c("80s", "90s", "00s", "10s"),
main = "Gráfica N°5: Modelo Gamma vs Realidad",
ylab = "Probabilidad")
legend("topright", legend = c("Real", "Modelo Gamma"), fill = c("lightgreen", "darkgreen"))Evaluamos la Correlación de Pearson para cuantificar la relación lineal entre las frecuencias observadas en las décadas recientes y las probabilidades teóricas generadas por la distribución Gamma. Un coeficiente cercano al 100% confirmará que la curva del modelo Gamma logra capturar fielmente la tendencia asimétrica (el ‘boom’ y posterior estabilización) de la actividad petrolera moderna.
plot(Fo2, Fe2,
main = "Gráfica N°6: Correlación Pearson (Sección 2)",
xlab = "Frecuencia Observada", ylab = "Frecuencia Esperada", pch = 19, col="darkgreen")
abline(lm(Fe2 ~ Fo2), col = "red", lwd = 2)Aplicamos la prueba de bondad de ajuste Chi-Cuadrado (\(\chi^2\)) para validar estadísticamente el modelo. Calculamos la discrepancia entre los datos reales y el modelo Gamma y la comparamos con un valor crítico (umbral) con un 95% de confianza. Si el estadístico calculado es menor al umbral, tendremos evidencia suficiente para aceptar que el inicio de perforaciones en este periodo sigue una distribución Gamma.
tabla_2 <- data.frame(
Variable = "Inicio (S2)",
Pearson_Pct = round(cor2, 2),
Chi_Cuadrado = round(x2_2, 4),
Umbral = round(vc2, 4)
)
kable(tabla_2, caption = "Tabla N°3: Resumen Bondad de Ajuste Sección 2")| Variable | Pearson_Pct | Chi_Cuadrado | Umbral |
|---|---|---|---|
| Inicio (S2) | -5.27 | 0.345 | 7.8147 |
El análisis demuestra que la actividad de perforación en Brasil se divide en dos periodos estadísticos diferenciados:
Ambos modelos permiten describir la evolución histórica y realizar predicciones probabilísticas para sus respectivos intervalos.