1 Configuración y Carga de Datos

archivo <- "tabela_de_pocos_janeiro_2018.xlsx"

tryCatch({
  datos <- read_excel(archivo)
}, error = function(e) {
  stop("Error")
})

2 Extracción y Depuración de Variables

Se definió la Profundidad Vertical como variable independiente (\(x\)) dado que representa la ubicación estructural del yacimiento objetivo en el subsuelo.

La Lámina de Agua actúa como variable dependiente (\(y\)), pues refleja el entorno marino suprayacente correspondiente a esa estructura.

Esta relación modela la correspondencia geológica de la cuenca: en los campos petroleros analizados (típicos del Presal brasileño), existe una tendencia no lineal donde los objetivos geológicos más profundos se encuentran correlacionados con un incremento acelerado en la profundidad del mar (talud continental y aguas ultra-profundas), comportamiento que se ajusta idealmente a una Ley de Potencia.

  • Variable Independiente (X): Profundidad Vertical (Agrupada cada 225m).
  • Variable Dependiente (Y): Lámina de Agua Promedio (m).
# Limpieza Inicial
datos_raw <- datos %>%
  select(PROFUNDIDADE_VERTICAL_M, LAMINA_D_AGUA_M) %>%
  mutate(
    x_raw = abs(as.numeric(str_replace(as.character(PROFUNDIDADE_VERTICAL_M), ",", "."))),
    y_raw = abs(as.numeric(str_replace(as.character(LAMINA_D_AGUA_M), ",", ".")))
  ) %>%
  filter(!is.na(x_raw) & !is.na(y_raw) & x_raw > 0 & y_raw > 80) %>%
  filter(x_raw < 15000) 

3 Análisis Visual de Datos

Antes de aplicar el agrupamiento, se observa la dispersión original de los datos para justificar la necesidad del proceso de Binning.

datos_plot <- datos_raw %>% filter(x_raw < 15000)

par(mar = c(5, 5, 4, 2))
color_trans <- rgb(0.2, 0.6, 0.86, 0.4) 

plot(datos_plot$x_raw, datos_plot$y_raw,
     main = "Gráfica N°1: Dispersión de Lámina de Agua en función de Prof. Vertical",
     xlab = "Profundidad Vertical (m)",
     ylab = "Lámina de Agua (m)",
     col = color_trans, pch = 16, cex = 0.6, frame.plot = FALSE)
grid(nx = NULL, ny = NULL, col = "#D7DBDD", lty = "dotted")

4 Aplicación de Binning

Debido a la dispersión observada en la Gráfica N°1, se aplica Binning (cada 225m) para reducir el ruido y extraer la tendencia geológica.

datos_model <- datos_raw %>%
  mutate(x_bin = round(x_raw / 225) * 225) %>% 
  group_by(x_bin) %>%
  summarise(
    y = mean(y_raw, na.rm = TRUE), 
    conteo = n()
  ) %>%
  rename(x = x_bin) %>%
  filter(conteo >= 3) %>% 
  filter(x > 0 & y > 0)

# Limpieza de Outliers 
lim_y <- quantile(datos_model$y, c(0.05, 0.95))
datos_model <- datos_model %>%
  filter(y >= lim_y[1] & y <= lim_y[2])

x <- datos_model$x
y <- datos_model$y

5 Análisis Gráfico (Tendencia Potencial)

par(mar = c(5, 5, 4, 2))
plot(x, y,
     main = "Gráfica N°2: Tendencia Geológica Marina (Agrupada 225m)",
     xlab = "Profundidad Vertical Objetivo (m)",
     ylab = "Lámina de Agua Promedio (m)",
     col = "#3498DB", pch = 16, cex = 1.2, frame.plot = FALSE)
grid(nx = NULL, ny = NULL, col = "#D7DBDD", lty = "dotted")
axis(1); axis(2)

6 Modelo Potencial

Se plantea el modelo: \[y = a \cdot x^b\] Linealización: \(\ln(y) = \ln(a) + b \cdot \ln(x)\)

modelo_pot <- lm(log(y) ~ log(x))

6.1 Gráfica del Modelo con Intervalos de Confianza

Se presenta el ajuste del modelo incluyendo la banda de incertidumbre estadística (Intervalo de Confianza del 95%).

par(mar = c(5, 5, 4, 2))
plot(x, y,
     main = "Gráfica N°3: Modelo Potencial: Lámina de Agua en función de Prof. Vertical",
     xlab = "Profundidad Vertical Objetivo (m)",
     ylab = "Lámina de Agua Promedio (m)",
     col = "#3498DB", pch = 16, cex = 1.0, frame.plot = FALSE)

