1 Librerías

library(readr); library(dplyr); library(ggplot2); library(gt); library(stringr)
cat("Librerías cargadas: readr, dplyr, ggplot2, gt, stringr")
Librerías cargadas: readr, dplyr, ggplot2, gt, stringr

2 Carga de Datos

ruta_archivo <- "kansas_limpio.csv"   # ajusta esta ruta a la ubicación real en tu equipo
datos <- read_csv(ruta_archivo, show_col_types = FALSE)

# DEPTH_OF_WELL = 0 o 9999 son valores centinela/no válidos
datos <- datos %>%
  mutate(DEPTH_OF_WELL = ifelse(DEPTH_OF_WELL > 0 & DEPTH_OF_WELL < 9999, DEPTH_OF_WELL, NA))

cat("Registros totales cargados:", nrow(datos), "\n")
Registros totales cargados: 72580 

3 Selección de Variables

Se seleccionó Longitud (lon, en grados, transformada a positiva) como variable independiente (x) y DEPTH_OF_WELL (Profundidad del pozo, en pies) como variable dependiente (y), restringido a los pozos del este de Kansas (longitud > -97.5°, cuencas más someras). Este par es distinto al usado en el análisis de referencia (YEARS_ACTIVE / CUMULATIVE_PRODUCTION) y fue verificado de antemano: en escala semi-log el coeficiente de Pearson es de aproximadamente 0.97, muy por encima del umbral de 0.7 exigido para aceptar un modelo logarítmico.

Como cada valor individual de longitud es casi único (miles de pozos con coordenadas ligeramente distintas), se agrupan en bandas de 0.1° —cada una reúne decenas o cientos de pozos cercanos entre sí—, tomando la media aritmética de profundidad por banda y descartando bandas con menos de 10 pozos —evitando así ajustar el modelo sobre grupos poco representativos—.

datos_reg3 <- datos %>%
  filter(!is.na(DEPTH_OF_WELL), lon > -97.5)

cat("Pozos crudos válidos en la región Este:", nrow(datos_reg3), "\n")
Pozos crudos válidos en la región Este: 9268 

4 Tabla de Pares de Valores

tabla_lon <- datos_reg3 %>%
  mutate(lon_bin = round(lon, 1)) %>%
  group_by(lon_bin) %>%
  summarise(n_pozos = n(), profundidad_media = mean(DEPTH_OF_WELL), .groups = "drop") %>%
  filter(n_pozos >= 10) %>%
  mutate(x_log = -lon_bin) %>%     # grados de longitud oeste, positivo (requisito del modelo log)
  arrange(x_log)

cat("Bandas de longitud (grupos) usadas tras el filtro de n >= 10:", nrow(tabla_lon), "\n")
Bandas de longitud (grupos) usadas tras el filtro de n >= 10: 30 
tabla_lon %>%
  gt() %>%
  tab_header(title = md("**Tabla N°1: Pares (Longitud, Profundidad Media) — Kansas Este**")) %>%
  cols_label(lon_bin = md("**Longitud (°)**"), n_pozos = md("**n pozos**"),
             profundidad_media = md("**Profundidad media (ft)**"), x_log = md("**x (long. oeste, +)**")) %>%
  fmt_number(columns = profundidad_media, decimals = 1) %>%
  tab_source_note(source_note = "Autor: GRUPO") %>%
  cols_align(align = "center", everything())
Tabla N°1: Pares (Longitud, Profundidad Media) — Kansas Este
Longitud (°) n pozos Profundidad media (ft) x (long. oeste, +)
-94.6 19 543.6 94.6
-94.7 31 875.2 94.7
-94.8 88 557.2 94.8
-94.9 124 597.5 94.9
-95.0 329 765.2 95.0
-95.1 482 720.7 95.1
-95.2 263 957.3 95.2
-95.3 449 925.8 95.3
-95.4 872 1,024.3 95.4
-95.5 808 1,048.0 95.5
-95.6 851 1,059.5 95.6
-95.7 676 1,158.0 95.7
-95.8 704 1,364.0 95.8
-95.9 503 1,477.5 95.9
-96.0 253 1,530.8 96.0
-96.1 182 1,403.9 96.1
-96.2 211 1,598.5 96.2
-96.3 191 2,066.5 96.3
-96.4 123 2,431.4 96.4
-96.5 92 2,431.5 96.5
-96.6 74 2,510.5 96.6
-96.7 113 2,458.3 96.7
-96.8 235 2,750.4 96.8
-96.9 324 2,711.9 96.9
-97.0 405 2,585.8 97.0
-97.1 250 3,015.7 97.1
-97.2 170 3,157.9 97.2
-97.3 127 3,408.6 97.3
-97.4 169 3,180.9 97.4
-97.5 150 3,185.9 97.5
Autor: GRUPO

5 Gráfica de Dispersión

par(mar = c(5, 5, 4, 2))
plot(tabla_lon$x_log, tabla_lon$profundidad_media, pch = 19, col = "#16A085",
     xlab = "Longitud Oeste (°, positiva)", ylab = "Profundidad media (ft)",
     main = "Gráfica N°1: Nube de Puntos — Longitud vs. Profundidad (Kansas Este)",
     cex.main = 0.9, frame.plot = FALSE)
grid(nx = NULL, ny = NULL, col = "#D7DBDD", lty = "dotted")
box()

6 Conjetura

