1 Carga de datos

datos <- read.csv("Derrames_globales2.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" ...

2 UBICACIÓN

2.1 Tabla de distribución de frecuencias

ubicacion <- datos$Ubicacion
ubicacion <- na.omit(ubicacion)
TDFubicacion <- table(ubicacion)
Tablaubicacion <- as.data.frame(TDFubicacion)
colnames(Tablaubicacion) <- c("Ubicacion", "ni")
Tablaubicacion$hi <- round(Tablaubicacion$ni / sum(Tablaubicacion$ni) * 100, 2)
Tablaubicacion$Continente <- NA

# América
america <- c("USA", "US", "CA", "TX", "MI", "OH", "AK", "HI", 
             "Alaska", "Texas", "Ohio", "Michigan", "California", 
             "Louisiana", "NY", "MA")

Tablaubicacion$Continente[grep(paste(america, collapse="|"),
                               Tablaubicacion$Ubicacion, ignore.case=TRUE)] <- "América"

# Europa
europa <- c("UK", "England", "France", "Germany", "Spain", "Italy")

Tablaubicacion$Continente[grep(paste(europa, collapse="|"),
                               Tablaubicacion$Ubicacion, ignore.case=TRUE)] <- "Europa"

# Asia
asia <- c("China", "India", "Japan", "Korea", "Saudi")

Tablaubicacion$Continente[grep(paste(asia, collapse="|"),
                               Tablaubicacion$Ubicacion, ignore.case=TRUE)] <- "Asia"

# Oceanía
oceania <- c("Australia", "New Zealand")

Tablaubicacion$Continente[grep(paste(oceania, collapse="|"),
                               Tablaubicacion$Ubicacion, ignore.case=TRUE)] <- "Oceanía"

# África
africa <- c("Nigeria", "South Africa")

Tablaubicacion$Continente[grep(paste(africa, collapse="|"),
                               Tablaubicacion$Ubicacion, ignore.case=TRUE)] <- "África"

# Otros
Tablaubicacion$Continente[is.na(Tablaubicacion$Continente)] <- "Otros"

TDFcontinente <- table(Tablaubicacion$Continente)
TablaContinente <- as.data.frame(TDFcontinente)
colnames(TablaContinente) <- c("Continente", "Frecuencia")

TablaContinente$Porcentaje <- round(TablaContinente$Frecuencia /
                                      sum(TablaContinente$Frecuencia) * 100, 2)

print(TablaContinente)
##   Continente Frecuencia Porcentaje
## 1     África          4       0.14
## 2    América       1906      68.98
## 3       Asia          9       0.33
## 4     Europa         27       0.98
## 5    Oceanía          3       0.11
## 6      Otros        814      29.46

2.2 Gráficos

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

#Frecuencia Absoluta
barplot(TDFcontinente,
        main = "Distribución de Derrames por Continente",
        xlab = "Continente",
        ylab = "Cantidad",
        col = "aquamarine2",
        cex.main = 1.3,
        cex.lab = 1,
        cex.axis = 0.9,
        cex.names = 0.9)

# Frecuencia relativa
barplot(TablaContinente$Porcentaje,
        main = "Gráfica: Distribución porcentual por Continente",
        xlab = "Continente",
        ylab = "Porcentaje (%)",
        col = "blue",
        names.arg = TablaContinente$Continente,
        cex.main = 1.5,
        cex.lab = 1,
        cex.axis = 0.8,
        cex.names = 0.9,
        ylim = c(0, 100))

2.3 Probabilidad

P_Continente <- TablaContinente$Frecuencia / sum(TablaContinente$Frecuencia)

barplot(P_Continente,
        main = "Distribución de Probabilidad por Continente",
        xlab = "Continente",
        ylab = "Probabilidad",
        col = "steelblue",
        names.arg = TablaContinente$Continente,
        las = 2,
        cex.names = 0.9)

abline(h = pretty(range(P_Continente), n = 5), col = "gray85", lty = "dotted")

##¿Cuál es la probabilidad de que un derrame ocurriera Asia?

continente_objetivo <- "Asia"
total <- sum(Tablaubicacion$ni)
if (continente_objetivo %in% Tablaubicacion$Continente) {
  probabilidad_Asia <- round(
    (sum(Tablaubicacion$ni[Tablaubicacion$Continente == continente_objetivo]) / total) * 100,
    2)
  print(paste("La probabilidad de que un derrame ocurra en Asia es:",
              probabilidad_Asia, "%"))
} else {
  print("No existen datos registrados para Asia.")
}
## [1] "La probabilidad de que un derrame ocurra en Asia es: 0.25 %"

3 TIPO DE CRUDO

3.1 Tabla de distribución de frecuencias

tipo <- na.omit(datos$Tipo_de_crudo)
TDFtipo <- table(tipo)
Tablatipo <- as.data.frame(TDFtipo)
colnames(Tablatipo) <- c("Tipo_crudo", "ni")
Tablatipo$hi <- round((Tablatipo$ni / sum(Tablatipo$ni)) * 100, 2)
Tablatipo$Categoria <- NA

crudo <- c("crude", "oil", "Crude Tall Oil", "VGO", "unk", "tar", "oiled birds")
diesel <- c("diesel", "diseil", "diesel fuel", "Diesel, Fish")
fueloil <- c("bunker", "fuel oil", "IFO", "IFO 380")
gas <- c("gas fuel oil", "JP", "JP-5", "gasoline")
minerales <- c("mineral oil", "heating oil")

Tablatipo$Categoria[grep(paste(crudo, collapse="|"), 
                         Tablatipo$Tipo_crudo, ignore.case = TRUE)] <- "Crudo / Oil"

Tablatipo$Categoria[grep(paste(diesel, collapse="|"), 
                         Tablatipo$Tipo_crudo, ignore.case = TRUE)] <- "Diesel"

Tablatipo$Categoria[grep(paste(fueloil, collapse="|"), 
                         Tablatipo$Tipo_crudo, ignore.case = TRUE)] <- "Fuel Oil"

Tablatipo$Categoria[grep(paste(gas, collapse="|"),
                         Tablatipo$Tipo_crudo, ignore.case = TRUE)] <- "Gasolina / Jet fuel"

Tablatipo$Categoria[grep(paste(minerales, collapse="|"),
                         Tablatipo$Tipo_crudo, ignore.case = TRUE)] <- "Mineral Oil"

Tablatipo$Categoria[is.na(Tablatipo$Categoria)] <- "Otros"
TDFcategoria <- table(Tablatipo$Categoria)
TablaCategoria <- as.data.frame(TDFcategoria)
colnames(TablaCategoria) <- c("Categoria", "Freq")
TablaCategoria$Porcentaje <- round(TablaCategoria$Freq / sum(TablaCategoria$Freq) * 100, 2)

3.2 Gráficos

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

# Frecuencia Absoluta
barplot(TablaCategoria$Freq,
        names.arg = TablaCategoria$Categoria,
        main = "Gráfica No.2: Distribución del Tipo de Combustible",
        xlab="Categoría de combustible",
        ylab="Cantidad",
        cex.names = 0.6,
        col="darkgreen")

# Frecuencia Relativa

barplot(TablaCategoria$Porcentaje,
        names.arg = TablaCategoria$Categoria,
        main = "Gráfica No.2: Distribución porcentual del Tipo de Combustible",
        ylab="Porcentaje (%)",
        cex.names = 0.6,
        col = "darkgreen",
        ylim = c(0, 100))

3.3 Probabilidad

P_Categoria <- TablaCategoria$Freq / sum(TablaCategoria$Freq)

barplot(P_Categoria,
        names.arg = TablaCategoria$Categoria,
        col = "darkgreen",
        main = "Distribución de probabilidad por categoría",
        cex.names = 0.6,
        ylab = "Probabilidad")

abline(h = pretty(range(P_Categoria), n = 5), col = "gray85", lty = "dotted")

##¿Cuál es la probabilidad de que un derrame ocurriera por diesel?

crudo_objetivo <- "diesel"

probabilidad_diesel <- round(
  sum(Tablatipo$ni[grepl("diesel", Tablatipo$Tipo_crudo, ignore.case = TRUE)]) / 
    sum(Tablatipo$ni) * 100, 2)

print(paste("La probabilidad de que un derrame sea de Diesel es:",
            probabilidad_diesel, "%"))
## [1] "La probabilidad de que un derrame sea de Diesel es: 34.08 %"

4 CAUSA DE DERRAME

4.1 Tabla de distribución de frecuencias

causa<-datos$Causa_principal
causa<-na.omit(causa)
TDFcausa<-table(causa)
Tablacausa<-as.data.frame(TDFcausa)
hicausa<-Tablacausa$Freq/sum(Tablacausa$Freq)
hicausa<-round(hicausa*100,2)
Tablacausa<-data.frame(Tablacausa,hicausa)
categoria <- rep("Otras", length(Tablacausa$causa))

categoria[grepl("corro|rotur|fuga|tuber|tanque|ducto|fall|defec|mal func", 
                Tablacausa$causa, ignore.case = TRUE)] <- "Fallas técnicas"

categoria[grepl("error|humano|operaci|maniobra|neglig", 
                Tablacausa$causa, ignore.case = TRUE)] <- "Factores humanos"

categoria[grepl("acciden|choque|colisi|impacto|embarc|naveg", 
                Tablacausa$causa, ignore.case = TRUE)] <- "Accidentes"

categoria[grepl("inund|torment|lluvia|terrem|sismo|clima|volcan", 
                Tablacausa$causa, ignore.case = TRUE)] <- "Eventos naturales"

categoria[grepl("vandal|sabota|robo|delincu", 
                Tablacausa$causa, ignore.case = TRUE)] <- "Actos externos"
Tablacausa$Categoria <- categoria
TablaAgrupada <- aggregate(Freq ~ Categoria, data = Tablacausa, sum)
TablaAgrupada <- TablaAgrupada[order(-TablaAgrupada$Freq), ] 

4.2 Gráficos

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

# Frecuencia Absoluta
barplot(TablaAgrupada$Freq,
        names.arg = TablaAgrupada$Categoria,
        col="yellow2",
        main="Distribución de Causas del Derrame (Agrupadas)",
        xlab="Categoría",
        ylab="Cantidad",
        cex.names = 0.6,
        cex.main = 1.5)

# Frecuencia Relativa
TablaAgrupada$Porcentaje <- round(TablaAgrupada$Freq / sum(TablaAgrupada$Freq) * 100, 2)
barplot(TablaAgrupada$Porcentaje,
        names.arg = TablaAgrupada$Categoria,
        col="yellow3",
        main="Distribución porcentual de Causas (Agrupadas)",
        xlab="Categoría",
        cex.names = 0.6, 
        ylab="Porcentaje (%)",
        ylim=c(0,100))

4.3 Probabilidad

P_causa <- TablaAgrupada$Freq / sum(TablaAgrupada$Freq)
P_causa <- P_causa[TablaAgrupada$Categoria != "Total"]
nombres_causa <- TablaAgrupada$Categoria[TablaAgrupada$Categoria != "Total"]
barplot(P_causa,
        main = "Distribución de Probabilidad de las causas principales de derrames (Agrupadas)",
        cex.main = 0.9,
        xlab = "Causa principal",
        ylab = "Probabilidad",
        col = "yellow4",
        names.arg = nombres_causa,
        las = 3,
        cex.names = 0.6)

abline(h = pretty(range(P_causa), n = 5), col = "gray85", lty = "dotted")

##¿Cuál es la probabilidad de que la causa de un derrame sea por Fallas Técnicas?

Causa_objetivo <- "Fallas técnicas"

probabilidad_Fallas_tecnicas <- round(
  (TablaAgrupada$Freq[TablaAgrupada$Categoria == Causa_objetivo] /
     sum(TablaAgrupada$Freq)) * 100,
  1
)
print(paste("La probabilidad de que la causa de un derrame sea por",
            Causa_objetivo, "es:", probabilidad_Fallas_tecnicas, "%"))
## [1] "La probabilidad de que la causa de un derrame sea por Fallas técnicas es: 14.8 %"

5 AMENAZA

5.1 Tabla de distribución de frecuencias

Amenaza <- datos$Amenaza 
TDFamenazas <- table(Amenaza)
Tabla <- as.data.frame(TDFamenazas)     
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni/sum(Tabla$ni)       
fo<- fo_norm*100
sum(fo)  
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)          
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Amenaza = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##    Amenaza   ni          fo
## 1 Chemical    8   0.2253521
## 2      Oil 2562  72.1690141
## 3    Other   19   0.5352113
## 4  Unknown  961  27.0704225
## 5    Total 3550 100.0000000

