2.Explique brevemente la diferencia entre permutación y combinación.

Una permutación es una agrupacion de elementos en donde el orden si importa, por lo que, teniendo un conjunto de elementos {a,b,c}, puede existir una agrupación a-b-c y c-b-a entre las permutaciones del conjunto.

Una combinacion, por el contrario, es una agrupación de elementos en donde el orden no importa, sino que solo importa el contenido de esta agrupacion. Utilizando el ejemplo anterior, {a,b,c}, no existira una combinacion a-b-c y c-b-a al mismo tiempo, ya que esta representa una combinacion de 3 elementos donde existe una a, una b y una c.

3.Explique el funcionamiento de las funciones combinations y permutations en R.

La funcion combinations en R devuelve las combinaciones posibles de un vector que posea los elementos a utilizar, junto al tamaño de las muestras que se poseeran. Al utilizar la funcion, se podran entregar los siguientes parametros:

combinations(n,r,v=1:n,set=TRUE,repeats.allowed=FALSE)

Donde n corresponde al largo del vector donde se encuentran los datos de entrada, r el tamaño de los vectores de salida, v corresponde al vector, por defecto son valores de 1 hasta n, y repeats.allowed es un valor booleano que permite o no la repeticion de elementos en la muestra.

La función permutations funciona de manera igual en sus entradas, pero la salida de esta funcion difiere en las muestras que se devolveran.

4.Calcule

La cantidad de permutaciones posibles con n=14 y r=4 con y sin repetición:
#sin repetición
sin_repeticion <- nrow(permutations(14,4))
sin_repeticion
## [1] 24024
#con repetición
con_repeticion <- nrow(permutations(14,4,repeats=TRUE))
con_repeticion
## [1] 38416
Las combinaciones de largo tres con las letras a, b y c con y sin repetición:
#sin repetición
sin_repeticion <- combinations(3,3,letters[1:3])
sin_repeticion
##      [,1] [,2] [,3]
## [1,] "a"  "b"  "c"
#con repetición
con_repeticion <- combinations(3,3,letters[1:3],repeats=TRUE)
con_repeticion
##       [,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"
La cantidad de permutaciones y combinaciones con n = 30 y r = 2 sin repetición.
#### Permutaciones:

P_sin_rep <- nrow(permutations(30,2))
P_sin_rep
## [1] 870
#### Combinaciones:

C_sin_rep <- nrow(combinations(30,2))
C_sin_rep
## [1] 435

5. Utilizando el conjunto de datos Titanic:

Cree una función que calcule la probabilidad de A dado B

AdadoB <- function(A,B,BA){
  return(BA*A/B)
}

Responda las siguientes preguntas:

¿Cuál es el porcentaje de supervivencia de los pasajeros y de la tripulación?¿Cuál es mayor?
titan <- apply(Titanic,c(1,4),sum)
titan
##       Survived
## Class   No Yes
##   1st  122 203
##   2nd  167 118
##   3rd  528 178
##   Crew 673 212
totalcrew <- titan[4]+titan[8]
#Porcentaje de pasajeros que sobrevivieron:
passengers <- (titan[5]+titan[6]+titan[7])/(sum(titan)-totalcrew)*100
passengers
## [1] 37.91793
#Porcentaje de tripulacion que sobrevivio:
crew <- (titan[8])/totalcrew*100
crew
## [1] 23.9548
¿Cuál es la probabilidad de que una mujer de la tripulación sobreviva?
titan_24 <- apply(Titanic,c(1,2,4),sum)

femaleCrew <- titan_24[8] + titan_24[16]
mujer_crew <- titan_24[16]/femaleCrew
mujer_crew
## [1] 0.8695652
¿Cuál es la probabilidad de que un(a) menor de edad sobreviva en tercera clase?
AgeClassSurv <- apply(Titanic,c(1,3,4),sum)

thirdClassKids <- AgeClassSurv[3]+AgeClassSurv[11]

surv3ClassKids <- AgeClassSurv[11]/thirdClassKids
surv3ClassKids
## [1] 0.3417722
¿En general se cumple el código “mujeres y niños(as) primero”?

No se cumple para todas las clases, ya que los niños de 3ra clase murio sobre el 60%.

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”?
set.seed(9)

clase <- names(sample(apply(Titanic,c(1),sum)))[1]

#separacion por casos

if(clase == "1st"){
  if((AgeClassSurv[9])/(AgeClassSurv[1]+AgeClassSurv[9]) > AgeClassSurv[13]/(AgeClassSurv[5]+AgeClassSurv[13])){
    if(titan_24[13]/(titan_24[13]+titan_24[5]) > titan_24[9]/(titan_24[1]+titan_24[9])) {
      string <- "Primera clase cumple con el codigo"
    } else{string <- "Primera clase no cumple con el codigo"}
  } else{string <- "Primera clase no cumple con el codigo"}
}

if(clase == "2nd"){
  if((AgeClassSurv[10])/(AgeClassSurv[2]+AgeClassSurv[10]) > AgeClassSurv[14]/(AgeClassSurv[6]+AgeClassSurv[14])){
    if(titan_24[14]/(titan_24[14]+titan_24[6]) > titan_24[10]/(titan_24[2]+titan_24[10])) {
      string <- "Segunda clase cumple con el codigo"
    } else{string <- "Segunda clase no cumple con el codigo"}
  } else{string <- "Segunda clase no cumple con el codigo"}
}

if(clase == "3rd"){
  if((AgeClassSurv[11])/(AgeClassSurv[3]+AgeClassSurv[11]) > AgeClassSurv[15]/(AgeClassSurv[7]+AgeClassSurv[15])){
    if(titan_24[15]/(titan_24[15]+titan_24[7]) > titan_24[11]/(titan_24[3]+titan_24[11])) {
      string <- "Tercera clase cumple con el codigo"
    } else{string <- "Tercera clase no cumple con el codigo"}
  } else{string <- "Tercera clase no cumple con el codigo"}
}

if(clase == "Crew"){
  if(titan_24[16]/(titan_24[16]+titan_24[8]) > titan_24[12]/(titan_24[4]+titan_24[12])) {
    string <- "La tripulacion cumple con el codigo"
  } else {string <- "La tripulacion no cumple con el codigo"}
}
string
## [1] "Tercera clase cumple con el codigo"