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 =".")
# 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))
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)
\[ 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)
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")
# 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.
\[ \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
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.