library(gtools)
Una permutación consiste en generar todas las posiciones posibles de elementos en donde esta tiene influye el orden, es decir, puede ver de cuantas formas se pueden agrupar un número determinado de elementos. Una combinación consiste en generar todas las posibles agrupaciones de elementos en donde no se toman en cuenta los grupos repetidos (grupos con los mismos elementos). Un ejemplo es que teniendo la siguientes listas (1, 2, 3) (3, 2, 1), para la permutación estas contarían como 2 distintas, ya que los elementos están ordenados de manera distintas, pero para la combinación cuenta como una sola, ya que son el mismo grupo de números.
combinations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
permutations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
la función de combinations y permutations poseen la misma cantidad de entradas, la principal que es una “n” que es el numero de elementos que se consideran para la permutación, “r” es el largo de la lista en donde se realiza la permutación, Ej: n=3 ; r=1, se obtiene una combinación de 3 (a)(b)(c), “v”= es el vector fuentes, lo que hace es que el numero vaya de 1 hasta n, “set” indica si los duplicados deben eliminarse y por ultimo “repeats.allowed” indica si es con repetición o no.
Entendiendo que hay 2 maneras de poder escribirse la solución, se dejaran ambas, la solución matemática y la solución por parte de una función de RStudio.
14**4
## [1] 38416
nrow(permutations(14, 4, 1:14, TRUE, TRUE))
## [1] 38416
factorial(14)/factorial(14-4)
## [1] 24024
nrow(permutations(14, 4, 1:14, TRUE, FALSE))
## [1] 24024
factorial(3+3-1)/(factorial(3)*(factorial(3-1)))
## [1] 10
nrow(combinations(3, 3, 1:3, TRUE, TRUE))
## [1] 10
factorial(3)/(factorial(3)*factorial(3-3))
## [1] 1
nrow(combinations(3, 3, 1:3, TRUE, FALSE))
## [1] 1
factorial(30)/factorial(30-2)
## [1] 870
nrow(permutations(30, 2, 1:30, TRUE, FALSE))
## [1] 870
factorial(30)/(factorial(2)*factorial(30-2))
## [1] 435
nrow(combinations(30, 2, 1:30, TRUE, FALSE))
## [1] 435
PB = probabilidad de que ocurra B (ejemplo: de todas las personas tengan un título) PA = probabilidad de que ocurra A (ejemplo: de todas las personas, las que sean mujeres) PBA = probabilidad de que ocurra B con respecto de A (ejemplo: de las personas que tengan un título, que sean mujeres)
PAB=function(PA, PB, PBA){
(PBA * PA)/PB
}
Tomando en cuenta a cada uno con su respectivo índice de supervivencia y los siguientes datos
apply(Titanic,c(1, 4),sum)
## Survived
## Class No Yes
## 1st 122 203
## 2nd 167 118
## 3rd 528 178
## Crew 673 212
pasajeros = (499/1316)*100
tripulación = (212/885)*100
pasajeros
## [1] 37.91793
tripulación
## [1] 23.9548
Viendo así que el porcentaje de supervivencia fue mayor para los pasajeros, de igual manera si se tomando en cuenta a toda la gente como caso base, el resultado seria el mismo, en donde los pasajeros tienen mayor porcentaje de supervivencia.
Suponiendo una interpretación de manera que sea, cual la probabilidad de que una mujer sea de la tripulación y que esta sobreviva. Datos:
apply(Titanic,c(2, 1, 4),sum)
## , , Survived = No
##
## Class
## Sex 1st 2nd 3rd Crew
## Male 118 154 422 670
## Female 4 13 106 3
##
## , , Survived = Yes
##
## Class
## Sex 1st 2nd 3rd Crew
## Male 62 25 88 192
## Female 141 93 90 20
se aplicaría la formula desarrollada anteriormente, en donde:
#PA= Probabilidad de sea mujer de la tripulación con respecto a toda la gente
#PB= Probabilidad de que supervivencia con el total de gente
#PBA= probabilidad total de mujeres de la tripulación sobrevivientes con respecto a el total de mujeres de la tripulación
MVT= PAB((23/2201), (711/2201), (20/23))
MVT
## [1] 0.0281294
Suponiendo que la interpretación sea, cual es la probabilidad de elegir un niño que sobreviva y este sea de tercera clase dato:
apply(Titanic,c(3, 1, 4),sum)
## , , Survived = No
##
## Class
## Age 1st 2nd 3rd Crew
## Child 0 0 52 0
## Adult 122 167 476 673
##
## , , Survived = Yes
##
## Class
## Age 1st 2nd 3rd Crew
## Child 6 24 27 0
## Adult 197 94 151 212
# PA= el total de niños de 3ra clase con respecto a toda la gente
# PB = es el total de gente viva con respecto al toda la gente
# PBA = es la cantidad de niños vivos de 3ra clase con respecto al total de niños de 3ra clase
NV3ra= PAB((79/2201), (711/2201), (27/79))
NV3ra
## [1] 0.03797468
analizando los resultados, y ubicándolos en una tabla, en donde sea cantidad de “X” vivos/cantidad total de “X”
niños = (29+28)/(29+28+35+17)
mujeres = (316)/(316+109)
hombres = 338/(1329+338)
niños
## [1] 0.5229358
mujeres
## [1] 0.7435294
hombres
## [1] 0.2027594
En conclusión, se puede confirmar que el código se cumple parcialmente, debido a que no se priorizo a un 48% aprox de los niños, en cambio las mujeres si tuvieron un mejor resultado.
clase = sample(names(apply(Titanic,c(1),sum)),1)
clase
## [1] "1st"
if(clase == "1st"){
if (((5+1)/(5+1)) > (57/(118+57)) & ( 140/(140+4)) > (57/(118+57))){
cat("Cumple con el código")
} else {
cat("no cumple con el código")
}
}
## Cumple con el código
if (clase == "2nd"){
if ((((11+13)/(11+13)) > (14/(154+14)) & ( 80/(80+13)) > (14/(154+14)))){
cat("Cumple con el código")
} else {
cat("no cumple con el código")
}
}
if(clase == "3rd"){
if ((((13+14)/(35+17+13+14)) > (75/(387+75)) & ( 89/(89+76)) > (75/(387+75)))){
cat("Cumple con el código")
} else {
cat("no cumple con el código")
}
}
if(clase == "Crew"){
if ((20/(20+3)) > (192/(192+670))){
cat("Cumple con el código")
} else {
cat("no cumple con el código")
}
}