5.2 Gráficos

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

# Frecuencia Absoluta
barplot(TDFamenazas,
        main = "Distribución de Amenazas en los derrames a Nivel Global",
        cex.main = 0.4,
        xlab = "Amenaza",
        ylab = "Cantidad",
        col = "aquamarine",
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(TDFamenazas) * 1.2),
        border = "black")

# Frecuencia Relativa

porcentajes <- TDFamenazas / sum(TDFamenazas) * 100

barplot(porcentajes,
        main = "Distribución porcentual de Amenazas de Derrames a Nivel Global",
        cex.main = 0.4,
        xlab = "Amenaza",
        ylab = "Porcentaje",
        col = "aquamarine3",
        las = 3, 
        cex.names = 0.8,
        cex.axis = 0.9,
        cex.main = 1.2,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")

5.3 Probabilidad

P_Amenaza <- Tabla$ni / sum(Tabla$ni)
P_Amenaza <- P_Amenaza[Tabla$Amenaza != "Total"]
nombres_amenaza <- Tabla$Amenaza[Tabla$Amenaza != "Total"]
prob_amenaza_porcentaje <- round(P_Amenaza * 100, 2)

bp <- barplot(P_Amenaza,
              main = " Distribución de Probabilidad de Amenazas de Derrames a nivel Global",
              cex.main = 1,
               xlab = "Amenaza",
              ylab = "Probabilidad",
              col = "aquamarine4",
              names.arg = nombres_amenaza,
              las = 3,
              cex.names = 0.8)

##¿Cuál es la probabilidad de que un derrame ocurriera por aceite?

amenaza_objetivo <- "Oil"
probabilidad_amenaza <- round(
  (Tabla$ni[Tabla$Amenaza == amenaza_objetivo] / sum(Tabla$ni[Tabla$Amenaza != "Total"])) * 100,
  1)
print(paste("La probabilidad es de:", probabilidad_amenaza, "%"))
## [1] "La probabilidad es de: 72.2 %"

6 ETIQUETAS

6.1 Tabla de distribución de frecuencias

etiquetas<-datos$Etiquetas
etiquetas<-na.omit(etiquetas)
TDFetiquetas<-table(etiquetas)
Tablaetiquetas<-as.data.frame(TDFetiquetas)
hietiquetas<-Tablaetiquetas$Freq/sum(Tablaetiquetas$Freq)
hietiquetas<-round(hietiquetas*100,2)
Tablaetiquetas<-data.frame(Tablaetiquetas,hietiquetas)
for (i in 1:29) {
  categoria <- Tablaetiquetas$etiquetas[i]
  if (categoria %in% c("Collision", "Grounding", "Adrift", "Derelict")) {
    Tablaetiquetas$grupo_logico[i] <- "Incidentes Marítimos"
  } else if (categoria %in% c("Railcar", "Pipeline", "Wellhead")) {
    Tablaetiquetas$grupo_logico[i] <- "Objetos y Estructuras"
  } else if (categoria %in% c("Hurricane", "Tsunami")) {
    Tablaetiquetas$grupo_logico[i] <- "Fenómenos Naturales"
  } else if (categoria %in% c("Mystery Substance", "Search + Rescue")) {
    Tablaetiquetas$grupo_logico[i] <- "Operaciones o Misterios"
  } else {
    Tablaetiquetas$grupo_logico[i] <- "Otros"
  }
}
grupo_etiquetas<-table(Tablaetiquetas$grupo_logico) 

6.2 Gráficos

par(mar = c(4, 6, 4, 5) + 0.1)
barplot(grupo_etiquetas,
        main="Distrubución de Etiquetas sobre la categoría de cada incidente",
        cex.main = 0.7,
        xlab="Etiquetas ",
        ylab="Cantidad",
        col="purple2",
        cex.main = 1.5,
        cex.lab = 1,
        cex.axis = 0.7,
        cex.names = 0.5,
        ylim = c(0, max(grupo_etiquetas)))

hi_grupo_etiquetas <- grupo_etiquetas / sum(grupo_etiquetas)
hi_grupo_etiquetas <- round(hi_grupo_etiquetas * 100, 2)

bp1 <- barplot(
  hi_grupo_etiquetas,
  main = "Distribución de  Etiquetas sobre la categoría de cada incidente",
  cex.main = 0.9,
  xlab = "Etiquetas",
  ylab = "Porcentaje",
  col = "purple3",
  names.arg = names(hi_grupo_etiquetas),
  cex.lab = 1,
  cex.axis = 0.7,
  cex.names = 0.5,
  ylim = c(0, 100)
)

6.3 Probabilidad

par(mar = c(8, 4, 3, 2))

prob_grupo_etiquetas <- round((grupo_etiquetas / sum(grupo_etiquetas)) * 100, 2)
bp1 <- barplot(
  prob_grupo_etiquetas,
  main = "Distribución de Probabilidad de Etiquetas sobre la categoría de cada incidente",
  cex.main = 0.7,
  xlab = "Etiquetas",
  ylab = "Probabilidad (%)",
  col = "purple4",
  names.arg = names(grupo_etiquetas), 
  las = 1,
  cex.names = 0.5,
  ylim = c(0, 100)
)

##¿Cuál es la probabilidad de que la etiquetas sobre cada incidente sea Otros?

GrupoTabla <- as.data.frame(grupo_etiquetas)   # columnas: Var1, Freq
GrupoTabla$porcentaje <- round((GrupoTabla$Freq / sum(GrupoTabla$Freq)) * 100, 2)
probabilidad_Otros_df <- GrupoTabla$porcentaje[GrupoTabla$Var1 == "Otros"]
print(paste0("Probabilidad de que la etiquetas sobre cada incidente sea Otros: ", probabilidad_Otros_df, " %"))
## [1] "Probabilidad de que la etiquetas sobre cada incidente sea Otros: 65.52 %"

7 Fuente respuesta

7.1 Tabla de distribución de frecuencias

Fuente_respuesta <- datos$Fuente_respuesta
TDFcausa <- table(Fuente_respuesta)
Tabla <- as.data.frame(TDFcausa)      
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni/sum(Tabla$ni)       
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)     
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(Fuente_respuesta = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##        Fuente_respuesta   ni        fo
## 1                       1737  48.92958
## 2           description  783  22.05634
## 3 description and posts  506  14.25352
## 4                 posts  524  14.76056
## 5                 Total 3550 100.00000

7.2 Gráficos

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

# Frecuencia Absoluta
barplot(TDFcausa,
        main = "Distribución de Fuente de respuesta de los derrames a nivel global ",
        cex.main = 0.4,
        xlab = "",
        ylab = "Cantidad",
        col = "yellow",
        las = 1,
        cex.names = 1,
        cex.axis = 1,
        cex.main = 1.2,
        ylim = c(0, max(TDFcausa) * 1.2),
        border = "black")

# Frecuencia Relativa
porcentajes <- TDFcausa / sum(TDFcausa) * 100
par(mar = c(8, 4, 3, 2))
barplot(porcentajes,
        main = "Distribución porcentual de Fuente de Respuesta de los derrames a nivel global ",
        cex.main = 0.9,
        xlab = "",
        ylab = "Porcentaje",
        col = "yellow3",
        las = 1,
        cex.names = 1,
        cex.axis = 1,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")

7.3 Probabilidad

P_fuente <- Tabla$ni / sum(Tabla$ni)
P_fuente <- P_fuente[Tabla$Fuente_respuesta != "Total"]
nombres_fuente <- Tabla$Fuente_respuesta[Tabla$Fuente_respuesta != "Total"]

barplot(P_fuente,
        main = "Distribución de Probabilidad de Fuente de Respuesta en derrames a nivel global",
        cex.main = 0.9, 
        xlab = "Fuente de Respuesta",
        ylab = "Probabilidad",
        col = "yellow4",
        names.arg = nombres_fuente,
        las = 1,
        cex.names = 1)

##¿Cuál es la probabilidad de que la fuente de respuesta sea publicaciones?

Causa_objetivo <- "posts"
probabilidad_posts <- round(
  (Tabla$ni[Tabla$Fuente_respuesta == Causa_objetivo] /
     sum(Tabla$ni[Tabla$Fuente_respuesta != "Total"])) * 100,
  1
)
print(paste("La probabilidad de que la fuente de respuesta sea publicaciones", Causa_objetivo, "es:", probabilidad_posts, "%"))
## [1] "La probabilidad de que la fuente de respuesta sea publicaciones posts es: 14.8 %"

8 ETIQUETA DE ACTUALIZACIÓN

8.1 Tabla de distribución de frecuencias

etiqueta_actualizacion <- datos$etiqueta_actualizacion
TDFetiqueta_actualizacion <- table(etiqueta_actualizacion)
Tabla <- as.data.frame(TDFetiqueta_actualizacion)  
colnames(Tabla)[colnames(Tabla) == "Freq"] <- "ni"
fo_norm <- Tabla$ni/sum(Tabla$ni)                 
fo <- fo_norm * 100
sum(fo)
## [1] 100
Tabla <- data.frame(Tabla, fo)
total_ni <- sum(Tabla$ni)                          
total_fo <- sum(Tabla$fo)
fila_total <- data.frame(etiqueta_actualizacion = "Total", ni = total_ni, fo = total_fo)
Tabla <- rbind(Tabla, fila_total)
Tabla
##                            etiqueta_actualizacion   ni        fo
## 1 No information better than potential maximum RA  770  21.69014
## 2                                    RA confirmed  689  19.40845
## 3                               RA newly acquired  405  11.40845
## 4                            RA still unavailable  977  27.52113
## 5                                      RA updated  709  19.97183
## 6                                           Total 3550 100.00000

8.2 Gráficos

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

# Frecuencia Absoluta
barplot(TDFetiqueta_actualizacion,
        main = "Distribución de etiqueta de actualización de los derrames a nivel global",
        xlab = "",
        ylab = "Cantidad",
        col = "pink",
        las = 3,
        cex.names = 0.6,
        cex.axis = 0.9,
        cex.main = 1,
        ylim = c(0, max(TDFetiqueta_actualizacion) * 1.2),
        border = "black")

porcentajes <- TDFetiqueta_actualizacion / sum(TDFetiqueta_actualizacion) * 100
par(mar = c(8, 4, 3, 2))
barplot(porcentajes,
        main = "Distribución porcentual de etiqueta de actualización de los derrames a nivel global",
        xlab = "",
        ylab = "Porcentaje",
        col = "pink2",
        las = 3,
        cex.names = 0.6,
        cex.axis = 0.9,
        cex.main = 1,
        ylim = c(0, max(porcentajes) * 1.2),
        border = "black")

8.3 Probabilidad

P_etiqueta_actualizacion <- Tabla$ni / sum(Tabla$ni)
P_etiqueta_actualizacion <- P_etiqueta_actualizacion[Tabla$etiqueta_actualizacion != "Total"]
nombres_etiqueta <- Tabla$etiqueta_actualizacion[Tabla$etiqueta_actualizacion != "Total"]
barplot(P_etiqueta_actualizacion,
        main = "Distribución de Probabilidad de etiqueta de actualización de los derrames a nivel global",
        cex.main = 0.9,
        xlab = "etiqueta de actualización",
        ylab = "Probabilidad",
        col = "pink3",
        names.arg = nombres_etiqueta,
        las = 3,
        cex.names = 0.6,
        cex.axis = 0.9)

##¿Cuál es la probabilidad de que la fuente de respuesta sea RA cofirmada?

etiqueta_objetivo <- "RA confirmed" 
probabilidad_confirmado <- round(
  (Tabla$ni[Tabla$etiqueta_actualizacion == etiqueta_objetivo] /
     sum(Tabla$ni[Tabla$etiqueta_actualizacion != "Total"])) * 100,
  1
)

print(paste("La probabilidad de", etiqueta_objetivo, "es:", probabilidad_confirmado, "%"))
## [1] "La probabilidad de RA confirmed es: 19.4 %"