setwd("/cloud/project")
datos <- read.csv("DERRAMES_GLOBALEST.csv", header = TRUE, sep = ";" , dec = ".")
str(datos)## 'data.frame': 3550 obs. of 23 variables:
## $ Id : int 6786 6250 8220 6241 6216 6620 6262 6229 6201 6221 ...
## $ Dia : int 19 3 21 16 19 7 10 12 18 29 ...
## $ Mes : int 1 6 4 3 12 10 2 5 3 1 ...
## $ Año : chr "A" "1979" "2010" "1978" ...
## $ Nombre : chr "Arabian Gulf Spills; Persian Gulf, Kuwait" "IXTOC I; Bahia de Campeche, Mexico" "Deepwater Horizon; Gulf of Mexico" "Amoco Cadiz; Brittany, France" ...
## $ Ubicacion : chr "Persian Gulf, Kuwait" "Bahia de Campeche, Mexico" "Gulf of Mexico" "Brittany, France" ...
## $ Latitud : chr "29,5" "19,4083" "28,7367" "48,5833" ...
## $ Longuitud : chr "48" "-92,325" "-88,3872" "-4,71667" ...
## $ Amenaza : chr "Oil" "Oil" "Oil" "Oil" ...
## $ Etiquetas : chr "" "Collision" "" "Grounding" ...
## $ Tipo_de_crudo : chr "Kuwait crude oil" "IXTOC I crude oil" "Diesel, crude oil" "Arabian light crude, Iranian light crude, Bunker C" ...
## $ Cantidad_recuperada_superficie : int NA NA 1 NA NA NA NA NA NA NA ...
## $ Cantidad_recuperada_costas : int NA NA 1 NA NA NA NA NA NA NA ...
## $ Cantidad_tratada_biologicamente : int 1 NA 1 1 NA NA NA NA NA NA ...
## $ Cantidad_dispersada_quimicamente: int NA 1 1 1 NA NA NA 1 1 1 ...
## $ Cantidad_quemada : int NA 1 1 NA NA NA NA 1 1 1 ...
## $ Maximo_liberacion_galones : int 336000009 NA 205000000 68000017 NA NA NA 9240000 36100000 NA ...
## $ Barreras_de_contencion_flotantes: int 35 12 182 17 3 3 7 8 5 6 ...
## $ Causa_principal : chr "Daño del tanque " "Incendio y explosion " "Incendio y explosion " "Daño del tanque " ...
## $ Volumen_derramados_galones : chr "336.000.000" "365.000.000" "600.000.000" "68.000.000" ...
## $ Respuesta_actual_galones : chr "336000000" "252000000" "168000000" "68700000" ...
## $ Fuente_respuesta : chr "description and posts" "posts" "description" "posts" ...
## $ etiqueta_actualizacion : chr "RA updated" "RA newly acquired" "RA updated" "RA updated" ...
##
## Call:
## lm(formula = y ~ poly(x, 3, raw = TRUE), data = df_ind)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.13531 -0.00238 -0.00224 -0.00064 1.01781
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.0040796 0.0071792 -0.568 0.57030
## poly(x, 3, raw = TRUE)1 0.9082261 0.0390467 23.260 < 2e-16 ***
## poly(x, 3, raw = TRUE)2 -0.0275520 0.0087682 -3.142 0.00185 **
## poly(x, 3, raw = TRUE)3 0.0026174 0.0004539 5.767 2.06e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1069 on 291 degrees of freedom
## Multiple R-squared: 0.9887, Adjusted R-squared: 0.9886
## F-statistic: 8475 on 3 and 291 DF, p-value: < 2.2e-16
# Coeficientes
coefs <- coef(modelo)
a <- coefs[1]
b <- coefs[2]
c <- coefs[3]
d <- coefs[4]
# Correlación
R2 <- summary(modelo)$r.squared
R2_adj <- summary(modelo)$adj.r.squared
cat("R² =", round(R2, 4), "\n")## R² = 0.9887
## R² ajustado = 0.9886
plot(df_ind$x, df_ind$y,
col = "deepskyblue3",
pch = 19,
main = "Relación Polinómica entre Liberación Máxima \n y Respuesta actual de Petróleo",
xlab = "Máxima liberación (escalada)",
ylab = "Respuesta actual (escalada)",
cex.axis = 0.8,
cex.lab = 0.9)
curve(a + b*x + c*x^2 + d*x^3,
add = TRUE,
col = "red",
lwd = 2)
grid(col = "gray80", lty = "dotted")
legend("topleft",
legend = c("Datos", "Modelo polinómico"),
col = c("deepskyblue3", "red"),
pch = c(19, NA),
lty = c(NA, 1),
lwd = c(NA, 2),
bty = "n",
cex = 0.8)El modelo polinómico de tercer grado describe adecuadamente la relación no lineal entre la máxima liberación y la respuesta actual, evidenciando una tendencia creciente con curvatura positiva. La forma del ajuste indica que la tasa de incremento de la respuesta aumenta a medida que crece la liberación, lo que sugiere un efecto acelerado. El valor de 0.9886 obtenido (alto) confirma que el modelo explica una proporción significativa de la variabilidad de la respuesta, por lo que el ajuste es estadísticamente representativo dentro del rango de datos analizado.