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 Lámina de Agua como variable independiente (\(x\)) dado que representa el entorno geográfico y la ubicación en la superficie del mar.

La Profundidad Vertical Promedio actúa como variable dependiente (\(y\)), pues refleja la posición del yacimiento en el subsuelo en función de esa ubicación.

Esta relación busca modelar la geometría de la cuenca sedimentaria: geológicamente, a medida que se avanza hacia aguas más profundas, las capas del yacimiento tienden a descender siguiendo una curvatura estructural, lo cual justifica el análisis de su tendencia no lineal.

  • Variable Independiente (X): Lámina de Agua (Agrupada en rangos de 50m).
  • Variable Dependiente (Y): Profundidad Vertical Promedio (m).
# Limpieza Inicial de Datos
datos_raw <- datos %>%
  select(LAMINA_D_AGUA_M, PROFUNDIDADE_VERTICAL_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_VERTICAL_M), ",", ".")))
  ) %>%
  filter(!is.na(x_raw) & !is.na(y_raw) & x_raw > 0 & y_raw > 0)

3 Análisis Visual de Datos Crudos

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 Profundidad Vertical en función de la Lámina de Agua",
  
     xlab = "Lámina de Agua (m)",
     ylab = "Profundidad Vertical (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 para reducir el ruido y extraer la tendencia estructural descrita anteriormente.

# Agrupamiento por Rangos
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$y

5 Análisis Gráfico (Tendencia Cuadrática)

par(mar = c(5, 5, 4, 2))
plot(x, y,
     main = "Perfil de Profundidad Vertical Promedio en función de la Lámina de Agua.",
     xlab = "Lámina de Agua Agrupada (m)",
     ylab = "Profundidad Vertical 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 Polinómico (Grado 2)

Se ajusta un polinomio de segundo grado (Parábola): \[y = \beta_2 x^2 + \beta_1 x + \beta_0\]

# Ajuste Polinómico Grado 2
modelo_poli <- lm(y ~ poly(x, 2, raw = TRUE))

7 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))

# Base del gráfico
plot(x, y,
     main = "Gráfica N°3: Modelo Cuadrático: Profundidad Vertical en función de la Lámina de Agua",
     xlab = "Lámina de Agua Agrupada (m)",
     ylab = "Profundidad Vertical Promedio (m)",
     col = "#3498DB", pch = 16, cex = 1.0, frame.plot = FALSE)

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

# Generar Curva 
x_seq <- seq(min(x), max(x), length.out = 500)
predicciones <- predict(modelo_poli, newdata = list(x = x_seq), interval = "confidence", level = 0.95)

#Intervalo de Confianza
polygon(c(x_seq, rev(x_seq)), 
        c(predicciones[,"lwr"], rev(predicciones[,"upr"])),
        col = rgb(0.5, 0.5, 0.5, 0.2), border = NA) 

# Línea de tendencia
lines(x_seq, predicciones[,"fit"], col = "#E74C3C", lwd = 3)

legend("topleft", 
       legend = c("Datos (Promedios)", "Modelo Cuadrático", "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")

8 Resultados y Ecuación

8.1 Bondad de Ajuste

cat(paste0("**Coeficiente de Determinación ($R^2$):** ", round(r2, 4), " (", round(r2*100, 2), "%)<br>"))

Coeficiente de Determinación (\(R^2\)): 0.74 (74%)

cat(paste0("**Correlación del ajuste (r):**", round(r, 4), "*"))

Correlación del ajuste (r):0.8603*

8.2 Ecuación Matemática

cat(paste0("La ecuación resultante es: ", ecuacion_txt_latex))

La ecuación resultante es: \[y = 0.000617x^2 - 0.88057x + 3597.4931\]

9 Tabla Resumen del Modelo

tabla_resumen <- data.frame(
  Variable = c("Lámina de Agua", "Prof. Vertical (Promedio)", ""),
  Tipo = c("Independiente (X)", "Dependiente (Y)", ""),

  R2 = c(paste0(round(r2, 4)), "", ""),
  Parametros = c(
    paste0("a (x²) = ", sprintf("%.6f", a)),
    paste0("b (x) = ", sprintf("%.5f", b)),
    paste0("c (Int) = ", sprintf("%.4f", c))
  ),
  Ecuacion = c(ecuacion_txt_simple, "", "")
)

tabla_resumen %>%
  gt() %>%
  tab_header(
    title = md("**RESUMEN MODELO CUADRÁTICO**"),
    subtitle = "Tendencia Regional (Agrupada)"
  ) %>%
  tab_source_note(source_note = "Fuente: Cálculos 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_options(
    table.border.top.color = "#2C3E50",
    data_row.padding = px(8)
  )
RESUMEN MODELO CUADRÁTICO
Tendencia Regional (Agrupada)
Variable Tipo R2 Parametros Ecuacion
Lámina de Agua Independiente (X) 0.74 a (x²) = 0.000617 y = 0.000617x² - 0.88057x + 3597.4931
Prof. Vertical (Promedio) Dependiente (Y) b (x) = -0.88057
c (Int) = 3597.4931
Fuente: Cálculos Grupo 3

10 Conclusiones

texto_conclusion <- paste0(
  "Entre la lámina de agua y la profundidad vertical promedio existe una relación de tipo **polinómica de segundo grado (cuadrática)** ",
  "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 vertical promedio de **", round(y_est, 2), " m**."
)

cat(texto_conclusion)

Entre la lámina de agua y la profundidad vertical promedio existe una relación de tipo polinómica de segundo grado (cuadrática) explicada por un coeficiente de determinación \(R^2\) de 0.74.

La ecuación matemática del modelo es:
\[y = 0.000617x^2 - 0.88057x + 3597.4931\]

Por ejemplo, para una lámina de agua de 1402.94 m se estima una profundidad vertical promedio de 3577.4 m.