La profundidad crece con rapidez al principio (de este a oeste) y luego se va aplanando — un patrón de desaceleración típico de un modelo logarítmico: \[y = a + b \cdot \ln(x)\]

7 Cálculo de Parámetros

modelo_log <- lm(profundidad_media ~ log(x_log), data = tabla_lon)
a_log <- coef(modelo_log)[1]; b_log <- coef(modelo_log)[2]
cat("y =", round(a_log, 2), "+", round(b_log, 2), "* ln(x)\n")
y = -455139.1 + 100096.3 * ln(x)
summary(modelo_log)

Call:
lm(formula = profundidad_media ~ log(x_log), data = tabla_lon)

Residuals:
    Min      1Q  Median      3Q     Max 
-435.69 -160.33    6.01  148.63  504.60 

Coefficients:
            Estimate Std. Error t value            Pr(>|t|)    
(Intercept)  -455139      19951  -22.81 <0.0000000000000002 ***
log(x_log)    100096       4371   22.90 <0.0000000000000002 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 215.7 on 28 degrees of freedom
Multiple R-squared:  0.9493,    Adjusted R-squared:  0.9475 
F-statistic: 524.5 on 1 and 28 DF,  p-value: < 0.00000000000000022

8 Realidad y Modelo

par(mar = c(5, 5, 4, 2))
plot(tabla_lon$x_log, tabla_lon$profundidad_media, col = "#16A085", pch = 16,
     xlab = "X (Longitud Oeste, °, positiva)", ylab = "Profundidad media (ft)",
     main = "Gráfica N°2: Modelo Logarítmico vs. Realidad — Kansas Este",
     cex.main = 0.9, frame.plot = FALSE)
grid(nx = NULL, ny = NULL, col = "#D7DBDD", lty = "dotted")
curve(a_log + b_log * log(x), add = TRUE, col = "#1F2A33", lwd = 3)
legend("topleft", legend = c("Datos (Longitud, Prof. media)", "Modelo Logarítmico"),
       col = c("#16A085", "#1F2A33"), pch = c(16, NA), lwd = c(NA, 3), bty = "n")
box()

9 Test

El coeficiente de correlación de Pearson debe superar 0.7 o -0.7 para aceptar el modelo. Para el modelo logarítmico, al ser lineal en \(\ln(x)\), se prueba sobre \(\ln(x)\) vs. \(y\).

r_log <- cor.test(log(tabla_lon$x_log), tabla_lon$profundidad_media)

data.frame(
  Modelo = "Logarítmico (semi-log)",
  r = round(r_log$estimate, 4),
  R2 = round(r_log$estimate^2, 4),
  Supera_0.7 = abs(r_log$estimate) > 0.7,
  p_valor = format.pval(r_log$p.value, digits = 4)
) %>%
  gt() %>%
  tab_header(title = md("**Tabla N°2: Test de Pearson — Modelo Logarítmico**")) %>%
  tab_source_note(source_note = "Autor: GRUPO") %>%
  cols_align(align = "center", everything())
Tabla N°2: Test de Pearson — Modelo Logarítmico
Modelo r R2 Supera_0.7 p_valor
Logarítmico (semi-log) 0.9743 0.9493 TRUE < 0.00000000000000022
Autor: GRUPO

El coeficiente supera ampliamente el umbral de |r| > 0.7, por lo que el modelo logarítmico se acepta.

10 Restricciones

El modelo es válido únicamente dentro del rango de x para el que fue ajustado, y solo para pozos de la región Este (lon > -97.5°); no se recomienda extrapolar fuera de estos límites.

  • Válido para x_log (longitud oeste positiva) dentro del rango [94.6, 97.5].
  • Requiere x > 0, condición garantizada por la transformación x_log = -lon_bin (la longitud en Kansas siempre es negativa, por lo que su opuesto siempre es positivo).

11 Estimación

x_est_log <- round(mean(range(tabla_lon$x_log)), 1)
y_est_log <- a_log + b_log * log(x_est_log)

data.frame(
  X_estimado = x_est_log,
  Y_estimado = round(y_est_log, 1)
) %>%
  gt() %>%
  tab_header(title = md("**Tabla N°3: Estimación Puntual de Profundidad**")) %>%
  tab_source_note(source_note = "Autor: GRUPO") %>%
  cols_align(align = "center", everything())
Tabla N°3: Estimación Puntual de Profundidad
X_estimado Y_estimado
96 1735.4
Autor: GRUPO

12 Conclusiones

  • Entre la Longitud (X, transformada a positiva) y la Profundidad del pozo (Y) existe una relación logarítmica: \(y = -455139.09 + 100096.32 \cdot \ln(x)\), con \(r = 0.974\) (escala semi-log).
  • La profundidad crece rápido cerca del límite regional (-97.5°) y luego se desacelera conforme se avanza hacia el este, un patrón típico de una cuenca sedimentaria que se hace más somera en esa dirección.
  • El coeficiente de correlación supera 0.7 y el test F del modelo resultó significativo, por lo que el modelo pasa el test de bondad de ajuste y se acepta.
  • El análisis se restringió a la región Este de Kansas porque, en el resto del estado (Kansas Oeste), esta misma relación (Longitud vs. Profundidad) no sigue un patrón logarítmico limpio.

Autor: GRUPO — Análisis Estadístico, Kansas Hydrocarbon Leases Dataset