CARGAR LIBRERÍAS Y DATOS

library(scatterplot3d)
## Warning: package 'scatterplot3d' was built under R version 4.5.2
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
library(readr)
## Warning: package 'readr' was built under R version 4.5.2
setwd("D:/Data") 
datos <- read.csv("derrames_globales_.csv", header = TRUE, sep = ";", dec =".")

1 Preparación de variables

# Limpieza y conversión de variables (Quitando puntos de miles)
y_multi <- as.numeric(gsub(",", ".", gsub("\\.", "", datos$Volumen_derramados_galones))) 
x1 <- as.numeric(gsub(",", ".", gsub("\\.", "", datos$Maximo_liberacion_galones)))
x2 <- as.numeric(gsub(",", ".", gsub("\\.", "", datos$Respuesta_actual_galones))) 

# Crear dataframe y limpiar nulos
datos_filtrados <- na.omit(data.frame(y = y_multi, x1 = x1, x2 = x2))

2 Gráfica 1: Visualización espacial 3D

scatterplot3d(datos_filtrados$x1, datos_filtrados$x2, datos_filtrados$y,
              angle = 120,
              main = "Dispersión: Volumen vs Liberación y Respuesta",
              xlab = "Maximo Liberacion (gal)",
              ylab = "Respuesta Actual (gal)",
              zlab = "Volumen Derramado (gal)",
              color = "blue", pch = 16, cex.symbols = 0.6)

3 Conjetura de modelo Multivariable

\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 \]

# Generar Modelo de Regresión Lineal Múltiple
RegresionMultiple <- lm(y ~ x1 + x2, data = datos_filtrados)

# Resumen estadístico
summary(RegresionMultiple)
## 
## Call:
## lm(formula = y ~ x1 + x2, data = datos_filtrados)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -184362976     -10523      -6673      -6166  329349359 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 6.310e+03  1.777e+05   0.036    0.972    
## x1          2.829e-01  3.319e-02   8.523   <2e-16 ***
## x2          1.266e+00  3.000e-02  42.199   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8323000 on 2205 degrees of freedom
## Multiple R-squared:  0.7529, Adjusted R-squared:  0.7526 
## F-statistic:  3358 on 2 and 2205 DF,  p-value: < 2.2e-16
# Extracción de Coeficientes
coef_multi <- coef(RegresionMultiple)
c_m <- coef_multi[1] # Intercepto (beta 0)
a_m <- coef_multi[2] # Coeficiente x1 (Liberacion)
b_m <- coef_multi[3] # Coeficiente x2 (Respuesta)

4 Gráfica 2: Visualización espacial 3D (plano de regresión)

grafico <- scatterplot3d(datos_filtrados$x1, datos_filtrados$x2, datos_filtrados$y,
                         angle = 120,
                         main = "Plano de Regresión 3D Ajustado",
                         xlab = "Maximo Liberacion (gal)",
                         ylab = "Respuesta Actual (gal)",
                         zlab = "Volumen Derramado (gal)",
                         color = rgb(0, 0, 1, 0.5), pch = 16)

grafico$plane3d(RegresionMultiple, col = "red", lty = "solid")

5 Test de correlación múltiple

# Calculamos la correlación entre el Volumen Real y el Volumen Predicho
y_predichos <- predict(RegresionMultiple)
pearson_r <- cor(datos_filtrados$y, y_predichos, method = "pearson")

cat("=== RESULTADO DE CORRELACIÓN MÚLTIPLE (R) ===\n")
## === RESULTADO DE CORRELACIÓN MÚLTIPLE (R) ===
cat("Coeficiente de Correlación Multiple:", round(pearson_r, 4), "\n")
## Coeficiente de Correlación Multiple: 0.8677
if(abs(pearson_r) > 0.7) {
  cat("INTERPRETACIÓN: Relación Multivariable Fuerte.\n")
} else if(abs(pearson_r) > 0.4) {
  cat("INTERPRETACIÓN: Relación Multivariable Moderada.\n")
} else {
  cat("INTERPRETACIÓN: Relación Multivariable Débil.\n")
}
## INTERPRETACIÓN: Relación Multivariable Fuerte.

6 Ecuación del modelo Multivariable

\[ \text{Volumen} = 6310.45 + 0.2829 \cdot \text{Liberación} + 1.2658 \cdot \text{Respuesta} \]

cat("\n=== ECUACIÓN FINAL ===\n")
## 
## === ECUACIÓN FINAL ===
cat(paste0("Volumen = ", round(c_m, 2), " + ", round(a_m, 4), " * Liberacion + ", round(b_m, 4), " * Respuesta\n"))
## Volumen = 6310.45 + 0.2829 * Liberacion + 1.2658 * Respuesta

7 Estimación de un punto

x1_nueva <- 50000000
x2_nueva <- 30000000

# Predicción: c + a*x1 + b*x2
y_pred_m <- a_m * x1_nueva + b_m * x2_nueva + c_m

cat("\n=== PREDICCIÓN ===\n")
## 
## === PREDICCIÓN ===
cat("Para Máximo Liberación =", x1_nueva, "y Respuesta =", x2_nueva, ":\n")
## Para Máximo Liberación = 5e+07 y Respuesta = 3e+07 :
cat("Volumen estimado del derrame:", round(y_pred_m, 2), "galones\n")
## Volumen estimado del derrame: 52124023 galones

Conclusiones

Entre la variable dependiente Volumen Derramado (y) y las variables independientes Máximo Liberación(x1) y Respuesta Actual(x2) existe una relación matemática de tipo regresión lineal multivariable. Esta relación se expresa mediante la fórmula del modelo: \(\text{Volumen} = 6310.45 + 0.2829 \cdot \text{Liberación} + 1.2658 \cdot \text{Respuesta}\) El modelo genera un plano en tres dimensiones que describe cómo el volumen total del derrame puede estimarse a partir de la magnitud de la liberación y la capacidad de respuesta. La ecuación obtenida permite estimar con 50000000 gal liberacion y 30000000 gal respuesta el volumen derramado de 52124023 gal.