#UNIVRSIDAD CENTRAL DEL ECUADOR 
#Tema:Estadística Inferencial-Variables Nominales
#AUTOR:Grupo 6

#CARGA DE DATOS 
setwd("/cloud/project")
datos <- read.csv("DATOS.csv", header = TRUE, sep = ";" , dec = ".")
str(datos)
## 'data.frame':    10190 obs. of  17 variables:
##  $ Distrito_edit                        : chr  "1" "1" "1" "1" ...
##  $ Year_edit_Fecha_del_derrame          : int  2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 ...
##  $ Mes_edit_Fecha_del_derrame           : int  6 3 4 4 6 6 3 9 10 6 ...
##  $ Categoria_Instalaciones              : chr  "Instalacion fija" "Pozos" "Pozos" "Pozos" ...
##  $ Operacion_general                    : chr  "Produccion" "Otro" "Produccion" "Produccion" ...
##  $ Categoria_Fuente                     : chr  NA "Tanques/Almacenamiento" "Lineas/Tuberias" "Infraestructura Fija" ...
##  $ Grupo_causas_probable                : chr  NA "Afectaciones externas" "Factores humanos" "Problemas tecnicos" ...
##  $ Liberacion_petroleo_crudo_edicion    : num  0 0 0 0 0 ...
##  $ Edicion_recuperacion_petroleo_crudo  : num  NA 0 0 0 0 0 0 0 0 NA ...
##  $ Volumen_liberado_Cond_Final          : num  0 0 0 10 0 0 0 1 0 0 ...
##  $ Liberacion_agua_de_produccion_edicion: num  6720 3780 5040 420 10920 ...
##  $ Liberacion_volumen_gas               : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ Volumen_condensado_recuperado        : num  NA 0 0 1 0 0 0 0 0 NA ...
##  $ Edicion_Recuperacion_agua_producida  : num  NA 420 4620 0 10920 ...
##  $ Derrame_sobre_agua_limpio            : chr  "NO" "NO" "NO" "NO" ...
##  $ Estado_general                       : chr  "Observaciones tecnicas" NA NA NA ...
##  $ Codigo_area                          : int  1 1 1 1 1 1 1 1 1 3 ...
#VARIABLE NOMINAL 1:DISTRITO----------------------------------------------------

# Extraer la variable 
Distrito <- datos$Distrito_edit 
TDFDistrito <- table(Distrito)

# Tabla de distribución de frecuencias
Tabla <- as.data.frame(TDFDistrito)  # Frecuencia Absoluta
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni / sum(Tabla$ni)  # Frecuencia Relativa
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)  # Agregar fila de totales
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Distrito = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##    Distrito    ni          fo
## 1         1   430   4.2198234
## 2        10   506   4.9656526
## 3         2   217   2.1295388
## 4         3   726   7.1246320
## 5         4   278   2.7281649
## 6         5    53   0.5201178
## 7         6   212   2.0804711
## 8        6E   122   1.1972522
## 9        7B   153   1.5014720
## 10       7C   960   9.4210010
## 11        8  5023  49.2934249
## 12       8A  1323  12.9833170
## 13        9   187   1.8351325
## 14    Total 10190 100.0000000
## Gráficas

# Ajustar márgenes
par(mar = c(8, 4, 3, 2))

# Frecuencia Absoluta
barplot(TDFDistrito,
        main = "Gráfica No.1: Distribución de cada Distrito",
        xlab = "",
        ylab = "Cantidad",
        col = "darkviolet",
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(TDFDistrito) * 1.2),
        border = "black")
mtext("Distrito", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(TDFDistrito), n = 5), col = "gray85", lty = "dotted")

# Frecuencia Relativa
porcentajes <- TDFDistrito / sum(TDFDistrito) * 100  # Aquí se cambió TDFdistrito por TDFDistrito
par(mar = c(8, 4, 3, 2)) 
barplot(porcentajes,
        main = "Gráfica No.2: Distribución porcentual de cada Distrito",
        xlab = "",
        ylab = "Porcentaje",
        col = "darkmagenta",
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")
mtext("Distritos", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(porcentajes), n = 5), col = "gray85", lty = "dotted")

