1.Introducción y Metodología

El presente informe estadístico analiza la variable Inicio de Perforación de pozos petroleros de Brasil, aplicando técnicas descriptivas e inferenciales.

2. Tabla de distribución de frecuencia

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.

# --- PASO 1: DEFINIR X (Esto es lo que te faltaba para el error) ---
# Asegúrate de tener cargado tu dataset 'Datos'
# Extraemos el año de la columna INICIO
Datos <- Datos %>%
  mutate(
    Fecha_Obj = as.Date(INICIO),
    Anio = as.numeric(format(Fecha_Obj, "%Y"))
  ) %>%
  filter(!is.na(Anio) & Anio >= 1920 & Anio <= 2020)

X <- Datos$Anio  # <--- AQUÍ DEFINIMOS X

# --- PASO 2: CREAR TABLA ---
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)
)

# --- CORRECCIÓN DEL 100.01 ---
# En lugar de sumar la columna 'hi' (que da 100.01), ponemos 100 manualmente.
totales_simplificados <- c("TOTAL", sum(TDF_General$ni), 100) 

TDF_Inferencial <- TDF_General %>% 
  mutate(across(everything(), as.character))

TDF_Show_Simple <- rbind(TDF_Inferencial, totales_simplificados)

# --- GRAFICAR TABLA ---
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)", 
    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
Fuente: Tabela de Poços 2018

3. Gráficas

3.1 Diagrama de barras local

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:

  1. Fase de Desarrollo (1920 - 1979): Caracterizada por un crecimiento paulatino y sostenido, típico de una industria incipiente. Intentar ajustar estos datos junto con el “boom” posterior distorsionaría los parámetros de cualquier modelo probabilístico.
  2. Fase de Expansión Acelerada (1980 - 2019): A partir de la década de 1980, se observa un quiebre estructural (un salto abrupto en la frecuencia), correspondiente al descubrimiento de grandes yacimientos y la modernización tecnológica en Brasil.

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.

4. Agrupación 1 (1920 a 1980)

En este bloque analizamos si el inicio de perforación en la primera mitad del siglo XX sigue un comportamiento normal.

X1 <- X[X < 2000]

hist(
  X1,
  breaks = seq(1920, 2000, by = 10),
  col = "skyblue",
  main = "Histograma Sección 1 (1920–1990)",
  xlab = "Año",
  ylab = "Frecuencia"
)

4.1 Conjetura del modelo

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, 2000, by = 10), plot = FALSE)
Fo1 <- h1$counts / sum(h1$counts)

Fe1 <- diff(pnorm(seq(1920, 2000, by = 10), mean = mu1, sd = sd1))

barplot(rbind(Fo1, Fe1), beside = TRUE, 
        col = c("skyblue", "blue"),
        names.arg = paste(head(seq(1920, 2000, by = 10), -1), "s", sep=""),
        main = "Gráfica N°2: Modelo Normal vs Realidad (1920-1990)",
        ylab = "Probabilidad", xlab = "Décadas")
legend("topleft", legend = c("Real", "Modelo"), fill = c("skyblue", "blue"))

4.2 Test de Pearson

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)

cor1 <- cor(Fo1, Fe1) * 100

4.3 Test de Chi-cuadrado

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

x2_1 <- sum((Fo1 - Fe1)^2 / Fe1)
vc1 <- qchisq(0.95, length(Fo1) - 1)

4.4 Tabla resumen de test

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")
Tabla N°2: Resumen Bondad de Ajuste Sección 1
Modelo Pearson Chi_Cuadrado Umbral Decision
Normal 85.4 0.2157 14.0671 Modelo aceptado

4.5 Cálculo de Probabilidades

¿Cuál fue la probabilidad calculada de que un pozo iniciara sus operaciones antes de 1980?

p_1980 <- pnorm(1980, mu1, sd1)
p_1980
## [1] 0.4664357

La probabilidad es del 46.64%.

