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" ...
## Warning: NAs introduced by coercion
datos_filtrados <- subset(
datos,
Respuesta_actual_galones >= rango_x[1] &
Respuesta_actual_galones <= rango_x[2] &
Maximo_liberacion_galones >= rango_y[1] &
Maximo_liberacion_galones <= rango_y[2]
)
datos_filtrados <- subset(
datos_filtrados,
!is.na(Respuesta_actual_galones) &
!is.na(Maximo_liberacion_galones) &
Respuesta_actual_galones > 0 &
Maximo_liberacion_galones > 0
)datos_unicos <- datos_filtrados[
!duplicated(datos_filtrados[, c(
"Respuesta_actual_galones",
"Maximo_liberacion_galones"
)]),
]
# Eliminar repetidos en X y Y
# (valores totalmente independientes)
datos_independientes <- datos_unicos[
!duplicated(datos_unicos$Respuesta_actual_galones) &
!duplicated(datos_unicos$Maximo_liberacion_galones),
]x_ind <- as.numeric(datos_independientes$Respuesta_actual_galones)
y_ind <- as.numeric(datos_independientes$Maximo_liberacion_galones)
modelo_lineal_ind <- lm(y_ind ~ x_ind)
summary(modelo_lineal_ind)##
## Call:
## lm(formula = y_ind ~ x_ind)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1621.08 -41.67 -27.24 12.60 2155.39
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 45.28181 55.78067 0.812 0.419
## x_ind 0.95489 0.03808 25.073 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 370.6 on 79 degrees of freedom
## Multiple R-squared: 0.8884, Adjusted R-squared: 0.887
## F-statistic: 628.7 on 1 and 79 DF, p-value: < 0.00000000000000022
# Coeficientes
intercepto <- coef(modelo_lineal_ind)[1]
pendiente <- coef(modelo_lineal_ind)[2]
# Correlación
r <- cor(x_ind, y_ind)
r2 <- r^2 * 100
cat("\nEcuación de regresión lineal (sin duplicados):\n")##
## Ecuación de regresión lineal (sin duplicados):
## y = 45.2818 + 0.95489 * x
## R² = 88.84 %
plot(x_ind, y_ind,
pch = 19,
col = rgb(0, 191, 255, 120, maxColorValue = 255),
cex = 0.9,
main = "Relación lineal entre Respuesta actual\n y Máxima Liberación de Petróleo",
xlab = "Respuesta actual (galones)",
ylab = "Máxima liberación (galones)",
cex.main = 0.9,
cex.lab = 0.9,
cex.axis = 0.8,
bty = "l")
abline(modelo_lineal_ind, col = "darkgreen", lwd = 2)
grid(col = "gray80", lty = "dotted")
legend("topleft",
legend = c("Datos observados", "Recta de regresión"),
col = c("deepskyblue3", "darkgreen"),
pch = c(19, NA),
lty = c(NA, 1),
lwd = c(NA, 2),
cex = 0.8,
bty = "n")La regresión lineal muestra una relación positiva entre la Respuesta actual y la Máxima liberación de petróleo, evidenciada por una pendiente positiva. La cercanía de los datos a la recta de regresión indica un buen ajuste del modelo, lo que sugiere que la respuesta actual es un predictor estadísticamente significativo de la máxima liberación dentro del rango analizado.