1.- Instalamos e incluimos la libreria “gtools” de la siguiente forma:
install.packages("gtools")
library(gtools)
Permutacion y combinacion ¿cuales son sus diferencias?
2.- La permutacion corresponde a la organizacion de elementos dependiendo de su orden, mientras que la combinacion es una organizacion en la cual el orden no altera los resultados. Ejemplos:
Permutación: Una carrera de formula 1, donde el orden de llegada importa
Combinación: Ensalada de fruta, donde no importa el orden de como juntamos las frutas
3.- A continuacion una breve explicacion del funcionamiento de combinations y permutations en R
combinations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
permutations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
Parametros
n => Largo del vector de entrada.
r => Largo del vector objetivo.
v => Vector de entrada, por defecto de “1:n”.
set => Indicador lógico que muestra si los duplicados deben eliminarse del vector de entrada “v”. El valor predeterminado es “TRUE”.
repeats.allowed => Indicador lógico que muestra si los vectores construidos pueden incluir valores duplicados. El valor predeterminado es “FALSE”.
4.a.- La cantidad de permutaciones posibles con n = 14, r = 4 con y sin repetición
Sin repeticiones
library(gtools)
vec<- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
res <- permutations(n=14,r=4,v=vec,repeats.allowed=FALSE)
Realiza la siguiente cantidad de permutaciones
## [1] 24024
Con repeticiones
library(gtools)
vec<- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
res <- permutations(n=14,r=4,v=vec,repeats.allowed=TRUE)
Realiza la siguiente cantidad de permutaciones
## [1] 38416
4.b.- Las combinaciones de largo tres con las letras a, b y c con y sin repetición.
Sin repeticiones
library(gtools)
vec<- LETTERS[1:3]
res <- combinations(n=3,r=3,v=vec,repeats.allowed=FALSE)
Realiza la siguiente cantidad de combinaciones
## [1] 1
print(res)
## [,1] [,2] [,3]
## [1,] "A" "B" "C"
Con repeticiones
library(gtools)
vec<- LETTERS[1:3]
res <- combinations(n=3,r=3,v=vec,repeats.allowed=TRUE)
Realiza la siguiente cantidad de combinaciones
## [1] 10
print(res)
## [,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"
4.c.- La cantidad de permutaciones y combinaciones con n = 30 y r = 2 sin repetición.
Permutaciones
library(gtools)
vec<- seq(1:30)
res <- permutations(n=30,r=2,v=vec,repeats.allowed=FALSE)
Realiza la siguiente cantidad de permutaciones
## [1] 870
Combinaciones
library(gtools)
vec<- seq(1:30)
res <- combinations(n=30,r=2,v=vec,repeats.allowed=FALSE)
Realiza la siguiente cantidad de combinaciones
## [1] 435
5.a.- Cree una función que calcule la probabilidad de A dado B, vea la Ecuación 1.
Ecuación 1
Respuesta
tBayes=function(A,B,ByA) {
if(B != 0){
resultado = (A*ByA)/B
}else{
resultado = 0
}
return(resultado)
}
5.b.- Responda las siguientes preguntas:
5.b.1.- ¿Cuál es el porcentaje de supervivencia de los pasajeros y de la tripulación?¿Cuál es mayor?
pSobrevivientes = sum(apply(Titanic, c(1,4),sum)[5:7])
pTotal = sum(apply(Titanic, 1,sum)[1:3])
pPorcentaje = (pSobrevivientes/pTotal)*100
tSobrevivientes = sum(apply(Titanic, c(1,4),sum)[8])
tTotal = sum(apply(Titanic, 1,sum)[4])
tPorcentaje = (tSobrevivientes/tTotal)*100
porcentaje = c(pPorcentaje,tPorcentaje)
print(data.frame("PasajerosSobrevive"=pPorcentaje,"TripulacionSobrevive"=tPorcentaje))
## PasajerosSobrevive TripulacionSobrevive
## 1 37.91793 23.9548
Respuesta: El porcentaje de Pasajeros que sobrevivieron es mayor
5.b.2.- ¿Cuál es la probabilidad de que una mujer de la tripulación sobreviva?
totalPasajeros = sum(apply(Titanic, 4,sum))
totalsobreviven = sum(apply(Titanic, 4,sum)[2])
probSobrevivir = totalsobreviven/totalPasajeros
tripMujeres = sum(apply(Titanic, c(1,2),sum)[8])
tripTotal = sum(apply(Titanic, 1,sum)[4])
probTripMujer = tripMujeres/tripTotal
tripMujerSobrevive = sum(apply(Titanic, c(1,2,4),sum)[16])
tripSobrevive = tripMujerSobrevive/totalsobreviven
cat("Probabilidad de sobrevivir de una mujer de la tripulación: ", tBayes(probSobrevivir, probTripMujer, tripSobrevive))
## Probabilidad de sobrevivir de una mujer de la tripulación: 0.3496434
5.b.3.- ¿Cuál es la probabilidad de que un(a) menor de edad sobreviva en tercera clase?
totalPasajeros = sum(apply(Titanic, 4,sum))
totalsobreviven = sum(apply(Titanic, 4,sum)[2])
probSobrevivir = totalsobreviven/totalPasajeros
totalClase3 = sum(apply(Titanic, 1,sum)[3])
niñosClase3 = sum(apply(Titanic, c(1,3),sum)[3])
probNiñoClase3 = niñosClase3/totalClase3
niñosClase3Sobreviven = sum(apply(Titanic, c(1,3,4),sum)[11])
probSobrevivirNiñoClase3 = niñosClase3Sobreviven/totalsobreviven
cat("Probabilidad de sobrevivir de un niño de 3ra Clase: ", tBayes(probSobrevivir, probNiñoClase3, probSobrevivirNiñoClase3))
## Probabilidad de sobrevivir de un niño de 3ra Clase: 0.109628
5.b.4.- ¿En general se cumple el código “mujeres y niños(as) primero”?
sNiños = sum(apply(Titanic, c(3,4),sum)[3])
tNiños = sum(apply(Titanic, c(2,3),sum)[1:2])
pNiñosSobreviven = sNiños/tNiños
sMujeres = sum(apply(Titanic, c(2,3,4),sum)[8])
tMujeres = sum(apply(Titanic, c(2,3),sum)[4])
pMujeresSobreviven = sMujeres/tMujeres
sHombres = sum(apply(Titanic, c(2,3,4),sum)[7])
tHombres = sum(apply(Titanic, c(2,3),sum)[3])
pHombresSobreviven = sHombres/tHombres
porcentaje = c(pNiñosSobreviven,pMujeresSobreviven,pHombresSobreviven)
print(data.frame("NiñosSobrevivientes"=pNiñosSobreviven,"MujeresSobrevivientes"=pMujeresSobreviven,"HombresSobrevivientes"=pHombresSobreviven))
## NiñosSobrevivientes MujeresSobrevivientes HombresSobrevivientes
## 1 0.5229358 0.7435294 0.2027594
Respuesta: En general se respeta el código “mujeres y niños primero”
5.b.5.- Seleccione una clase de forma aleatoria, puede utilizar la función sample. ¿En la clase seleccionada se cumple el código “mujeres y niños(as) primero”?
clases = apply(Titanic, 1, sum)
set.seed(17047369)
sample(clases, 1)
## 1st
## 325
Con mi identificador personal genero una semilla que entrega como resultado primera clase
sNiños = sum(apply(Titanic, c(1,3,4), sum)[9])
tNiños = sum(apply(Titanic, c(1,2,3), sum)[1])+sum(apply(Titanic, c(1,2,3), sum)[5])
pNiñosSobreviven = sNiños/tNiños
sMujeres = sum(apply(Titanic, c(1,2,3,4), sum)[29])
tMujeres = sum(apply(Titanic, c(1,2,3), sum)[13])
pMujeresSobreviven = sMujeres/tMujeres
sHombres = sum(apply(Titanic, c(1,2,3,4), sum)[25])
tHombres = sum(apply(Titanic, c(1,2,3), sum)[9])
pHombresSobreviven = sHombres/tHombres
porcentaje = c(pNiñosSobreviven,pMujeresSobreviven,pHombresSobreviven)
print(data.frame("NiñosSobrevivientes"=pNiñosSobreviven,"MujeresSobrevivientes"=pMujeresSobreviven,"HombresSobrevivientes"=pHombresSobreviven))
## NiñosSobrevivientes MujeresSobrevivientes HombresSobrevivientes
## 1 1 0.9722222 0.3257143
Respuesta: En primera clase se respeto el código de mujeres y niños primero