Luego de la instalación del paquete “gtools”, a través de la sentencia install.package(“gtools”), se ejecuta la siguiente instrucción para habilitarla:
library("gtools")
Los resultados de los eventos se pueden ordenar o combinar de dos maneras: las combinaciones y las permutaciones. Hay que hacer notar que se trata de eventos dependientes, es decir, cuando los eventos afectan a otros (por ejemplo, al elegir objetos de un grupo los cuales no son devueltos). Las combinaciones son agrupaciones donde el contenido importa, pero no el orden. En las permutaciones importa el orden de los objetos.
Fórmula para la combinatoria sin repetición: \[C\binom{n}{r} = \frac{n!}{r!(n - r)!}\] Fórmula para la combinatoria con repetición: \[CR\binom{n}{r}=\binom{r + n -1}{n}=\frac{(r + n -1)!}{n!(r - 1)!}\] Fórmula para las permutaciones sin repetición: \[P\binom{n}{r}=\frac{n!}{(n - r)!}\] Fórmula para las permutaciones con repetición: \[P\binom{n}{a, b, c}=\frac{n!}{a!b!c!}\] donde n = total de elementos y r = elementos seleccionados
Usando la funcion help se obtiene la ayuda para las funciones combinations y permutations
combinations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
permutations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
Donde n es el total del conjunto; r, es el tamano del objetivo; v (opcional), es el vector de origen, por defecto esta en 1:n; repeat.allowed para si es o no con repetición.
Cantidad de permutaciones posibles con y sin repeticion
Pcon = nrow(permutations(14, 4, repeats.allowed = TRUE))
Pcon
## [1] 38416
Psin = nrow(permutations(14, 4, repeats.allowed = FALSE))
Psin
## [1] 24024
Permutación con repeticion Pcon = 38416; sin repetición Psin = 24024 permutaciones repectivamente.
combinations(3, 3, letters[1:3], repeats.allowed = 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, letters[1:3], repeats.allowed = FALSE)
## [,1] [,2] [,3]
## [1,] "a" "b" "c"
Como se ve, con repetición se tienen 10 combinaciones; en el otro caso, sin repetición, se obtiene solo 1 combinación.
Permutaciones y combinaciones para n = 30, r= 2, sin repetición
P = nrow(permutations(30, 2, repeats.allowed = FALSE))
P
## [1] 870
C = nrow(combinations(30, 2, repeats.allowed = FALSE))
C
## [1] 435
Utilizando datos Titanic.
Función de probabilidad:
\[P(A|B) = \frac{P(B|A)P(A)}{P(B)}\]
PAB = function(Pba, Pa, Pb){
return((Pba * Pa)/Pb)
}
¿Cuál es el porcentaje de supervivencia de los pasajeros y de la tripulación? ¿Cuál es el mayor?
a = apply(Titanic, c(1, 4), sum)
b = sum(a)
pasajeros = (sum(a[5:7]/b))
tripulacion = (sum(a[8]/b))
(pasajeros * 100)
## [1] 22.67151
(tripulacion * 100)
## [1] 9.631985
como se ve, el porcentaje de supervivencia de los pasajeros es de 22.67%, frente a un 9.63 de la tripulación. Por lo tanto, los pasajeros tienen mayor porcentaje de supervivencia.
¿Cuál es la probalidad de que una mujer de la tripulación sobreviva?
mujeres = apply(Titanic, c(1, 2, 4), sum)
mujeresTripulacion = mujeres[16] + mujeres[8]
mujer = (mujeres[16]/mujeresTripulacion)
(mujer * 100)
## [1] 86.95652
¿Probabilidad de que un menor de edad sobreviva en tercera clase?
datos = apply(Titanic, c(1,3,4), sum)
ninos = datos[3] + datos[11]
ninosSobre = (datos[11] / ninos)
(ninosSobre * 100)
## [1] 34.17722
¿Se cumple el código “mujeres y ninos primero”? De los datos obtenidos se ve que se cumple para las mujeres, con más del 60%. En cuanto a los menores, depende de a qué clase pertenezca.
data("Titanic")
force(Titanic)
## , , Age = Child, Survived = No
##
## Sex
## Class Male Female
## 1st 0 0
## 2nd 0 0
## 3rd 35 17
## Crew 0 0
##
## , , Age = Adult, Survived = No
##
## Sex
## Class Male Female
## 1st 118 4
## 2nd 154 13
## 3rd 387 89
## Crew 670 3
##
## , , Age = Child, Survived = Yes
##
## Sex
## Class Male Female
## 1st 5 1
## 2nd 11 13
## 3rd 13 14
## Crew 0 0
##
## , , Age = Adult, Survived = Yes
##
## Sex
## Class Male Female
## 1st 57 140
## 2nd 14 80
## 3rd 75 76
## Crew 192 20
sample(apply(Titanic, 1, sum), 1)
## 1st
## 325