P_Distrito_edit <- Tabla$ni / sum(Tabla$ni)
# Eliminar la fila "Total" si está presente
P_Distrito_edit <- P_Distrito_edit[Tabla$Distrito != "Total"]
nombres_Distrito <- Tabla$Distrito[Tabla$Distrito != "Total"]
# Gráfico de barras: Distribución de probabilidad de cada Distrito
barplot(P_Distrito_edit,
        main = "Gráfica Nº3: Distribución de Probabilidad de cada Distrito",
        xlab = "Distrito", ylab = "Probabilidad",
        col = "steelblue",
        names.arg = nombres_Distrito,
        las = 3,
        cex.names = 0.8)

# ¿Cuál es la probabilidad de que ocurra un derrame en el distrito 6E?
nombre_distrito <- "6E"
probabilidad_6E <- round(
  (Tabla$ni[Tabla$Distrito == nombre_distrito] / sum(Tabla$ni[Tabla$Distrito != "Total"])) * 100,
  1
)

print(paste("La probabilidad es de:", probabilidad_6E, "%"))
## [1] "La probabilidad es de: 1.2 %"
#VARIABLE NOMINAL 2:CATEGORIA DE LAS INSTALACIONES -----------------------------

#Extraer la variable 
Categoria_Instalaciones <- datos$Categoria_Instalaciones 
TDFCategoria_Instalaciones <- table(Categoria_Instalaciones)

# Tabla de distribución de frecuencias
Tabla <- as.data.frame(TDFCategoria_Instalaciones)     # Frecuencia Absoluta
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni / sum(Tabla$ni)        # Frecuencia Relativa
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)          # Agregar fila de totales
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Categoria_Instalaciones = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##   Categoria_Instalaciones    ni          fo
## 1        Areas Operativas    14   0.1380126
## 2  Infraestructura Lineal    30   0.2957413
## 3        Instalacion fija   454   4.4755521
## 4                   Pozos  9646  95.0906940
## 5                   Total 10144 100.0000000
## Gráficas

# Ajustar márgenes
par(mar = c(8, 4, 3, 2))

# Frecuencia Absoluta
barplot(TDFCategoria_Instalaciones,
        main = "Gráfica No.1: 
        Distribución de la categoría de cada Instalación",
        xlab = "",
        ylab = "Cantidad",
        col = "cadetblue4",  
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(TDFCategoria_Instalaciones) * 1.2),
        border = "black")
mtext("Categoría de Instalaciones", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(TDFCategoria_Instalaciones), n = 5), col = "gray85", lty = "dotted")

# Frecuencia Relativa
porcentajes <- TDFCategoria_Instalaciones / sum(TDFCategoria_Instalaciones) * 100
par(mar = c(8, 4, 3, 2)) 
barplot(porcentajes,
        main = "Gráfica No.2: 
        Distribución porcentual de la categoría de cada Instalación",
        xlab = "",
        ylab = "Porcentaje",
        col = "darkseagreen",  
        las = 3, 
        cex.names = 0.5,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")
mtext("Categorías de Instalaciones", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(porcentajes), n = 5), col = "gray85", lty = "dotted")

