1. Carga y Procesamiento de Datos

# =========================================================
# REGRESIÓN EXPONENCIAL OPTIMIZADA
# X = Año
# Y = Número de pozos perforados
# =========================================================

# 1. Cargar datos
setwd("/cloud/project/datos")
datos <- read.csv("Petroleo_Ontaro.csv", header = TRUE, sep = ";", dec = ".")

# 2. Extraer año
datos$YEAR <- as.numeric(substr(datos$SPUD_DATE, 1, 4))
datos <- datos[!is.na(datos$YEAR) & datos$YEAR > 1800, ]

# 3. Conteo anual
tabla <- table(datos$YEAR)
df <- data.frame(
  YEAR = as.numeric(names(tabla)),
  POZOS = as.numeric(tabla)
)

df <- df[df$POZOS >= 10, ]
df <- df[df$YEAR >= 1900 & df$YEAR <= 1950, ]

2. Modelo Exponencial

La ecuación teórica que rige este modelo de crecimiento poblacional de pozos es: \[y = a \cdot e^{bx}\]

# 4. Modelo exponencial
modelo_exp <- lm(log(POZOS) ~ YEAR, data = df)

# Parámetros
a <- exp(coef(modelo_exp)[1])
b <- coef(modelo_exp)[2]

R2 <- summary(modelo_exp)$r.squared
R  <- sqrt(R2)

cat("MODELO EXPONENCIAL OPTIMIZADO\n")
## MODELO EXPONENCIAL OPTIMIZADO
cat("Pozos = a * exp(b * Año)\n")
## Pozos = a * exp(b * Año)
cat("a =", round(a,4), "\n")
## a = 0
cat("b =", round(b,6), "\n")
## b = 0.043155
cat("R² =", round(R2,4), "\n")
## R² = 0.68
cat("R  =", round(R,4), "\n")
## R  = 0.8246

Sustituyendo con los parámetros calculados por el modelo, la ecuación resultante es:\[Pozos = 0 \cdot e^{0.043155 \cdot Año}\]

3. Gráfico de la Etapa de Crecimiento

# 6. Gráfico
plot(df$YEAR, df$POZOS,
     pch = 19,
     col = rgb(0.1, 0.4, 0.8, 0.6),
     xlab = "Año",
     ylab = "Número de pozos",
     main = "Regresión Exponencial (Etapa de Crecimiento)")

YEAR_seq <- seq(min(df$YEAR), max(df$YEAR), length.out = 300)
POZOS_exp <- a * exp(b * YEAR_seq)

lines(YEAR_seq, POZOS_exp, col = "red", lwd = 3)

legend("topleft",
       legend = c(
         paste("R =", round(R,3))
       ),
       bty = "n")

4. Estimación a Futuro

# =========================================================
# 🚀 NUEVO: SECCIÓN DE ESTIMACIÓN
# =========================================================

anio_prediccion <- 1960

log_estimado <- predict(modelo_exp, newdata = data.frame(YEAR = anio_prediccion))
pozos_estimados <- round(exp(log_estimado), 0)

cat("\n--- ESTIMACIÓN ---\n")
## 
## --- ESTIMACIÓN ---
cat("Para el año", anio_prediccion, "se estiman:", pozos_estimados, "pozos.\n")
## Para el año 1960 se estiman: 760 pozos.

5. Visualización de la Estimación

# =========================================================
# 6. Gráfico con el punto de estimación
# =========================================================

# Ajustamos el límite del eje X para que se vea la predicción
plot(df$YEAR, df$POZOS,
     pch = 19,
     col = rgb(0.1, 0.4, 0.8, 0.6),
     xlim = c(min(df$YEAR), anio_prediccion + 2), # Ampliamos el eje X
     ylim = c(0, max(c(df$POZOS, pozos_estimados))), # Ajustamos eje Y
     xlab = "Año",
     ylab = "Número de pozos",
     main = "Regresión Exponencial y Estimación")

# Dibujamos la línea del modelo
YEAR_seq <- seq(min(df$YEAR), anio_prediccion, length.out = 300)
POZOS_exp <- a * exp(b * YEAR_seq)
lines(YEAR_seq, POZOS_exp, col = "red", lwd = 3)

# Dibujamos el punto estimado (en color dorado)
points(anio_prediccion, pozos_estimados, col = "gold", pch = 18, cex = 2)
text(anio_prediccion, pozos_estimados, labels = paste("Predicción:", pozos_estimados), 
     pos = 2, col = "darkgoldenrod", cex = 0.8)

legend("topleft",
       legend = c(
         paste("R =", round(R,3)),
         "Punto Estimado"
       ),
       col = c(NA, "gold"),
       pch = c(NA, 18),
       bty = "n")

6. Conclusión

El análisis confirma un crecimiento exponencial acelerado en la perforación de pozos entre 1900 y 1950. La alta correlación (\(r\)) obtenida demuestra que el modelo es estadísticamente sólido y que el desarrollo de la industria fue constante y predecible durante esta etapa.