# REGRESIÓN POLINÓMICA: Recuperación de Petróleo Crudo vs. Liberación de Petróleo Crudo
# Carga de datos
setwd("~/")
datos <- read.csv("DATOS.csv",
header = TRUE, sep = ";", dec = ".")
# Extraer variables
x_liberacion <- datos$Liberacion_petroleo_crudo_edicion
y_recuperacion <- datos$Edicion_recuperacion_petroleo_crudo
# --- Limpieza de datos (manejo de NA) ---
df_lib_rec <- data.frame(x_orig = x_liberacion, y_orig = y_recuperacion)
df_lib_rec_clean <- na.omit(df_lib_rec)
x_clean <- df_lib_rec_clean$x_orig
y_clean <- df_lib_rec_clean$y_orig
regresionPolinomica <- lm(y_clean ~ x_clean + I(x_clean^2))
summary(regresionPolinomica)
##
## Call:
## lm(formula = y_clean ~ x_clean + I(x_clean^2))
##
## Residuals:
## Min 1Q Median 3Q Max
## -35860 -40 -40 80 24088
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.045e+01 1.465e+01 2.761 0.00578 **
## x_clean 5.906e-01 5.056e-03 116.816 < 2e-16 ***
## I(x_clean^2) 7.084e-07 1.017e-08 69.675 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1268 on 8519 degrees of freedom
## Multiple R-squared: 0.9585, Adjusted R-squared: 0.9585
## F-statistic: 9.832e+04 on 2 and 8519 DF, p-value: < 2.2e-16
# Gráfica de regresión
plot(x_clean, y_clean, col = 4, pch = 7,
main = "Gráfica: Regresión Polinómica ",
xlab = "Liberación de petróleo crudo (BBL)",
ylab = "Recuperación de petróleo crudo (BBL)",
xlim = c(0, 100000), # Define el límite superior del eje X
ylim = c(0, 100000)) # Define el límite superior del eje Y)
# Agregar curva de regresión
x_ordenado <- sort(x_clean)
y_predicho_curva <- predict(regresionPolinomica, newdata = data.frame(x_clean = x_ordenado))
lines(x_ordenado, y_predicho_curva, col = "red", lwd = 2) # Dibuja la línea de predicción

# Test de bondad
r2_polinomica <- summary(regresionPolinomica)$r.squared * 100
cat("\nCoeficiente de Determinación (R^2) Polinómico:", r2_polinomica, "%\n")
##
## Coeficiente de Determinación (R^2) Polinómico: 95.84768 %
# Coeficientes del modelo
beta0 <- regresionPolinomica$coefficients[1]
beta1 <- regresionPolinomica$coefficients[2]
beta2 <- regresionPolinomica$coefficients[3]
#La ecuacion de nuestro modelo de regresion polinomica da como resultado: y=0.000000708x^2+0.591x+40.4
#Donde y = Volumen de petróleo crudo recuperado (BBL) y x = Volumen de petróleo crudo liberado (BBL).\n")
# Aplicación del Modelo: Si x (Liberación) es 100 BBL, y=?
x <- 100 # Definimos un valor de ejemplo para la liberación
y = 0.000000708*x^2+0.591*x+40.4
y
## [1] 99.50708
## CONCLUSIÓN
cat("La ecuación del modelo de regresión es:\n")
## La ecuación del modelo de regresión es:
cat("y =", format(beta0, scientific = TRUE, digits = 3),
"+", format(beta1, scientific = TRUE, digits = 3), "* x",
"+", format(beta2, scientific = TRUE, digits = 3), "* x^2\n")
## y = 4.04e+01 + 5.91e-01 * x + 7.08e-07 * x^2
#El coeficiente de determinación (R^2) de" 95.85% indica que este modelo polinómico explica una muy alta proporción de la variabilidad en la recuperación del petróleo.
#Este modelo proporciona una representación más flexible y, por lo tanto, potencialmente más precisa de cómo la recuperación de petróleo se relaciona con la cantidad liberada a través de diferentes magnitudes de derrames