P_Categoria_Instalaciones <- Tabla$ni / sum(Tabla$ni)
# Eliminar la fila "Total" si está presente
Tabla <- Tabla[Tabla$Categoria_Instalaciones != "Total", ]
# Eliminar valores nulos en los datos (en ambas columnas: 'ni' y 'Categoria_Instalaciones')
Tabla <- Tabla[!is.na(Tabla$ni) & !is.na(Tabla$Categoria_Instalaciones), ]
P_Categoria_Instalaciones <- Tabla$ni / sum(Tabla$ni)
nombres_Categoria_Instalaciones <- Tabla$Categoria_Instalaciones
# Verificar si los datos son válidos
if (length(P_Categoria_Instalaciones) > 0) {
  # Gráfico de barras: Distribución de probabilidad de cada Categoría de Instalaciones
  barplot(P_Categoria_Instalaciones,
          main = "Gráfica Nº3: 
          Distribución de Probabilidad de cada Categoría de Instalaciones",
          xlab = "Categoría de Instalaciones", 
          ylab = "Probabilidad",
          col = "steelblue",
          names.arg = nombres_Categoria_Instalaciones,
          las = 3,
          cex.names = 0.5,
          ylim = c(0, 1))  # El rango en el eje y debe ser de 0 a 1 para probabilidades
} else {
  print("Los datos no son válidos para crear el gráfico. Revisa los valores de la variable.")
}

# ¿Cuál es la probabilidad de que ocurra un derrame en algún pozo ?
nombre_categoria <- "Pozos"  #
probabilidad_Pozos <- round(
  (Tabla$ni[Tabla$Categoria_Instalaciones == nombre_categoria] / sum(Tabla$ni[Tabla$Categoria_Instalaciones != "Total"])) * 100,
  1
)
print(paste("La probabilidad es de:", probabilidad_Pozos, "%"))
## [1] "La probabilidad es de: 95.1 %"
# VARIABLE NOMINAL 3:TIPO DE OPERACIÓN ----------------------------------------------------

# Carga de datos 
Operacion_general <- datos$Operacion_general
TDFOperacion_general <- table(Operacion_general)

# Tabla de distribución de frecuencias
Tabla <- as.data.frame(TDFOperacion_general)     # Frecuencia Absoluta
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni / sum(Tabla$ni)        # Frecuencia Relativa
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)          # Agregar fila de totales
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Operacion_general = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##        Operacion_general    ni          fo
## 1  Inyeccion/Disposicion  2474  24.3839937
## 2                   Otro   107   1.0546028
## 3            Perforacion     2   0.0197122
## 4                Plantas    22   0.2168342
## 5             Produccion  7271  71.6637098
## 6 Transporte/Recoleccion   266   2.6217228
## 7       Tratamiento agua     4   0.0394244
## 8                  Total 10146 100.0000000
## Gráficas
# Ajustar márgenes
par(mar = c(8, 4, 3, 2))

# Frecuencia Absoluta
barplot(TDFOperacion_general,
        main = "Gráfica No.1: 
        Distribución de Operaciones Generales",
        xlab = "",
        ylab = "Cantidad",
        col = "deeppink",  
        las = 3, 
        cex.names = 0.5,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(TDFOperacion_general) * 1.2),
        border = "black")
mtext("Operación General", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(TDFOperacion_general), n = 5), col = "gray85", lty = "dotted")

# Frecuencia Relativa
porcentajes <- TDFOperacion_general / sum(TDFOperacion_general) * 100
par(mar = c(8, 4, 3, 2)) 
barplot(porcentajes,
        main = "Gráfica No.2: 
        Distribución porcentual de Operaciones Generales",
        xlab = "",
        ylab = "Porcentaje",
        col = "deeppink2",  
        las = 3, 
        cex.names = 0.5,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")
mtext("Operaciones Generales", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(porcentajes), n = 5), col = "gray85", lty = "dotted")

P_Operacion_general <- Tabla$ni / sum(Tabla$ni)
# Eliminar la fila "Total" si está presente en los datos
Tabla <- Tabla[Tabla$Operacion_general != "Total", ]
# Eliminar valores nulos en los datos (en ambas columnas: 'ni' y 'Operacion_general')
Tabla <- Tabla[!is.na(Tabla$ni) & !is.na(Tabla$Operacion_general), ]
# Asegurarse de que las probabilidades sean válidas después del filtrado
P_Operacion_general <- Tabla$ni / sum(Tabla$ni)
nombres_Operacion_general <- Tabla$Operacion_general
# Gráfico de barras: Distribución de probabilidad de cada Operación General
barplot(P_Operacion_general,
        main = "Gráfica Nº3: 
        Distribución de Probabilidad de cada Operación General",
        xlab = "Operación General", 
        ylab = "Probabilidad",
        col = "deeppink3",
        names.arg = nombres_Operacion_general,
        las = 3,
        cex.names = 0.5,
        ylim = c(0, 1))  # El rango en el eje y debe ser de 0 a 1 para probabilidades

