1. Introducción

En este reporte aplicamos el Modelo de Poisson para analizar la frecuencia de perforación de pozos agrupada por décadas.

El objetivo es determinar si el número de perforaciones por década sigue una distribución de Poisson con una tasa media constante (\(\lambda\)), o si existen variaciones significativas que sugieran otro tipo de distribución.

2. Carga y Procesamiento de Datos

# --- CARGA INTELIGENTE DEL ARCHIVO ---
posibles_rutas <- c("Petroleo_Ontaro.csv", "/cloud/project/datos/Petroleo_Ontaro.csv")
ruta_valida <- ""

for (ruta in posibles_rutas) { if (file.exists(ruta)) { ruta_valida <- ruta; break } }

if (ruta_valida == "") { stop("ERROR: No se encuentra el archivo 'Petroleo_Ontaro.csv'.") }

datos <- read.csv(ruta_valida, header = TRUE, sep = ";", dec = ".", fill = TRUE)

# --- CONVERSIÓN DE FECHAS ---
# Usamos SPUD_DATE que es la columna estándar del archivo
datos$Fecha_Format <- tryCatch({
  as.POSIXct(datos$SPUD_DATE, format = "%Y/%m/%d %H:%M:%S", tz = "UTC")
}, error = function(e) {
  as.POSIXct(datos$SPUD_DATE, tryFormats = c("%Y-%m-%d", "%d/%m/%Y"), tz = "UTC")
})

# Eliminar fechas inválidas
datos <- datos[!is.na(datos$Fecha_Format), ]

# Extraer Año y filtrar rango 1980-2020
datos$Year <- as.numeric(format(datos$Fecha_Format, "%Y"))
datos <- datos[datos$Year >= 1980 & datos$Year <= 2020, ]

# Crear Variable "Década"
datos$Decade <- floor(datos$Year / 10) * 10

3. Construcción del Modelo de Poisson

Agrupamos los datos para contar cuántos pozos se perforaron en cada década y estimamos el parámetro Lambda (\(\lambda\)).

# 1. Conteo de pozos por década
conteo_decadas <- as.data.frame(table(datos$Decade))
colnames(conteo_decadas) <- c("Decada", "N_Pozos")

# Vector de eventos observados (k = número de pozos en cada década)
k <- conteo_decadas$N_Pozos

# 2. Cálculo de Lambda (Promedio de pozos por década)
lambda <- mean(k)

# 3. Probabilidades Observadas vs Teóricas
# Creamos una tabla de frecuencias de los conteos
tabla_k <- as.data.frame(table(k))
colnames(tabla_k) <- c("k", "Freq")
tabla_k$k <- as.numeric(as.character(tabla_k$k))

# Probabilidad Observada (hi)
tabla_k$hi <- tabla_k$Freq / sum(tabla_k$Freq)

# Probabilidad Poisson Teórica (dpois)
# Calculamos la probabilidad de observar exactamente 'k' pozos dado lambda
tabla_k$P_poisson <- dpois(tabla_k$k, lambda)

# Normalizamos la probabilidad teórica para comparar (ajuste de escala)
tabla_k$P_poisson <- tabla_k$P_poisson / sum(tabla_k$P_poisson)

# Mostrar resumen
print(conteo_decadas)
##   Decada N_Pozos
## 1   1980    2067
## 2   1990     958
## 3   2000     828
## 4   2010     121

Parámetro Estimado: \(\lambda =\) 993.5 pozos promedio por década.

4. Bondad de Ajuste y Estadísticos

Evaluamos qué tan bien se ajusta el modelo de Poisson a los datos reales utilizando correlación y Chi-cuadrado.

# Variables para facilitar cálculo
hi <- tabla_k$hi
P_poisson <- tabla_k$P_poisson

# 1. Correlación de Pearson
cor_poisson <- cor(hi, P_poisson) * 100

# 2. Prueba Chi-cuadrado
x2_poisson <- sum((hi - P_poisson)^2 / P_poisson)
gl <- length(tabla_k$k) - 1
vc_poisson <- qchisq(0.95, df = gl)

# Decisión
aceptado <- x2_poisson < vc_poisson
  • Correlación Pearson: NA%
  • Chi-cuadrado (\(X^2\)): 2.2372449^{266}
  • Valor Crítico (\(Vc\)): 7.8147
  • ¿Se acepta el modelo?: NO

5. Visualización: Observado vs Poisson

par(mar = c(5, 5, 4, 2))

barplot(
  rbind(hi, P_poisson),
  beside = TRUE,
  col = c("skyblue", "orange"),
  names.arg = tabla_k$k,
  main = "Ajuste Poisson: Perforaciones por Década (1980–2020)",
  xlab = "Cantidad de Pozos (k)",
  ylab = "Probabilidad Relativa",
  legend.text = c("Observado", "Teórico Poisson"),
  args.legend = list(x = "topright", bty = "n")
)

6. Predicción Probabilística

Utilizando el modelo calibrado, respondemos a la pregunta: ¿Cuál es la probabilidad de que en una década futura se perforen exactamente 1000 pozos?

# Calculamos P(X = 1000) dado lambda
prob_1000 <- dpois(1000, lambda) * 100

Respuesta: La probabilidad es extremadamente baja, de aproximadamente 1.235e+00 %.

(Nota: Dado que el promedio \(\lambda\) es 994, un valor de 1000 está muy alejado de la media, por lo que la probabilidad es prácticamente cero en un modelo Poisson puro).

7. Conclusiones

  1. Ajuste del Modelo: El modelo presenta una correlación de NA% entre las frecuencias observadas y las teóricas.
  2. Validación Estadística: El estadístico Chi-cuadrado (2.2372449^{266}) resultó mayor que el umbral crítico (7.8147). Por lo tanto, SE RECHAZA la hipótesis de que los datos siguen una distribución de Poisson.
  3. Interpretación: La actividad de perforación entre 1980 y 2020 mostró irregularidades (sobredispersión) que sugieren que factores externos (economía, tecnología, regulación) afectaron fuertemente ciertas décadas.