CARGAR LIBRERÍAS Y DATOS

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
setwd("D:/Data") 
datos <- read.csv("derrames_globales_.csv", header = TRUE, sep = ";", dec =".")

1 Preparación de variables

x <- as.numeric(as.character(datos[, 20]))  # Volumen Derramado
## Warning: NAs introducidos por coerción
y <- as.numeric(as.character(datos[, 17]))  # Máximo Liberación 
datos_raw <- data.frame(x = x, y = y)
datos_clean <- na.omit(datos_raw)

# Filtrar valores mayores a 0 para ambas variables
datos_finales <- subset(datos_clean, x > 0 & y > 0)

2 Gráfica 1: Relación entre Volumen Derramado y Máxima Liberación

plot(datos_finales$x, datos_finales$y,
     col = rgb(0, 0, 1, 0.5), 
     pch = 16, cex = 0.8,
     main = "Relación entre Volumen Derramado y Máxima Liberación",
     xlab = "Volumen Derramado (Galones)",
     ylab = "Máxima Liberación Estimada (Galones)")

3 Conjetura de modelo Potencial

\[ Y = α \cdot X^{(β)} \]

# Ajuste del modelo lineal en escala logarítmica
modelo_pot <- lm(log(y) ~ log(x), data = datos_finales)

# Coeficientes
res <- summary(modelo_pot)
res
## 
## Call:
## lm(formula = log(y) ~ log(x), data = datos_finales)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.5070 -1.4222 -0.3867  0.8669 10.9007 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 7.028493   0.067755  103.73   <2e-16 ***
## log(x)      0.221128   0.008236   26.85   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.104 on 1344 degrees of freedom
## Multiple R-squared:  0.3491, Adjusted R-squared:  0.3486 
## F-statistic: 720.8 on 1 and 1344 DF,  p-value: < 2.2e-16
# Recuperación de parámetros originales
# El intercepto del modelo lineal es ln(a), por lo tanto a = exp(intercepto)
a <- exp(coef(modelo_pot)[1]) #aplha
b <- coef(modelo_pot)[2] #beta

4 Gráfica 2: Relación entre Volumen Derramado y Máxima Liberación (Modelo)

# Secuencia para la línea de tendencia
x_seq <- seq(min(datos_finales$x), max(datos_finales$x), length.out = 500)

# Predicción usando la fórmula de potencia: Y = a * X^b
y_pred <- a * x_seq ^ b

plot(datos_finales$x, datos_finales$y,
     col = rgb(0, 0, 1, 0.5), 
     pch = 16, cex = 0.8,
     main = "Relación entre Volumen Derramado y Máxima Liberación",
     xlab = "Volumen Derramado (Galones)",
     ylab = "Máxima Liberación Estimada (Galones)")

# Línea de regresión
lines(x_seq, y_pred, col = "red", lwd = 2)

Zoom de la curvatura [0-2000 gal]

# Configuración de límites para el zoom
limite_zoom_x <- 2000

# Predicción del techo en el límite del zoom
# Usamos exp(predict(...)) porque predict devuelve el logaritmo de Y
techo_linea <- exp(predict(modelo_pot, newdata = data.frame(x = limite_zoom_x)))
limite_zoom_y <- techo_linea * 1.5 

# Generar datos para la curva en el zoom
x_seq_zoom <- seq(1, limite_zoom_x, length.out = 500)
y_pred_zoom <- a * x_seq_zoom ^ b

Gráfica 3: Zoom del modelo de regresión [0-2000gal]

plot(datos_finales$x, datos_finales$y,
     xlim = c(0, limite_zoom_x),
     ylim = c(0, limite_zoom_y),  
     col = rgb(0, 0, 1, 0.4),      
     pch = 19, cex = 1.5,
     main = "Zoom al Modelo Potencial (0 - 2000 gal)",
     xlab = "Volumen Derramado (Galones)",
     ylab = "Máxima Liberación (Galones)")

grid(col = "gray", lty = "dotted")
lines(x_seq_zoom, y_pred_zoom, col = "red", lwd = 4)

legend("bottomright", 
       legend = c("Modelo Potencial"),
       col = c("red"), 
       pch = c(19, NA), 
       lty = c(NA, 1), 
       lwd = c(NA, 4),
       bg = "white")

5 Test de Pearson

# Calculamos la correlación entre log(x) y log(y) para el modelo potencial
pearson_r <- cor(log(datos_finales$x), log(datos_finales$y), method = "pearson")

# Imprimimos el resultado
cat("=== RESULTADO TEST DE PEARSON (Log-Log) ===\n")
## === RESULTADO TEST DE PEARSON (Log-Log) ===
cat("Coeficiente de Pearson (R):", round(pearson_r, 4), "\n")
## Coeficiente de Pearson (R): 0.5908
if(abs(pearson_r) > 0.7) {
  cat("INTERPRETACIÓN: Correlación Fuerte.\n")
} else if(abs(pearson_r) > 0.4) {
  cat("INTERPRETACIÓN: Correlación Moderada.\n")
} else {
  cat("INTERPRETACIÓN: Correlación Débil.\n")
}
## INTERPRETACIÓN: Correlación Moderada.

6 Ecuación del modelo potencial

\[ Y = 7.028 \cdot X^{(0.2211)} \]

cat("\n=== ECUACIÓN FINAL ===\n")
## 
## === ECUACIÓN FINAL ===
cat(paste0("Y = ", round(a, 4), " * X ^ ", round(b, 4)), "\n")
## Y = 1128.3288 * X ^ 0.2211

7 Estimación de un punto

nuevo_volumen <- 70000
# Predicción manual usando los coeficientes
prediccion <- a * nuevo_volumen ^ b

cat("\n=== PREDICCIÓN ===\n")
## 
## === PREDICCIÓN ===
cat("Para un volumen derramado de", nuevo_volumen, "galones:\n")
## Para un volumen derramado de 70000 galones:
cat("Máxima liberación estimada:", round(prediccion, 2), "galones\n")
## Máxima liberación estimada: 13299.1 galones

Conclusiones Entre la variable independiente Volumen Derramado (X) y la variable dependiente Máxima Liberación (Y) existe una relación matemática de tipo regresión potencial, la cual describe cómo el riesgo máximo escala en función del volumen real derramado. Esta relación se expresa mediante la fórmula del modelo:\(Y = 7.028 \cdot X^{0.2211}\) (donde el exponente β=0.221128) sujeta a las restricciones de incluir únicamente valores mayores a cero.Para un derrame de 70,000 galones, el modelo estima una liberación máxima de 13299.1 galones.