# ¿Cuál es la probabilidad de que ocurra un derrame de  operación en alguna planta?
nombre_operacion <- "Plantas"  
probabilidad_Plantas <- round(
  (Tabla$ni[Tabla$Operacion_general == nombre_operacion] / sum(Tabla$ni[Tabla$Operacion_general != "Total"])) * 100,
  1
)
print(paste("La probabilidad es de:", probabilidad_Plantas, "%"))
## [1] "La probabilidad es de: 0.2 %"
# VARIABLE NOMINAL 4: CATEGORIA DE FUENTE ----------------------------------------------------

# Carga de datos 
Categoria_Fuente <- datos$Categoria_Fuente
TDFCategoria_Fuente <- table(Categoria_Fuente)

# Tabla de distribución de frecuencias
Tabla <- as.data.frame(TDFCategoria_Fuente)     # Frecuencia Absoluta
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni / sum(Tabla$ni)        # Frecuencia Relativa
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)          # Agregar fila de totales
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Categoria_Fuente = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##          Categoria_Fuente    ni           fo
## 1        Areas Operativas     1   0.00986096
## 2       Equipos inyeccion   280   2.76106893
## 3    Infraestructura Fija   273   2.69204220
## 4  Infraestructura Lineal    55   0.54235283
## 5         Lineas/Tuberias  3229  31.84104132
## 6                    Otro   261   2.57371068
## 7                   Pozos  1175  11.58662854
## 8  Tanques/Almacenamiento  4826  47.58899517
## 9                Vehiculo    41   0.40429938
## 10                  Total 10141 100.00000000
## Gráficas
# Ajustar márgenes
par(mar = c(8, 4, 3, 2))

# Frecuencia Absoluta
barplot(TDFCategoria_Fuente,
        main = "Gráfica No.1: 
        Distribución de  Categoría de cada Fuente",
        xlab = "",
        ylab = "Cantidad",
        col = "darkviolet",
        las = 3, 
        cex.names = 0.5,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(TDFCategoria_Fuente) * 1.2),
        border = "black")
mtext("Categoría de Fuente", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(TDFCategoria_Fuente), n = 5), col = "gray85", lty = "dotted")

# Frecuencia Relativa
porcentajes <- TDFCategoria_Fuente / sum(TDFCategoria_Fuente) * 100
par(mar = c(8, 4, 3, 2)) 
barplot(porcentajes,
        main = "Gráfica No.2: 
        Distribución porcentual de Categoría de cada Fuente",
        xlab = "",
        ylab = "Porcentaje",
        col = "darkmagenta",
        las = 3, 
        cex.names = 0.5,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")
mtext("Categorías de Fuente", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(porcentajes), n = 5), col = "gray85", lty = "dotted")

P_Categoria_Fuente <- Tabla$ni / sum(Tabla$ni)
# Eliminar la fila "Total" si está presente
P_Categoria_Fuente <- P_Categoria_Fuente[Tabla$Categoria_Fuente != "Total"]
nombres_Categoria_Fuente <- Tabla$Categoria_Fuente[Tabla$Categoria_Fuente != "Total"]
# Gráfico de barras: Distribución de probabilidad de  Categoría de cada Fuente
barplot(P_Categoria_Fuente,
        main = "Gráfica Nº3: 
        Distribución de Probabilidad de Categoría cada de Fuente",
        xlab = "Categoría de Fuente", 
        ylab = "Probabilidad",
        col = "darkorchid",
        names.arg = nombres_Categoria_Fuente,
        las = 3,
        cex.names = 0.5)

