CARGAR LIBRERÍAS Y DATOS

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.2
## 
## 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)

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 Relación en el intervalo [32100-37100]

# Filtrar datos específicos para este intervalo
datos_intervalo <- subset(datos_finales, x >= 32100 & x <= 37100)

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

# Coeficientes
res <- summary(modelo_pot)
res
## 
## Call:
## lm(formula = log(y) ~ log(x), data = datos_intervalo)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.036701  0.003342  0.004121  0.004922  0.005250 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -0.2935     1.2220  -0.240    0.815    
## log(x)        1.0277     0.1169   8.794 2.63e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01223 on 11 degrees of freedom
## Multiple R-squared:  0.8755, Adjusted R-squared:  0.8641 
## F-statistic: 77.33 on 1 and 11 DF,  p-value: 2.628e-06
a <- exp(coef(modelo_pot)[1]) # alpha
b <- coef(modelo_pot)[2]      # beta

7 Gráfica 3: Relación entre Volumen Derramado y Máxima Liberación (Intervalo)

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

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

plot(datos_intervalo$x, datos_intervalo$y,
     col = rgb(0.5, 0, 0.5, 0.6), 
     pch = 16, cex = 1.2,
     main = "Relación Volumen vs Máxima Liberación [32100 - 37100] gal",
     xlab = "Volumen Derramado (Galones)",
     ylab = "Máxima Liberación Estimada (Galones)")

# Línea de regresión
lines(x_seq, y_pred, col = "red", lwd = 3)
legend("bottomright", legend = "Modelo Potencial", col = "red", lwd = 3, bty = "n")

8 Test de Pearson (Intervalo)

# Calculamos la correlación entre log(x) y log(y) solo para el intervalo
pearson_r <- cor(log(datos_intervalo$x), log(datos_intervalo$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(abs(pearson_r), 4), "\n")
## Coeficiente de Pearson (R): 0.9357
if(abs(pearson_r) >= 0.8) {
  cat("INTERPRETACIÓN: Correlación Fuerte. Cumple con el umbral > 0.80.\n")
} else {
  cat("INTERPRETACIÓN: Correlación Débil.\n")
}
## INTERPRETACIÓN: Correlación Fuerte. Cumple con el umbral > 0.80.

9 Ecuación del modelo potencial

\[ Y = 0.7456 \cdot X^{(1.0277)} \]

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

10 Estimación de un punto

nuevo_volumen <- 35000
# 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 (dentro del intervalo):\n")
## Para un volumen derramado de 35000 galones (dentro del intervalo):
cat("Máxima liberación estimada:", round(prediccion, 2), "galones\n")
## Máxima liberación estimada: 34856.07 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 = 0.7456 X^{(1.0277)}$ (donde el exponente β=1.0277) sujeta a las restricciones de incluir únicamente valores mayores a cero.Para un derrame de 35000 galones, el modelo estima una liberación máxima de 34856.07 galones.