Enunciados

La diferencia entre permutación y combinación es que en la permutación importa el orden y se refiere a la organización de los objetos, en cambio, para la combinación el orden de los elementos no es importante. También cabe destacar que múltiples permutaciones pueden ser derivadas de una sola combinación, pero de una permutación sólo una combinación puede ser derivada.

La función “combinations” enumera las posibles combinaciones de un tamaño en específico de los elementos entregados en un vector.

La función “permutations” enumera las posibles

Ambas funciones requieren los mismos parámetros de entrada, los cuales son: “n” que corresponde al tamaño del vector fuente, “r” que corresponde al tamaño del vector objetivo, “v” que corresponde al vector fuente que viene predeterminado como 1:n, “set” que es el indicador lógico que indica si los duplicados deben eliminarse del vector de fuente o de orígen y tiene un valor predeterminado que es “TRUE”, finalmente tenemos “repeats.allowed” que es un indicador lógico que indica si los vectores pueden incluir valores duplicados y tiene un valor predeterminado el cual es “FALSE”, estas últimas 3 son

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

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

  1. La cantidad de permutaciones posibles con n = 14 y r = 4 con y sin repetición.
library(gtools)
## Con repetición
nrow(permutations(14,4,repeats.allowed = TRUE))
## [1] 38416
## Sin repetición
nrow(permutations(14,4,repeats.allowed = FALSE))
## [1] 24024
  1. Las combinaciones de largo tres con las letras a, b y c con y sin repetición.