# ¿Cuál es la probabilidad de que ocurra un derrame en la categoría 'X'?
nombre_categoria <- "Vehiculo"  
probabilidad_Vehiculo <- round(
  (Tabla$ni[Tabla$Categoria_Fuente == nombre_categoria] / sum(Tabla$ni[Tabla$Categoria_Fuente != "Total"])) * 100,
  1
)
print(paste("La probabilidad es de:", probabilidad_Vehiculo, "%"))
## [1] "La probabilidad es de: 0.4 %"
# VARIABLE NOMINAL 5: GRUPO DE CAUSAS PROBABLES ----------------------------------------------------
# Carga de datos 
Grupo_causas_probable <- datos$Grupo_causas_probable
TDFGrupo_causas_probable <- table(Grupo_causas_probable)

# Tabla de distribución de frecuencias
Tabla <- as.data.frame(TDFGrupo_causas_probable)     # Frecuencia Absoluta
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni / sum(Tabla$ni)        # Frecuencia Relativa
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)          # Agregar fila de totales
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Grupo_causas_probable = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##   Grupo_causas_probable    ni          fo
## 1 Afectaciones externas   305   3.0162184
## 2  Factores ambientales  1019  10.0771361
## 3      Factores humanos   896   8.8607595
## 4    Operacion fracking     5   0.0494462
## 5                 Otros   285   2.8184335
## 6  Problemas electricos     5   0.0494462
## 7    Problemas tecnicos  7597  75.1285601
## 8                 Total 10112 100.0000000
## Gráficas
# Ajustar márgenes
par(mar = c(8, 4, 3, 2))

# Frecuencia Absoluta
barplot(TDFGrupo_causas_probable,
        main = "Gráfica No.1: 
        Distribución de cada Grupo de Causas Probables",
        xlab = "",
        ylab = "Cantidad",
        col = "deepskyblue",
        las = 3, 
        cex.names = 0.5,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(TDFGrupo_causas_probable) * 1.2),
        border = "black")
mtext("Grupo de Causas Probables", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(TDFGrupo_causas_probable), n = 5), col = "gray85", lty = "dotted")

# Frecuencia Relativa
porcentajes <- TDFGrupo_causas_probable / sum(TDFGrupo_causas_probable) * 100
par(mar = c(8, 4, 3, 2)) 
barplot(porcentajes,
        main = "Gráfica No.2: 
        Distribución porcentual de cada Grupo de Causas Probables",
        xlab = "",
        ylab = "Porcentaje",
        col = "deepskyblue3",
        las = 3, 
        cex.names = 0.5,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")
mtext("Grupos de Causas Probables", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(porcentajes), n = 5), col = "gray85", lty = "dotted")

P_Grupo_causas_probable <- Tabla$ni / sum(Tabla$ni)
# Eliminar la fila "Total" si está presente
P_Grupo_causas_probable <- P_Grupo_causas_probable[Tabla$Grupo_causas_probable != "Total"]
nombres_Grupo_causas_probable <- Tabla$Grupo_causas_probable[Tabla$Grupo_causas_probable != "Total"]

# Gráfico de barras: Distribución de probabilidad de cada Grupo de Causas Probables
barplot(P_Grupo_causas_probable,
        main = "Gráfica Nº3: 
        Distribución de Probabilidad de cada Grupo de Causas Probables",
        xlab = "Grupo de Causas Probables", ylab = "Probabilidad",
        col = "deepskyblue4",
        names.arg = nombres_Grupo_causas_probable,
        las = 3,
        cex.names = 0.5)

