1. DATOS

if (!require("scatterplot3d")) install.packages("scatterplot3d")
## Cargando paquete requerido: scatterplot3d
library(readr)
library(scatterplot3d)
datasetf <- read_csv("estadistica /cosasr/datasetf.csv")
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Rows: 2795 Columns: 36
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (18): Accident Date/Time, Operator Name, Pipeline/Facility Name, Pipelin...
## dbl (18): Report Number, Supplemental Number, Accident Year, Operator ID, Ac...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

2. EXTRAER VARIABLES

data_clean <- data.frame(
  Costo = datasetf$`All Costs`,
  Liberacion = datasetf$`Unintentional Release (Barrels)`,
  Evacuaciones = datasetf$`Public Evacuations`
)

3. Limpieza: Eliminar filas con valores faltantes

data_clean <- na.omit(data_clean)
data_clean <- data_clean[data_clean$Costo > 0 & data_clean$Liberacion > 0, ]

4. MODELO MATEMÁTICO (Usando Log10 para normalizar escalas)

modelo_multi <- lm(log10(Costo) ~ Liberacion + Evacuaciones, data = data_clean)

5. GRÁFICA DE NUBES

plot(data_clean$Liberacion, log10(data_clean$Costo),
     main = "Tendencia: Liberación vs Costo (Escala Log10)",
     xlab = "Barriles Liberados", ylab = "Costo (Log10 $)",
     pch = 16, col = rgb(0.1, 0.4, 0.7, 0.3))
abline(lm(log10(Costo) ~ Liberacion, data = data_clean), col = "red", lwd = 2)

6. CONJETURAR EL MODELO

\[All Costs = \beta_0 + \beta_1(Release) + \beta_2(Evacuations) + \beta_3(NetLoss) + \epsilon\]

8. GRÁFICA EN 3D (Modelo Visual)

# Usamos los nombres nuevos (Costo, Liberacion, Evacuaciones)
cat("\nGenerando gráfico 3D...\n")
## 
## Generando gráfico 3D...
s3d <- scatterplot3d(data_clean$Liberacion, 
                     data_clean$Evacuaciones, 
                     log10(data_clean$Costo),
                     pch = 16, highlight.3d = TRUE,
                     type = "p", 
                     main = "Superficie de Predicción 3D",
                     xlab = "Liberación (bbl)",
                     ylab = "Evacuaciones",
                     zlab = "Costo (Log10 $)")

# Dibujamos el plano del modelo sobre los puntos
s3d$plane3d(modelo_multi, col = "red", lty.hide = 2)
## Warning in segments(x, z1, x + y.max * yx.f, z2 + yz.f * y.max, lty = ltya, :
## "lty.hide" es un parámetro gráfico inválido
## Warning in segments(x.min + y * yx.f, z1 + y * yz.f, x.max + y * yx.f, z2 + :
## "lty.hide" es un parámetro gráfico inválido

6. ESTIMACIÓN (Predicción)

# Ejemplo: 500 barriles liberados y 10 evacuados
nuevo_incidente <- data.frame(Liberacion = 500, Evacuaciones = 10)
log_resultado <- predict(modelo_multi, newdata = nuevo_incidente)
costo_final <- 10^log_resultado # Volvemos de Log10 a Dólares

cat("\n--- ESTIMACIÓN FINAL ---\n")
## 
## --- ESTIMACIÓN FINAL ---
cat("Para 500 bbl y 10 evacuados, el costo estimado es: $", round(costo_final, 2), "\n")
## Para 500 bbl y 10 evacuados, el costo estimado es: $ 33664.79

7. CONCLUCIÓN

El modelo demuestra que el costo de un incidente no depende de un solo factor, sino de la interacción entre la magnitud del derrame y la respuesta humana. La estimación de $[Costo Predicho] sugiere que las evacuaciones públicas tienen un peso proporcionalmente mayor en el costo final que el volumen de barriles liberados.