1 Configuración y Carga de Datos

archivo <- "tabela_de_pocos_janeiro_2018.xlsx"

tryCatch({
  datos <- read_excel(archivo)
}, error = function(e) {
  stop("Error: Verifica que el archivo .xlsx esté en la carpeta.")
})

2 Extracción y Estrategia de Binning (225m)

Se analiza la correlación geológica entre la profundidad del yacimiento y el entorno marino. Para optimizar el ajuste, se filtra la zona costera (Lámina > 80m) y se aplica un Binning de 225m a la profundidad vertical.

  • Variable Independiente (X): Profundidad Vertical (Agrupada cada 225m).
  • Variable Dependiente (Y): Lámina de Agua Promedio (m).
# 1. 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), ",", ".")))
  ) %>%
  # FILTRO CRÍTICO: Eliminamos la zona de transición costera (ruido)
  filter(!is.na(x_raw) & !is.na(y_raw) & x_raw > 0 & y_raw > 80) 

# 2. BINNING (Agrupamiento Ajustado)
# Agrupamos cada 225m para un balance entre detalle y suavizado
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) %>% # Filtro de representatividad estadística
  filter(x > 0 & y > 0)

# 3. Limpieza de Outliers (Estricta)
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

3 Análisis Gráfico (Tendencia Potencial)

par(mar = c(5, 5, 4, 2))
plot(x, y,
     main = "Gráfica N°1: 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)

4 Modelo Potencial

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

# Ajuste Log-Log
modelo_pot <- lm(log(y) ~ log(x))

5 Gráfica del Modelo Ajustado

par(mar = c(5, 5, 4, 2))
plot(x, y,
     main = "Gráfica N°2: Ajuste Potencial Final",
     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")

# Generar Curva
x_seq <- seq(min(x), max(x), length.out = 500)
y_pred <- exp(predict(modelo_pot, list(x = x_seq)))

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

legend("topleft", legend = "Modelo Potencial", 
       col = "#E74C3C", lwd = 3, bty = "n")

6 Resultados y Ecuación

6.1 Bondad de Ajuste

cat(paste0("**Coeficiente de Correlación (R):** ", round(r * 100, 4), "%<br>"))

Coeficiente de Correlación (R): 81.2796%

cat(paste0("**Coeficiente de Determinación (R²):** ", round(r2 * 100, 4), "%"))

Coeficiente de Determinación (R²): 66.0638%

6.2 Ecuación Matemática

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

La ecuación resultante es: y = 8.638160 * x ^ 0.59931

7 Tabla Resumen del Modelo

tabla <- data.frame(
  Variable = c("Prof. Vertical", "Lámina de Agua"),
  Tipo = c("Independiente (X)", "Dependiente (Y)"),
  Pearson = c(paste0(round(r*100,2), "%"), ""),
  R2 = c(paste0(round(r2*100,2), "%"), ""),
  Intercepto = c(sprintf("%.6f", a), ""),
  Pendiente = c(sprintf("%.5f", b), ""), 
  Ecuacion = c(ecuacion_txt, "")
)

tabla %>%
  gt() %>%
  tab_header(
    title = md("**RESUMEN DEL MODELO POTENCIAL**"),
    subtitle = "Parámetros y Bondad de Ajuste"
  ) %>%
  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_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 Pearson R2 Intercepto Pendiente Ecuacion
Prof. Vertical Independiente (X) 81.28% 66.06% 8.638160 0.59931 y = 8.638160 * x ^ 0.59931
Lámina de Agua Dependiente (Y)
Fuente: Cálculos Grupo 3

8 Conclusiones

texto_conclusion <- paste0(
  "Entre la profundidad vertical del yacimiento y la lámina de agua existe una fuerte relación de tipo potencial ",
  "cuya ecuación matemática está representada por **", ecuacion_txt, "**, ",
  "siendo ‘x’ la profundidad vertical en m y ‘y’ la lámina de agua en m donde no existen restricciones.<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 cuya ecuación matemática está representada por y = 8.638160 * x ^ 0.59931, siendo ‘x’ la profundidad vertical en m y ‘y’ la lámina de agua en m donde no existen restricciones.

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