## Sin repetición
combinations(3,3,letters[1:3])
##      [,1] [,2] [,3]
## [1,] "a"  "b"  "c"
## Con repetición
combinations(3,3,letters[1:3], 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"
  1. La cantidad de permutaciones y combinaciones con n = 30 y r = 2 sin repetición.
## Combinaciones
nrow(combinations(30,2,repeats.allowed = FALSE))
## [1] 435
## Permutaciones
nrow(permutations(30,2,repeats.allowed = FALSE))
## [1] 870
  1. Cree una función que calcule la probabilidad de A dado B, vea la Ecuación 1.
probADadoB <- function(BA,A,B){
  return(BA*A/B)
}
  1. Responda las siguientes preguntas:
  1. ¿Cuál es el porcentaje de supervivencia de los pasajeros y de la tripulación?¿Cuál es mayor?
## Se guardan en una "variable" la información de los supervivientes
survived <- apply(Titanic,c(1,4),sum)
survived
##       Survived
## Class   No Yes
##   1st  122 203
##   2nd  167 118
##   3rd  528 178
##   Crew 673 212
## Total de personas de la tripulación que sobrevivieron y no sobrevivieron
allCrew <- survived[4] + survived[8]
allCrew
## [1] 885
## Porcentaje de pasajeros que sobrevivieron
passengersSurvivers <- (survived[5] + survived[6] + survived[7])/(sum(survived)-allCrew)*100
passengersSurvivers
## [1] 37.91793
## Porcentaje de personas de la tripulación que sobrevivieron
crewSurvivers <- ((survived[8])/allCrew)*100
crewSurvivers
## [1] 23.9548
  1. ¿Cuál es la probabilidad de que una mujer de la tripulación sobreviva?

Aquí podríamos tener dos enfoques, uno en el cual calculamos la probabilidad de que una mujer de la tripulación sobrevida dentro del total de mujeres de la tripulación y la otra es que una mujer sobreviva dentro del total de la tripúlación.

## Enfoque 1
## Sexo de los supervivientes // Creo que no sirve xd
sex <- apply(Titanic,c(2),sum)
sex
##   Male Female 
##   1731    470
## Total de muejeres de la tripulación, cabe destacar que se descartó sacar datos de "child",
## ya que no debiesen haber niños ni niñas parte de la tripulación (y no las hay) 
womenCrew <- Titanic[16] + Titanic[32]
womenCrew
## [1] 23
## Entonces la probabilidad es la cantidad de mujeres que sobrevivieron entre el total de mujeres de la tripulación
probability1 <- Titanic[32] / womenCrew
probability1
## [1] 0.8695652
## Enfoque 2

## Total de mujeres sobrevivientes entre el total de personas de la tripulación
probability2 <- Titanic[32] / allCrew
probability2
## [1] 0.02259887
  1. ¿Cuál es la probabilidad de que un(a) menor de edad sobreviva en tercera clase?

Nuevamente se tienen dos enfoques, el primero en el cual se ve la cantidad de niños/as de 3ra clase que sobrevivieron sobre la cantidad de niños de 3ra clase, la segunda es la cantidad de niños/as de 3ra clase que sobrevivieron sobre la cantidad de personas de tercera clase

## Enfoque 1
## Niños/as que sobrevivieron en 3ra clase
childSurvivers3rd <- Titanic[19] + Titanic[23]
childSurvivers3rd
## [1] 27
## Total de niños/as de 3ra clase
allChild <- Titanic[3] + Titanic[7] + Titanic[19] + Titanic[23]
allChild
## [1] 79
## Total de niños/as sobrevivientes de 3ra clase entre la cantidad de niños/as en 3ra clase
probability3 <- childSurvivers3rd/allChild
probability3
## [1] 0.3417722
## Enfoque 2
## Total de personas de 3ra clase que sobrevivieron y no sobrevivieron
all3rdClass <- survived[3] + survived[7]
all3rdClass
## [1] 706
## Total de niños/as sobrevivientes de 3ra clase entre la cantidad de personas de 3ra clase
probability4 <- childSurvivers3rd / all3rdClass
probability4
## [1] 0.03824363
  1. ¿En general se cumple el código “mujeres y niños(as) primero”?

Por lo que podemos apreciar en los datos, se cumple en buena parte, pero también podemos notar que pesó la clase en la que viajaba el/la pasajero/a, por ejemplo, todos/as los/as niños/as de primera y segunda clase sobrevivieron, no así los/as de tercera clase, y pasa algo similar con los/as adultos/as, donde se ven numeros muy bajos de fallecidos en las primeras dos clases y altos en la tercera. También podríamos pensar que bajo el código “mujeres y niños/as primero” no deberían haber muerto mujeres ni niños/as independiente de la clase en la que fueran y por lo mismo el números de hombres sobrevivientes debiese ser menor.

  1. 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
class <- c("1st","2nd","3rd","Crew")

## Se selecciona una clase aleatoria
selected <- sample(class, 1)

## Sobrevivientes por edad y clase
surviversAgeClass <- apply(Titanic,c(1,3,4),sum)

## Sobrevivientes por sexo y clase
surviversSexClass <- apply(Titanic,c(1,2,4),sum)
                 

if(selected == "1st"){
  if(surviversAgeClass[9]/(surviversAgeClass[1]+surviversAgeClass[9]) > surviversAgeClass[13]/(surviversAgeClass[5]+surviversAgeClass[13])){
    if(surviversSexClass[13]/(surviversSexClass[13]+surviversSexClass[5]) > surviversSexClass[9]/(surviversSexClass[1]+surviversSexClass[9])) {
      string <- "La clase 1 cumple con el código de 'mujeres y niños primero'"
    } else{string <- "La clase 1 no cumple con el código de 'mujeres y niños primero'"}
  } else{string <- "La clase 1 no cumple con el código de 'mujeres y niños primero'"}
}

if(selected == "2nd"){
  if((surviversAgeClass[10])/(surviversAgeClass[2]+surviversAgeClass[10]) > surviversAgeClass[14]/(surviversAgeClass[6]+surviversAgeClass[14])){
    if(surviversSexClass[14]/(surviversSexClass[14]+titan_24[6]) > surviversSexClass[10]/(surviversSexClass[2]+surviversSexClass[10])) {
      string <- "La clase 2 cumple con el código de 'mujeres y niños primero'"
    } else{string <- "La clase 2 no cumple con el código de 'mujeres y niños primero'"}
  } else{string <- "La clase 2 no cumple con el código de 'mujeres y niños primero'"}
}

if(selected == "3rd"){
  if((surviversAgeClass[11])/(surviversAgeClass[3]+surviversAgeClass[11]) > surviversAgeClass[15]/(surviversAgeClass[7]+surviversAgeClass[15])){
    if(surviversSexClass[15]/(surviversSexClass[15]+surviversSexClass[7]) > surviversSexClass[11]/(surviversSexClass[3]+surviversSexClass[11])) {
      string <- "La clase 3 cumple con el código de 'mujeres y niños primero'"
    } else{string <- "La clase 3 no cumple con el código de 'mujeres y niños primero'"}
  } else{string <- "La clase 3 no cumple con el código de 'mujeres y niños primero'"}
}

if(selected == "Crew"){
  if(surviversSexClass[16]/(surviversSexClass[16]+surviversSexClass[8]) > surviversSexClass[12]/(surviversSexClass[4]+surviversSexClass[12])) {
    string <- "La tripulación cumple con el código de 'mujeres y niños primero'"
  } else {string <- "La tripulación no cumple con el código de 'mujeres y niños primero'"}
}