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–1980)",
xlab = "Año",
ylab = "Frecuencia"
)Para esta primera etapa histórica (1920-1980), el histograma sugiere un comportamiento más simétrico y estabilizado en torno a una década central.
Por esta razón, conjeturamos que los datos siguen una Distribución Normal (Gaussiana). * Justificación: La distribución Normal es el modelo estándar para describir procesos que crecen de manera orgánica y paulatina, donde la mayoría de los datos se agrupan alrededor del promedio (Media) y disminuyen suavemente hacia los extremos. * Hipótesis: Asumimos que la actividad de perforación en estos años no sufrió “shocks” externos extremos, comportándose de manera predecible dentro de una desviación estándar calculable.
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-1980)",
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–2020)",
xlab = "Año",
ylab = "Frecuencia"
)Para este segundo periodo (1980-2020), el histograma muestra un comportamiento diferente: una subida abrupta al inicio (el “boom” de los 80) seguida de un descenso gradual. Esto genera una asimetría positiva que el modelo Normal (simétrico) no puede capturar correctamente.
Por esta razón, conjeturamos que los datos siguen una Distribución Gamma. * Justificación: La distribución Gamma es flexible y se utiliza frecuentemente para modelar variables de tiempo y vida útil donde los datos no se centran perfectamente en una media, sino que tienen un sesgo hacia la izquierda o derecha. * Parámetros: A diferencia de la Normal (Media y Desviación), aquí estimaremos los parámetros de Forma (\(\alpha\)) y Tasa (\(\beta\)) para ajustar la curva.
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.