library(gtools)
La permutación corresponde a las diferentes maneras de organizar un conjunto de n elementos en muestras, considerando un orden. En cambio, la combinación organiza elementos de un conjunto sin importar el orden. Por lo que, en la permutación, {1,2,3} es distinto a {3,2,1}, sin embargo, son la misma muestra para la combinación.
La función permutations permite enumerar las posibles permutaciones de un conjunto de elementos, considerando el orden. Por el contrario, la función combinations enumera las combinaciones de un conjunto de elementos, sin importar su orden.
# permutations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
# combinations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
Ambas funciones reciben cinco parámetros, “n” corresponde al tamaño del vector, “r” representa el subconjunto que se tomará de la muestra para realizar las permutaciones o combinaciones, “v” es el vector que contiene los elementos, luego “set” indica si se deben eliminar los elementos duplicados del vector, que por defecto es verdadera, por último, “repeats.allowed” indica si se permiten repeticiones en las permutaciones o combinaciones realizadas, que por defecto es falsa.
nrow(permutations(14,4,repeats = TRUE))
## [1] 38416
nrow(permutations(14,4,repeats = FALSE))
## [1] 24024
combinations(3,3,c("a","b","c"),repeats = TRUE)
## [,1] [,2] [,3]
## [1,] "a" "a" "a"
## [2,] "a" "a" "b"
## [3,] "a" "a" "c"
## [4,] "a" "b" "b"
## [5,] "a" "b" "c"
## [6,] "a" "c" "c"
## [7,] "b" "b" "b"
## [8,] "b" "b" "c"
## [9,] "b" "c" "c"
## [10,] "c" "c" "c"
combinations(3,3,c("a","b","c"),repeats = FALSE)
## [,1] [,2] [,3]
## [1,] "a" "b" "c"
nrow(permutations(30,2,repeats = FALSE))
## [1] 870
nrow(combinations(30,2,repeats = FALSE))
## [1] 435
Pab = function(Pba, Pa, Pb){
resultado = Pba*Pa/Pb
return(resultado)
}
# Tabla con información de sobrevivientes por clase
apply(Titanic, c(1,4), sum)
## Survived
## Class No Yes
## 1st 122 203
## 2nd 167 118
## 3rd 528 178
## Crew 673 212
# Pasajeros que sobrevivieron
PasajerosS = sum(c(apply(Titanic, c(1,4), sum))[5:7])
# Total de pasajeros
PasajerosT = PasajerosS + sum(c(apply(Titanic, c(1,4), sum))[1:3])
# Calcula porcentaje de supervivencia
PorcentajeP = (PasajerosS/PasajerosT)*100
PorcentajeP
## [1] 37.91793
#Tripulantes que sobrevivieron
TripulantesS = c(apply(Titanic, c(1,4), sum))[8]
# Total de tripulantes
TripulantesT = TripulantesS + c(apply(Titanic, c(1,4), sum))[4]
# Calcula porcentaje de supervivencia
TripulantesP = (TripulantesS/TripulantesT)*100
TripulantesS
## [1] 212
TripulantesT
## [1] 885
TripulantesP
## [1] 23.9548
Finalmente, es mayor el porcentaje de supervivencia de los pasajeros.
# Para utilizar teorema de bayes, debemos calcular las siguientes probabilidades
# Probabilidad de supervivencia
PersonasVivas = c(apply(Titanic,4,sum))[2]
PersonasTotal = sum(apply(Titanic,4,sum))
Pa = PersonasVivas/PersonasTotal
# Probabilidad de ser mujer en la tripulación
MujerTrip = c(apply(Titanic,c(1,2),sum))[8]
TripTotal = MujerTrip + c(apply(Titanic,c(1,2),sum))[4]
Pb = MujerTrip/TripTotal
# Probabilidad de ser mujer de la tripulación dado que sobrevivió
MujerTripViva = c(apply(Titanic,c(1,2,4),sum))[16]
Pba = MujerTripViva/PersonasVivas
Pfinal = Pab(Pba,Pa,Pb)
Pfinal
## Yes
## 0.3496434
# Para utilizar teorema de bayes, debemos calcular las siguientes probabilidades
# Probabilidad de supervivencia
PersonasVivas = c(apply(Titanic,4,sum))[2]
PersonasTotal = sum(apply(Titanic,4,sum))
Pa2 = PersonasVivas/PersonasTotal
# Probabilidad de ser niño en tercera clase
Niño3 = c(apply(Titanic,c(1,3),sum))[3]
Total3 = Niño3 + c(apply(Titanic,c(1,3),sum))[7]
Pb2 = Niño3/Total3
# Probabilidad de ser mujer de la tripulación dado que sobrevivió
Niño3Vivo = c(apply(Titanic,c(1,3,4),sum))[11]
Pba2 = Niño3Vivo/PersonasVivas
Pfinal2 = Pab(Pba2,Pa2,Pb2)
Pfinal2
## Yes
## 0.109628
# Probabilidad supervivencia mujeres
PmujerS = c(apply(Titanic,c(2,3,4),sum))[8] / (c(apply(Titanic,c(2,3,4),sum))[4] + c(apply(Titanic,c(2,3,4),sum))[8])
PmujerS
## [1] 0.7435294
# Probabilidad supervivencia niños
PniñoS = c(apply(Titanic,c(3,4),sum))[3] / (c(apply(Titanic,c(3,4),sum))[1] + c(apply(Titanic,c(3,4),sum))[3])
PniñoS
## [1] 0.5229358
# Probabilidad supervivencia hombres
PhombreS = c(apply(Titanic,c(2,3,4),sum))[7] / (c(apply(Titanic,c(2,3,4),sum))[3] + c(apply(Titanic,c(2,3,4),sum))[7])
PhombreS
## [1] 0.2027594
En general, se cumple el código de “mujeres y niños(as) primero”, dado que la probabilidad de supervivencia es superior a la probabilidad de supervivencia de los hombres.
set.seed(0)
sample(apply(Titanic,1,sum),1)
## 2nd
## 285
# Sobrevivientes por sexo y clase
apply(Titanic,c(1,2,4),sum)
## , , Survived = No
##
## Sex
## Class Male Female
## 1st 118 4
## 2nd 154 13
## 3rd 422 106
## Crew 670 3
##
## , , Survived = Yes
##
## Sex
## Class Male Female
## 1st 62 141
## 2nd 25 93
## 3rd 88 90
## Crew 192 20
# Probabilidad de supervivencia para mujeres
Mvivas = c(apply(Titanic,c(1,2,3,4),sum))[30]
Mtotal = Mvivas + c(apply(Titanic,c(1,2,3,4),sum))[14]
PM2clase = Mvivas/Mtotal
PM2clase
## [1] 0.8602151
# Probabilidad de supervivencia para niños
Nvivos = c(apply(Titanic,c(1,3,4),sum))[10]
Ntotal = Nvivos
PN2clase = Nvivos/Ntotal
PN2clase
## [1] 1
# Probabilidad de supervivencia para hombres
Hvivos = c(apply(Titanic,c(1,2,3,4),sum))[26]
Htotal = Hvivos + c(apply(Titanic,c(1,2,3,4),sum))[10]
PH2clase = Hvivos/Htotal
PH2clase
## [1] 0.08333333
Dado que la probabilidad de supervivencia de mujeres y niños es más favorable que la de hombres, se concluye que se cumple el código en la clase seleccionada.