# ¿Cuál es la probabilidad de que ocurra un derrame por otro tipo de causa ?
nombre_grupo_causa <- "Otros"  # Reemplazar 'X' por el grupo de causa deseado
probabilidad_Otros <- round(
  (Tabla$ni[Tabla$Grupo_causas_probable == nombre_grupo_causa] / sum(Tabla$ni[Tabla$Grupo_causas_probable != "Total"])) * 100,
  1
)
print(paste("La probabilidad de derrame en el grupo de causa", nombre_grupo_causa, "es de:", probabilidad_Otros, "%"))
## [1] "La probabilidad de derrame en el grupo de causa Otros es de: 2.8 %"
# VARIABLE NOMINAL 6: DERRAME SOBRE AGUA LIMPIO ----------------------------------------------------

# Carga de datos 
Derrame_sobre_agua_limpio <- datos$Derrame_sobre_agua_limpio
TDFDerrame_sobre_agua_limpio <- table(Derrame_sobre_agua_limpio)

# Tabla de distribución de frecuencias
Tabla <- as.data.frame(TDFDerrame_sobre_agua_limpio)     # Frecuencia Absoluta
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni / sum(Tabla$ni)        # Frecuencia Relativa
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)          # Agregar fila de totales
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Derrame_sobre_agua_limpio = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##   Derrame_sobre_agua_limpio   ni         fo
## 1                        NO 9586  96.361078
## 2                       YES  362   3.638922
## 3                     Total 9948 100.000000
## Gráficas
# Ajustar márgenes
par(mar = c(8, 4, 3, 2))

# Frecuencia Absoluta
barplot(TDFDerrame_sobre_agua_limpio,
        main = "Gráfica No.1: 
        Distribución de Derrames sobre Agua Limpia",
        xlab = "",
        ylab = "Cantidad",
        col = "cyan",
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(TDFDerrame_sobre_agua_limpio) * 1.2),
        border = "black")
mtext("Derrame sobre Agua Limpia", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(TDFDerrame_sobre_agua_limpio), n = 5), col = "gray85", lty = "dotted")

# Frecuencia Relativa
porcentajes <- TDFDerrame_sobre_agua_limpio / sum(TDFDerrame_sobre_agua_limpio) * 100
par(mar = c(8, 4, 3, 2)) 
barplot(porcentajes,
        main = "Gráfica No.2: 
        Distribución porcentual de Derrames sobre Agua Limpia",
        xlab = "",
        ylab = "Porcentaje",
        col = "cyan2",
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")
mtext("Derrames sobre Agua Limpia", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(porcentajes), n = 5), col = "gray85", lty = "dotted")

# Calcular la probabilidad de cada derrame sobre agua limpia
P_Derrame_sobre_agua_limpio <- Tabla$ni / sum(Tabla$ni)
Tabla <- Tabla[Tabla$Derrame_sobre_agua_limpio != "Total", ]
# Eliminar valores nulos en los datos (en ambas columnas: 'ni' y 'Derrame_sobre_agua_limpio')
Tabla <- Tabla[!is.na(Tabla$ni) & !is.na(Tabla$Derrame_sobre_agua_limpio), ]
# Filtrar valores infinitos o no finitos en los datos
Tabla <- Tabla[is.finite(Tabla$ni) & is.finite(Tabla$Derrame_sobre_agua_limpio), ]
P_Derrame_sobre_agua_limpio <- Tabla$ni / sum(Tabla$ni)
nombres_Derrame_sobre_agua_limpio <- Tabla$Derrame_sobre_agua_limpio
# Verificar que haya datos para el gráfico
if (length(P_Derrame_sobre_agua_limpio) > 0) {
  # Gráfico de barras: Distribución de probabilidad de cada Derrame sobre Agua Limpia
  barplot(P_Derrame_sobre_agua_limpio,
          main = "Gráfica Nº3: 
          Distribución de Probabilidad de Derrames sobre Agua Limpia",
          xlab = "Derrame sobre Agua Limpia", ylab = "Probabilidad",
          col = "cyan3",
          names.arg = nombres_Derrame_sobre_agua_limpio,
          las = 3,
          cex.names = 0.8,
          ylim = c(0, 1))  # El rango en el eje y debe ser de 0 a 1 para probabilidades
} else {
  print("Los datos no son válidos para crear el gráfico. Revisa los valores de la variable.")
}

