Cargar los datos

setwd("D:/Data")
datos <- read.csv("derrames_globales_.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 ...
##  $ ANo                                : 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" ...
##  $ Recuperacion_en_superficie_aplicada: int  NA NA 1 NA NA NA NA NA NA NA ...
##  $ Recuperacion_en_costas_aplicada    : int  NA NA 1 NA NA NA NA NA NA NA ...
##  $ Tratamiento_biologico_aplicado     : int  1 NA 1 1 NA NA NA NA NA NA ...
##  $ Dispersion_quimica_aplicada        : int  NA 1 1 1 NA NA NA 1 1 1 ...
##  $ Quema_aplicada                     : int  NA 1 1 NA NA NA NA 1 1 1 ...
##  $ Maximo_liberacion_galones          : int  336000009 -1 205000000 68000017 -1 -1 -1 9240000 36100000 -1 ...
##  $ Barreras_de_contencion_flotantes   : int  35 12 182 17 3 3 7 8 5 6 ...
##  $ Causa_principal                    : chr  "DaNo del tanque  " "Incendio y explosion " "Incendio y explosion " "DaNo 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" ...

1 Variable de Recuperacion en superficie aplicada

Re_s <- as.numeric(datos$Recuperacion_en_superficie_aplicada) 
Re_s <- na.omit(Re_s)

TDF_Re_s <- table(Re_s)
tabla1 <- as.data.frame(TDF_Re_s)
colnames(tabla1) <- c("Resultado","ni")
tabla1$hi <- round(tabla1$ni/sum(tabla1$ni), 4)  
print(tabla1)
##   Resultado  ni     hi
## 1         0  46 0.1456
## 2         1 270 0.8544

1.1 Parámetro Bernoulli

p_hat <- mean(Re_s)   
q_hat <- 1 - p_hat

cat("Probabilidad estimada p =", round(p_hat, 4), "\n")
## Probabilidad estimada p = 0.8544
cat("Probabilidad estimada q =", round(q_hat, 4), "\n")
## Probabilidad estimada q = 0.1456

1.2 Probabilidades observadas vs esperadas

Fo <- tabla1$hi  
Fe <- dbinom(0:1, size = 1, prob = p_hat)  

comparacion <- data.frame(Resultado = 0:1, FO = Fo, FE = Fe)
print(comparacion)
##   Resultado     FO        FE
## 1         0 0.1456 0.1455696
## 2         1 0.8544 0.8544304

1.3 Gráfica 1: Distribucion aleatoria de Recuperacion en superficie aplicada

barplot(rbind(Fo, Fe),
        beside = TRUE,
        main = "Distribucion aleatoria de Recuperacion en superficie aplicada",
        xlab = "Resultado (0=Falso, 1=Verdadero)",
        ylab = "Probabilidad",
        col = c("skyblue","blue"),
        names.arg = c("0","1"))
legend(
  "topright", 
  inset = c(-0.08, 0),          
  legend = c("Observado", "Modelo Bernoulli"),
  fill = c("skyblue", "blue"),
  xpd = NA,                     
  bty = "n"                     
)

1.4 Test de Chi-cuadrado

x2 <- sum((Fo - Fe)^2 / Fe)
vc <- qchisq(0.95, df = length(Fo) - 1)

cat("Chi-cuadrado =", round(x2,4), "\n")
## Chi-cuadrado = 0
cat("Valor crítico =", round(vc,4), "\n")
## Valor crítico = 3.8415
cat("¿Se acepta el modelo Bernoulli?:", x2 < vc, "\n")
## ¿Se acepta el modelo Bernoulli?: TRUE

1.5 Gráfica 2: Correlación FO vs FE

plot(Fo, Fe,
     main = "Correlación FO vs FE (Bernoulli)",
     xlab = "Frecuencia Observada",
     ylab = "Frecuencia Esperada")
abline(lm(Fe ~ Fo), col = "red", lwd = 2)

correlacion <- cor(Fo, Fe) * 100
cat("Correlación (%) =", round(correlacion,2), "\n")
## Correlación (%) = 100
Variable <- c("Recuperacion_en_superficie_aplicada (Bernoulli)")
tabla_resumen <- data.frame(
  Variable,
  round(correlacion, 2),   
  round(x2, 4),            
  round(vc, 4)             
)
colnames(tabla_resumen) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")
print(tabla_resumen)
##                                          Variable Test Pearson (%) Chi Cuadrado
## 1 Recuperacion_en_superficie_aplicada (Bernoulli)              100            0
##   Umbral de aceptación
## 1               3.8415

1.6 Pregunta de probabilidad

Pregunta: ¿Cuál es la probabilidad de que en un derrame sí se aplique la recuperación en superficie (Verdadero), bajo el modelo Bernoulli estimado?

P_verdadero <- dbinom(1, size = 1, prob = p_hat)  # P(X=1)
P_falso     <- dbinom(0, size = 1, prob = p_hat)  # P(X=0)

tabla_prob <- data.frame(
  Resultado = c("Falso (0)", "Verdadero (1)"),
  Probabilidad = c(P_falso*100, P_verdadero*100)
)
print(tabla_prob)
##       Resultado Probabilidad
## 1     Falso (0)     14.55696
## 2 Verdadero (1)     85.44304

2 Variable de Recuperacion en costas aplicada

Re_c <- as.numeric(datos$Recuperacion_en_costas_aplicada)
Re_c <- na.omit(Re_c)

TDF_Re_c <- table(Re_c) 
tabla2 <- as.data.frame(TDF_Re_c)
colnames(tabla2) <- c("Resultado","ni")
tabla2$hi <- round(tabla2$ni/sum(tabla2$ni) ,2) 
print(tabla2)
##   Resultado  ni   hi
## 1         0  36 0.17
## 2         1 181 0.83

2.1 Parámetro Bernoulli

p_hat <- mean(Re_c)   
q_hat <- 1 - p_hat

cat("Probabilidad estimada p =", round(p_hat, 4), "\n")
## Probabilidad estimada p = 0.8341
cat("Probabilidad estimada q =", round(q_hat, 4), "\n")
## Probabilidad estimada q = 0.1659

2.2 Probabilidades observadas vs esperadas

Fo2 <- tabla2$hi  
Fe2 <- dbinom(0:1, size = 1, prob = p_hat)  

comparacion <- data.frame(Resultado = 0:1, FO = Fo2, FE = Fe2)
print(comparacion)
##   Resultado   FO        FE
## 1         0 0.17 0.1658986
## 2         1 0.83 0.8341014

2.3 Gráfica 1: Distribucion aleatoria de Recuperacion en costas aplicada

barplot(rbind(Fo2, Fe2),
        beside = TRUE,
        main = "Distribucion aleatoria de Recuperacion en costas aplicada",
        xlab = "Resultado (0=Falso, 1=Verdadero)",
        ylab = "Probabilidad",
        col = c("skyblue","blue"),
        names.arg = c("0","1"))
legend(
  "topright", 
  inset = c(-0.08, 0),          
  legend = c("Observado", "Modelo Bernoulli"),
  fill = c("skyblue", "blue"),
  xpd = NA,                     
  bty = "n"                     
)

2.4 Test de Chi-cuadrado

x2 <- sum((Fo2 - Fe2)^2 / Fe2)
vc <- qchisq(0.95, df = length(Fo2) - 1)

cat("Chi-cuadrado =", round(x2,4), "\n")
## Chi-cuadrado = 1e-04
cat("Valor crítico =", round(vc,4), "\n")
## Valor crítico = 3.8415
cat("¿Se acepta el modelo Bernoulli?:", x2 < vc, "\n")
## ¿Se acepta el modelo Bernoulli?: TRUE

2.5 Gráfica 2: Correlación FO vs FE

plot(Fo2, Fe2,
     main = "Correlación FO vs FE (Bernoulli)",
     xlab = "Frecuencia Observada",
     ylab = "Frecuencia Esperada")
abline(lm(Fe2 ~ Fo2), col = "red", lwd = 2)

correlacion <- cor(Fo2, Fe2) * 100
cat("Correlación (%) =", round(correlacion,2), "\n")
## Correlación (%) = 100
Variable <- c("Recuperacion_en_costas_aplicada (Bernoulli)")
tabla_resumen <- data.frame(
  Variable,
  round(correlacion, 2),   
  round(x2, 4),            
  round(vc, 4)             
)
colnames(tabla_resumen) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")
print(tabla_resumen)
##                                      Variable Test Pearson (%) Chi Cuadrado
## 1 Recuperacion_en_costas_aplicada (Bernoulli)              100        1e-04
##   Umbral de aceptación
## 1               3.8415

2.6 Pregunta de probabilidad

Pregunta: ¿Cuál es la probabilidad de que en un derrame sí se aplique la recuperación en costas (Verdadero), bajo el modelo Bernoulli estimado?

P_verdadero <- dbinom(1, size = 1, prob = p_hat)  # P(X=1)
P_falso     <- dbinom(0, size = 1, prob = p_hat)  # P(X=0)

tabla_prob2 <- data.frame(
  Resultado = c("Falso (0)", "Verdadero (1)"),
  Probabilidad = c(P_falso*100, P_verdadero*100)
)
print(tabla_prob2)
##       Resultado Probabilidad
## 1     Falso (0)     16.58986
## 2 Verdadero (1)     83.41014

3 Variable de tratamiento biologico aplicado

Tr_b <- as.numeric(datos$Tratamiento_biologico_aplicado)
Tr_b <- na.omit(Tr_b)

TDF_Tr_b <- table(Tr_b) 
tabla3<- as.data.frame(TDF_Tr_b)
colnames(tabla3) <- c("Tratamiento_biologico","ni")
tabla3$hi <- round(tabla3$ni/sum(tabla3$ni) ,2) 
print(tabla3)
##   Tratamiento_biologico ni  hi
## 1                     0 12 0.4
## 2                     1 18 0.6

3.1 Parámetro Bernoulli

p_hat <- mean(Tr_b)   
q_hat <- 1 - p_hat

cat("Probabilidad estimada p =", round(p_hat, 4), "\n")
## Probabilidad estimada p = 0.6
cat("Probabilidad estimada q =", round(q_hat, 4), "\n")
## Probabilidad estimada q = 0.4

3.2 Probabilidades observadas vs esperadas

Fo3 <- tabla3$hi  
Fe3 <- dbinom(0:1, size = 1, prob = p_hat)  

comparacion <- data.frame(Resultado = 0:1, FO = Fo3, FE = Fe3)
print(comparacion)
##   Resultado  FO  FE
## 1         0 0.4 0.4
## 2         1 0.6 0.6

3.3 Gráfica 1: Distribucion aleatoria de tratamiento bilógico aplicado

barplot(rbind(Fo3, Fe3),
        beside = TRUE,
        main = "Distribucion aleatoria de tratamiento bilógico aplicado",
        xlab = "Resultado (0=Falso, 1=Verdadero)",
        ylab = "Probabilidad",
        col = c("skyblue","blue"),
        names.arg = c("0","1"))
legend(
  "topright", 
  inset = c(-0.08, 0),          
  legend = c("Observado", "Modelo Bernoulli"),
  fill = c("skyblue", "blue"),
  xpd = NA,                     
  bty = "n"                     
)

3.4 Test de Chi-cuadrado

x2 <- sum((Fo3 - Fe3)^2 / Fe3)
vc <- qchisq(0.95, df = length(Fo3) - 1)

cat("Chi-cuadrado =", round(x2,4), "\n")
## Chi-cuadrado = 0
cat("Valor crítico =", round(vc,4), "\n")
## Valor crítico = 3.8415
cat("¿Se acepta el modelo Bernoulli?:", x2 < vc, "\n")
## ¿Se acepta el modelo Bernoulli?: TRUE

3.5 Gráfica 2: Correlación FO vs FE

plot(Fo3, Fe3,
     main = "Correlación FO vs FE (Bernoulli)",
     xlab = "Frecuencia Observada",
     ylab = "Frecuencia Esperada")
abline(lm(Fe3 ~ Fo3), col = "red", lwd = 2)

correlacion <- cor(Fo3, Fe3) * 100
cat("Correlación (%) =", round(correlacion,2), "\n")
## Correlación (%) = 100
Variable <- c("Tratamiento_biologico_aplicado (Bernoulli)")
tabla_resumen <- data.frame(
  Variable,
  round(correlacion, 2),   
  round(x2, 4),            
  round(vc, 4)             
)
colnames(tabla_resumen) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")
print(tabla_resumen)
##                                     Variable Test Pearson (%) Chi Cuadrado
## 1 Tratamiento_biologico_aplicado (Bernoulli)              100            0
##   Umbral de aceptación
## 1               3.8415

3.6 Pregunta de probabilidad

Pregunta: ¿Cuál es la probabilidad de que en un derrame sí se aplica el tratamiento biologico aplicado (Verdadero), bajo el modelo Bernoulli estimado?

P_verdadero <- dbinom(1, size = 1, prob = p_hat)  # P(X=1)
P_falso     <- dbinom(0, size = 1, prob = p_hat)  # P(X=0)

tabla_prob3 <- data.frame(
  Resultado = c("Falso (0)", "Verdadero (1)"),
  Probabilidad = c(P_falso*100, P_verdadero*100)
)
print(tabla_prob3)
##       Resultado Probabilidad
## 1     Falso (0)           40
## 2 Verdadero (1)           60

4 Variable de dispersion quimica aplicada

Di_q <- as.numeric(datos$Dispersion_quimica_aplicada)
Di_q <- na.omit(Di_q)

TDF_Di_q <- table(Di_q) 
tabla4<- as.data.frame(TDF_Di_q)
colnames(tabla4) <- c("Dispersion_quimica","ni")
tabla4$hi <- round(tabla4$ni/sum(tabla4$ni) ,2) 
print(tabla4)
##   Dispersion_quimica ni   hi
## 1                  0 20 0.22
## 2                  1 73 0.78

4.1 Parámetro Bernoulli

p_hat <- mean(Di_q)   
q_hat <- 1 - p_hat

cat("Probabilidad estimada p =", round(p_hat, 4), "\n")
## Probabilidad estimada p = 0.7849
cat("Probabilidad estimada q =", round(q_hat, 4), "\n")
## Probabilidad estimada q = 0.2151

4.2 Probabilidades observadas vs esperadas

Fo4 <- tabla4$hi  
Fe4 <- dbinom(0:1, size = 1, prob = p_hat)  

comparacion <- data.frame(Resultado = 0:1, FO = Fo4, FE = Fe4)
print(comparacion)
##   Resultado   FO        FE
## 1         0 0.22 0.2150538
## 2         1 0.78 0.7849462

4.3 Gráfica 1: Distribucion aleatoria de Dispersion quimica aplicada

barplot(rbind(Fo4, Fe4),
        beside = TRUE,
        main = "Distribucion aleatoria de Dispersion quimica aplicada",
        xlab = "Resultado (0=Falso, 1=Verdadero)",
        ylab = "Probabilidad",
        col = c("skyblue","blue"),
        names.arg = c("0","1"))
legend(
  "topright", 
  inset = c(-0.08, 0),          
  legend = c("Observado", "Modelo Bernoulli"),
  fill = c("skyblue", "blue"),
  xpd = NA,                     
  bty = "n"                     
)

4.4 Test de Chi-cuadrado

x2 <- sum((Fo4 - Fe4)^2 / Fe4)
vc <- qchisq(0.95, df = length(Fo4) - 1)

cat("Chi-cuadrado =", round(x2,4), "\n")
## Chi-cuadrado = 1e-04
cat("Valor crítico =", round(vc,4), "\n")
## Valor crítico = 3.8415
cat("¿Se acepta el modelo Bernoulli?:", x2 < vc, "\n")
## ¿Se acepta el modelo Bernoulli?: TRUE

4.5 Gráfica 2: Correlación FO vs FE

plot(Fo4, Fe4,
     main = "Correlación FO vs FE (Bernoulli)",
     xlab = "Frecuencia Observada",
     ylab = "Frecuencia Esperada")
abline(lm(Fe4 ~ Fo4), col = "red", lwd = 2)

correlacion <- cor(Fo4, Fe4) * 100
cat("Correlación (%) =", round(correlacion,2), "\n")
## Correlación (%) = 100
Variable <- c("Dispersion_quimica_aplicada (Bernoulli)")
tabla_resumen <- data.frame(
  Variable,
  round(correlacion, 2),   
  round(x2, 4),            
  round(vc, 4)             
)
colnames(tabla_resumen) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")
print(tabla_resumen)
##                                  Variable Test Pearson (%) Chi Cuadrado
## 1 Dispersion_quimica_aplicada (Bernoulli)              100        1e-04
##   Umbral de aceptación
## 1               3.8415

4.6 Pregunta de probabilidad

Pregunta: ¿Cuál es la probabilidad de que en un derrame sí se aplica la dispersion quimica aplicada (Verdadero), bajo el modelo Bernoulli estimado?

P_verdadero <- dbinom(1, size = 1, prob = p_hat)  # P(X=1)
P_falso     <- dbinom(0, size = 1, prob = p_hat)  # P(X=0)

tabla_prob4 <- data.frame(
  Resultado = c("Falso (0)", "Verdadero (1)"),
  Probabilidad = c(P_falso*100, P_verdadero*100)
)
print(tabla_prob4)
##       Resultado Probabilidad
## 1     Falso (0)     21.50538
## 2 Verdadero (1)     78.49462

5 Variable de la quema aplicada

Qu_a <- as.numeric(datos$Quema_aplicada)
Qu_a <- na.omit(Qu_a)

TDF_Qu_a <- table(Qu_a) 
tabla5<- as.data.frame(TDF_Qu_a)
colnames(tabla5) <- c("Quema_aplicada","ni")
tabla5$hi <- round(tabla5$ni/sum(tabla5$ni) ,2) 
print(tabla5)
##   Quema_aplicada ni   hi
## 1              0 19 0.28
## 2              1 49 0.72

5.1 Parámetro Bernoulli

p_hat <- mean(Qu_a)   
q_hat <- 1 - p_hat

cat("Probabilidad estimada p =", round(p_hat, 4), "\n")
## Probabilidad estimada p = 0.7206
cat("Probabilidad estimada q =", round(q_hat, 4), "\n")
## Probabilidad estimada q = 0.2794

5.2 Probabilidades observadas vs esperadas

Fo5 <- tabla5$hi  
Fe5 <- dbinom(0:1, size = 1, prob = p_hat)  

comparacion <- data.frame(Resultado = 0:1, FO = Fo5, FE = Fe5)
print(comparacion)
##   Resultado   FO        FE
## 1         0 0.28 0.2794118
## 2         1 0.72 0.7205882

5.3 Gráfica 1: Distribucion aleatoria de Quema aplicada

barplot(rbind(Fo5, Fe5),
        beside = TRUE,
        main = "Distribucion aleatoria de Quema aplicada",
        xlab = "Resultado (0=Falso, 1=Verdadero)",
        ylab = "Probabilidad",
        col = c("skyblue","blue"),
        names.arg = c("0","1"))
legend(
  "topright", 
  inset = c(-0.08, 0),          
  legend = c("Observado", "Modelo Bernoulli"),
  fill = c("skyblue", "blue"),
  xpd = NA,                     
  bty = "n"                     
)

5.4 Test de Chi-cuadrado

x2 <- sum((Fo5 - Fe5)^2 / Fe5)
vc <- qchisq(0.95, df = length(Fo5) - 1)

cat("Chi-cuadrado =", round(x2,4), "\n")
## Chi-cuadrado = 0
cat("Valor crítico =", round(vc,4), "\n")
## Valor crítico = 3.8415
cat("¿Se acepta el modelo Bernoulli?:", x2 < vc, "\n")
## ¿Se acepta el modelo Bernoulli?: TRUE

5.5 Gráfica 2: Correlación FO vs FE

plot(Fo5, Fe5,
     main = "Correlación FO vs FE (Bernoulli)",
     xlab = "Frecuencia Observada",
     ylab = "Frecuencia Esperada")
abline(lm(Fe5 ~ Fo5), col = "red", lwd = 2)

correlacion <- cor(Fo4, Fe4) * 100
cat("Correlación (%) =", round(correlacion,2), "\n")
## Correlación (%) = 100
Variable <- c("Quema_aplicada (Bernoulli)")
tabla_resumen <- data.frame(
  Variable,
  round(correlacion, 2),   
  round(x2, 4),            
  round(vc, 4)             
)
colnames(tabla_resumen) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")
print(tabla_resumen)
##                     Variable Test Pearson (%) Chi Cuadrado Umbral de aceptación
## 1 Quema_aplicada (Bernoulli)              100            0               3.8415

5.6 Pregunta de probabilidad

Pregunta: ¿Cuál es la probabilidad de que en un derrame sí se aplica la quema aplicada (Verdadero), bajo el modelo Bernoulli estimado?

P_verdadero <- dbinom(1, size = 1, prob = p_hat)  # P(X=1)
P_falso     <- dbinom(0, size = 1, prob = p_hat)  # P(X=0)

# Tabla con resultados
tabla_prob5 <- data.frame(
  Resultado = c("Falso (0)", "Verdadero (1)"),
  Probabilidad = c(P_falso*100, P_verdadero*100)
)
print(tabla_prob5)
##       Resultado Probabilidad
## 1     Falso (0)     27.94118
## 2 Verdadero (1)     72.05882