grid(nx = NULL, ny = NULL, col = "#D7DBDD", lty = "dotted")


x_seq <- seq(min(x), max(x), length.out = 500)


pred_log <- predict(modelo_pot, list(x = x_seq), interval = "confidence", level = 0.95)

y_pred_fit <- exp(pred_log[, "fit"])
y_pred_lwr <- exp(pred_log[, "lwr"])
y_pred_upr <- exp(pred_log[, "upr"])

# Intervalo de Confianza
polygon(c(x_seq, rev(x_seq)), 
        c(y_pred_lwr, rev(y_pred_upr)),
        col = rgb(0.5, 0.5, 0.5, 0.2), border = NA) 

lines(x_seq, y_pred_fit, col = "#E74C3C", lwd = 3)

legend("topleft", legend = c("Datos (Promedios)", "Modelo Potencial", "I.C. 95%"), 
       col = c("#3498DB", "#E74C3C", "gray"), 
       pch = c(16, NA, 15), lwd = c(NA, 3, NA), pt.cex = c(1, NA, 2), bty = "n")

7 Resultados y Ecuación

7.1 Bondad de Ajuste

# Ajuste sutil: Priorizar R2 y aclarar términos
cat(paste0("**Coeficiente de Determinación ($R^2$):** ", round(r2, 4), " (", round(r2*100, 2), "%)<br>"))

Coeficiente de Determinación (\(R^2\)): 0.6606 (66.06%)

cat(paste0("**Correlación del modelo linealizado (log):** ", round(r, 4), "*"))

Correlación del modelo linealizado (log): 0.8128*

7.2 Ecuación Matemática

# Salida en LaTeX
cat(paste0("La ecuación resultante es: ", ecuacion_txt_latex))

La ecuación resultante es: \[y = 8.638160 \cdot x^{0.59931}\]

8 Tabla Resumen del Modelo

tabla <- data.frame(
  Variable = c("Prof. Vertical", "Lámina de Agua"),
  Tipo = c("Independiente (X)", "Dependiente (Y)"),
  R2 = c(paste0(round(r2, 4)), ""),
  Intercepto_a = c(sprintf("%.6f", a), ""),
  Exponente_b = c(sprintf("%.5f", b), ""), 
  Ecuacion = c(ecuacion_txt_simple, "")
)

tabla %>%
  gt() %>%
  tab_header(
    title = md("**RESUMEN DEL MODELO POTENCIAL**"),
    subtitle = "Parámetros y Bondad de Ajuste"
  ) %>%
  tab_source_note(source_note = "Fuente: Grupo 3") %>%
  cols_align(align = "center", columns = everything()) %>%
  tab_style(
    style = list(cell_fill(color = "#2C3E50"), cell_text(color = "white", weight = "bold")),
    locations = cells_title()
  ) %>%
  tab_style(
    style = list(cell_fill(color = "#ECF0F1"), cell_text(weight = "bold", color = "#2C3E50")),
    locations = cells_column_labels()
  ) %>%
  tab_options(
    table.border.top.color = "#2C3E50",
    table.border.bottom.color = "#2C3E50",
    data_row.padding = px(8)
  )
RESUMEN DEL MODELO POTENCIAL
Parámetros y Bondad de Ajuste
Variable Tipo R2 Intercepto_a Exponente_b Ecuacion
Prof. Vertical Independiente (X) 0.6606 8.638160 0.59931 y = 8.638160 * x ^ 0.59931
Lámina de Agua Dependiente (Y)
Fuente: Grupo 3

9 Conclusiones

texto_conclusion <- paste0(
  "Entre la profundidad vertical del yacimiento y la lámina de agua existe una fuerte relación de tipo **potencial**, ",
  "explicada por un coeficiente de determinación **$R^2$ de ", round(r2, 4), "**.<br><br>",
  "La ecuación matemática del modelo es:<br>", ecuacion_txt_latex, "<br><br>",
  "Por ejemplo, para una profundidad objetivo de **", round(x_ejemplo, 2), " m** ",
  "se estima un entorno marino (lámina de agua) de **", round(y_est, 2), " m**."
)

cat(texto_conclusion)

Entre la profundidad vertical del yacimiento y la lámina de agua existe una fuerte relación de tipo potencial, explicada por un coeficiente de determinación \(R^2\) de 0.6606.

La ecuación matemática del modelo es:
\[y = 8.638160 \cdot x^{0.59931}\]

Por ejemplo, para una profundidad objetivo de 3834 m se estima un entorno marino (lámina de agua) de 1213.77 m.