# ¿Cuál es la probabilidad de que ocurra un derrame sobre agua limpio?
nombre_derrame <- "NO"  # Reemplazar 'X' por la categoría deseada
probabilidad_NO <- round(
  (Tabla$ni[Tabla$Derrame_sobre_agua_limpio == nombre_derrame] / sum(Tabla$ni[Tabla$Derrame_sobre_agua_limpio != "Total"])) * 100,
  1
)
print(paste("La probabilidad de derrame sobre agua limpia en la categoría", nombre_derrame, "es de:", probabilidad_NO, "%"))
## [1] "La probabilidad de derrame sobre agua limpia en la categoría NO es de: 96.4 %"
# VARIABLE NOMINAL 7: ESTADO GENERAL ----------------------------------------------------

# Carga de datos 
Estado_general <- datos$Estado_general
TDFEstado_general <- table(Estado_general)

# Tabla de distribución de frecuencias
Tabla <- as.data.frame(TDFEstado_general)     # Frecuencia Absoluta
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni / sum(Tabla$ni)        # Frecuencia Relativa
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)          # Agregar fila de totales
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Estado_general = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##             Estado_general   ni          fo
## 1             Caso abierto  271   2.7703946
## 2     Cerrado / Controlado 7969  81.4659579
## 3 Evaluación / Seguimiento 1532  15.6614189
## 4   Observaciones tecnicas   10   0.1022286
## 5                    Total 9782 100.0000000
## Gráficas
# Ajustar márgenes
par(mar = c(8, 4, 3, 2))

# Frecuencia Absoluta
barplot(TDFEstado_general,
        main = "Gráfica No.1: 
        Distribución de cada Estado General",
        xlab = "",
        ylab = "Cantidad",
        col = "chocolate",
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(TDFEstado_general) * 1.2),
        border = "black")
mtext("Estado General", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(TDFEstado_general), n = 5), col = "gray85", lty = "dotted")

# Frecuencia Relativa
porcentajes <- TDFEstado_general / sum(TDFEstado_general) * 100
par(mar = c(8, 4, 3, 2)) 
barplot(porcentajes,
        main = "Gráfica No.2: 
        Distribución porcentual de cada Estado General",
        xlab = "",
        ylab = "Porcentaje",
        col = "chocolate1",
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")
mtext("Estados Generales", side = 1, line = 5, cex = 1.1)
abline(h = pretty(range(porcentajes), n = 5), col = "gray85", lty = "dotted")

P_Estado_general <- Tabla$ni / sum(Tabla$ni)
# Eliminar la fila "Total" si está presente
P_Estado_general <- P_Estado_general[Tabla$Estado_general != "Total"]
nombres_Estado_general <- Tabla$Estado_general[Tabla$Estado_general != "Total"]
# Gráfico de barras: Distribución de probabilidad de cada Estado General
barplot(P_Estado_general,
        main = "Gráfica Nº3: 
        Distribución de Probabilidad de cada Estado General",
        xlab = "Estado General", ylab = "Probabilidad",
        col = "chocolate3",
        names.arg = nombres_Estado_general,
        las = 3,
        cex.names = 0.5)

# ¿Cuál es la probabilidad de que ocurra un derrame en Caso abierto ?
nombre_estado <- "Caso abierto"
probabilidad_Caso<- round(
  (Tabla$ni[Tabla$Estado_general == nombre_estado] / sum(Tabla$ni[Tabla$Estado_general != "Total"])) * 100,
  1
)
print(paste("La probabilidad de derrame en el estado", nombre_estado, "es de:", probabilidad_Caso, "%"))
## [1] "La probabilidad de derrame en el estado Caso abierto es de: 2.8 %"