5. Agrupación 2 (2000 a 2020)

Analizamos la segunda etapa probando un ajuste a la Distribución Gamma.

X2 <- X[X >= 2000 & X <= 2020]

X2 <- X[X >= 2000]



breaks_lustros <- seq(2000, 2020, by = 5)

hist(
  X2,
  breaks = breaks_lustros,
  col = "lightgreen",
  main = "Histograma Sección 2 (2000–2020)",
  xlab = "Año",
  ylab = "Frecuencia"
)

5.1 Conjetura del modelo

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.

fit_gamma <- fitdistr(X2, "gamma")
alpha <- fit_gamma$estimate["shape"]
beta  <- fit_gamma$estimate["rate"]

h2 <- hist(X2, breaks = breaks_lustros, plot = FALSE)
Fo2 <- h2$counts / sum(h2$counts)

# Cálculo de frecuencias esperadas con intervalos de 5 años
Fe2 <- diff(pgamma(breaks_lustros, shape = alpha, rate = beta))

# Etiquetas para las 4 barras (Lustros)
etiquetas_lustros <- c("2000-05", "2005-10", "2010-15", "2015-20")

barplot(rbind(Fo2, Fe2), beside = TRUE, 
        col = c("lightgreen", "darkgreen"),
        names.arg = etiquetas_lustros,
        main = "Gráfica N°5: Modelo Gamma vs Realidad (2000-2020)",
        ylab = "Probabilidad")
legend("topright", legend = c("Real", "Modelo Gamma"), fill = c("lightgreen", "darkgreen"))

5.2 Test de Pearson

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 - Gamma)",
     xlab = "Frecuencia Observada", ylab = "Frecuencia Esperada", pch = 19, col="darkgreen")
abline(lm(Fe2 ~ Fo2), col = "red", lwd = 2)

cor2 <- cor(Fo2, Fe2) * 100
cor2
## [1] 90.03608

5.3 Test de Chi-cuadrado

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.

x2_2 <- sum((Fo2 - Fe2)^2 / Fe2)
vc2 <- qchisq(0.95, length(Fo2) - 1)

5.4 Tabla resumen de test

tabla_2 <- data.frame(
  Variable = "Inicio (S2)",
  Pearson_Pct = round(cor2, 2),
  Chi_Cuadrado = round(x2_2, 4),
  Umbral = round(vc2, 4),
  Decision = ifelse(x2_2 < vc2, "Modelo aceptado", "Modelo rechazado")
)
kable(tabla_2, caption = "Tabla N°3: Resumen Bondad de Ajuste Sección 2 (Gamma)")
Tabla N°3: Resumen Bondad de Ajuste Sección 2 (Gamma)
Variable Pearson_Pct Chi_Cuadrado Umbral Decision
Inicio (S2) 90.04 0.0598 7.8147 Modelo aceptado

5.5 Calculo de Probabilidades

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)?

p_ultimo <- pgamma(2020, shape = alpha, rate = beta) - pgamma(2015, shape = alpha, rate = beta)
cantidad_estimada <- round(p_ultimo * 1000, 0)

El modelo Gamma estimó que, por cada 1,000 pozos de este periodo, aproximadamente r cantidad_estimada correspondieron al intervalo final de 2015 a 2020 (es decir, un 7.66%).

6 Conclusiones

El análisis segmentado nos permite concluir:

  • Periodo 1920-2000: Se modeló exitosamente bajo una distribución Normal. Este periodo abarca la maduración de la industria y el modelo explica la tendencia con una correlación de 85.4%.

  • Periodo 2000-2020: Al analizar el siglo XXI con mayor detalle (por lustros), el modelo Gamma logró capturar la tendencia reciente. Aunque el coeficiente de Pearson puede variar por la menor cantidad de puntos, la prueba de Chi-Cuadrado (0.0598) confirma la validez estadística del modelo, al mantenerse por debajo del umbral crítico de 7.8147.