Se aplica un modelo de crecimiento exponencial sobre los datos agrupados para reducir el ruido y encontrar la tendencia de la cuenca.
Se estableció la Lámina de Agua como variable independiente (\(x\)) por ser el condicionante ambiental primario que define el tipo de operación (aguas someras vs. profundas). La Profundidad de Perforación actúa como variable dependiente (\(y\)), ya que representa la longitud total de perforación requerida para operar en ese entorno.
Esta relación modela el crecimiento de la complejidad técnica: a medida que aumenta la profundidad del mar, la longitud del pozo tiende a crecer de forma acelerada (exponencial) para compensar la distancia vertical y las trayectorias direccionales necesarias desde la plataforma.
# Limpieza Inicial
datos_raw <- datos %>%
select(LAMINA_D_AGUA_M, PROFUNDIDADE_SONDADOR_M) %>%
mutate(
x_raw = abs(as.numeric(str_replace(as.character(LAMINA_D_AGUA_M), ",", "."))),
y_raw = abs(as.numeric(str_replace(as.character(PROFUNDIDADE_SONDADOR_M), ",", ".")))
) %>%
filter(!is.na(x_raw) & !is.na(y_raw) & x_raw > 0 & y_raw > 0)datos_plot <- datos_raw %>% filter(y_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 Prof. de Perforación en función de la Lámina de Agua",
xlab = "Lámina de Agua (m)",
ylab = "Profundidad de Perforación (m)",
col = color_trans, pch = 16, cex = 0.6, frame.plot = FALSE)
grid(nx = NULL, ny = NULL, col = "#D7DBDD", lty = "dotted")Debido a la dispersión observada en la Gráfica N°1, se aplica Binning para reducir el ruido y encontrar la tendencia de la cuenca.
# Agrupamiento
datos_model <- datos_raw %>%
mutate(x_bin = round(x_raw / 50) * 50) %>%
group_by(x_bin) %>%
summarise(
y = mean(y_raw, na.rm = TRUE),
conteo = n()
) %>%
rename(x = x_bin) %>%
filter(conteo >= 3)
# 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$ypar(mar = c(5, 5, 4, 2))
plot(x, y,
main = "Gráfica N°2: Perfil de Prof. de Perforación Promedio en función de la Lámina de Agua",
xlab = "Lámina de Agua Agrupada (m)",
ylab = "Profundidad Perforación 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)Se plantea un modelo exponencial: \[y = a \cdot e^{bx}\] Linealización: \(\ln(y) = \ln(a) + bx\)
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 Exponencial: Prof. de Perforación en función de la Lámina de Agua",
xlab = "Lámina de Agua Agrupada (m)",
ylab = "Profundidad Perforación 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_exp, 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 Exponencial", "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")tabla <- data.frame(
Variable = c("Lámina de Agua", "Prof. Perforación"),
Tipo = c("Independiente (X)", "Dependiente (Y)"),
R2 = c(paste0(round(r2, 4)), ""),
Intercepto_a = c(sprintf("%.4f", a), ""),
Coeficiente_b = c(sprintf("%.5f", b), ""),
Ecuacion = c(ecuacion_txt_simple, "")
)
tabla %>%
gt() %>%
tab_header(
title = md("**RESUMEN DEL MODELO EXPONENCIAL**"),
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 EXPONENCIAL | |||||
| Parámetros y Bondad de Ajuste | |||||
| Variable | Tipo | R2 | Intercepto_a | Coeficiente_b | Ecuacion |
|---|---|---|---|---|---|
| Lámina de Agua | Independiente (X) | 0.8258 | 2913.1272 | 0.00022 | y = 2913.1272 * e^(0.00022x) |
| Prof. Perforación | Dependiente (Y) | ||||
| Fuente: Grupo 3 | |||||
texto_conclusion <- paste0(
"Entre la lámina de agua y la profundidad de perforación existe una relación de tipo **exponencial**, ",
"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 lámina de agua de **", round(x_ejemplo, 2), " m**, ",
"se estima una profundidad de perforación de **", round(y_est, 2), " m**."
)
cat(texto_conclusion)Entre la lámina de agua y la profundidad de perforación existe una
relación de tipo exponencial, explicada por un
coeficiente de determinación \(R^2\) de 0.8258.
La
ecuación matemática del modelo es:
\[y =
2913.1272 \cdot e^{0.00022x}\]
Por ejemplo, para una
lámina de agua de 1403.92 m, se estima una profundidad
de perforación de 3945.85 m.