library(gtools)
Las permutaciones corresponden a diferentes agrupaciones de elementos donde el orden sí Importa, por otro lado, las combinaciones tambien agrupan diversos elementos, sin embargo, en esta no importa el orden.
combinations enumera todas las posibles combinaciones de los elementos de un vector (v) de tamaño n, las cuales son determinadas por el número de elementos que se toman de este a la vez (r). Por otro lado, permutations enumera todas las posibles permutaciones.
combinations(n, r, v=1:n, set = TRUE, repeats.allowed = FALSE)
permutations(n, r, v = 1:n, set = TRUE, repeats.allowed = FALSE)
Donde set y repeats allowed queda determinado por:
set: Elimina los elementos repetidos del vector. Es TRUE por defecto.
repeats.allowed: Indica si los elementos se pueden repetir (TRUE). Es FALSE por defecto.
nrow(permutations(14, 4, v = 1:14, repeats.allowed = TRUE))
## [1] 38416
nrow(permutations(14, 4, v = 1:14, repeats.allowed = FALSE))
## [1] 24024
vector = c("a", "b", "c")
combinations(3, 3, vector, 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"
vector = c("a", "b", "c")
combinations(3, 3, vector, repeats.allowed = FALSE)
## [,1] [,2] [,3]
## [1,] "a" "b" "c"
nrow(permutations(30, 2, v = 1:30, repeats.allowed = FALSE))
## [1] 870
nrow(combinations(30, 2, v = 1:30, repeats.allowed = FALSE))
## [1] 435
Se carga el conjunto de datos del dataset del titanic
data("Titanic")
Ecuación 1: P(A|B) = (P(B|A)P(A))/P(B)
bayes = function(A, B, BA){
return (BA*A/B)
}
surv_pass = sum(apply(Titanic, c(1,4),sum)[5:7])
total_passengers = sum(apply(Titanic, 1,sum)[1:3])
porcentaje_pass = (surv_pass/total_passengers)*100
surv_crew = (apply(Titanic, c(1,4),sum)[8])
total_crew = apply(Titanic, 1,sum)[4]
porcentaje_crew = (surv_crew/total_crew)*100
paste("El total de sobrevivientes correspondiente a los pasajeros, corresponde a", porcentaje_pass,"%")
## [1] "El total de sobrevivientes correspondiente a los pasajeros, corresponde a 37.9179331306991 %"
paste("El total de sobrevivientes correspondiente a la tripulación, corresponde a", porcentaje_crew, "%")
## [1] "El total de sobrevivientes correspondiente a la tripulación, corresponde a 23.954802259887 %"
De lo anterior, se da cuenta que el porcentaje de los pasajeros es mayor a la de los tripulantes ##### 2) ¿Cuál es la probabilidad de que una mujer de la tripulación sobreviva?
total_passengers = sum(apply(Titanic, 4,sum))
women_crew = sum(apply(Titanic, c(1,2),sum)[8])
total_crew = sum(apply(Titanic, 1,sum)[4])
prob_mCrew = women_crew/total_crew
total_survivors = sum(apply(Titanic, 4,sum)[2])
prob_surv = total_survivors/total_passengers
women_crew_surv = sum(apply(Titanic, c(1,2,4),sum)[16])
crew_surv = women_crew_surv/total_survivors
paste("La probabilidad de que una mujer de la tripulación sobreviva es de ", bayes(prob_surv, prob_mCrew, crew_surv))
## [1] "La probabilidad de que una mujer de la tripulación sobreviva es de 0.349643442703909"
total_passengers = sum(apply(Titanic, 4,sum))
total_3clase = sum(apply(Titanic, 1,sum)[3])
children_3clase = sum(apply(Titanic, c(1,3),sum)[3])
prob_children_3 = children_3clase/total_3clase
total_survivors = sum(apply(Titanic, 4,sum)[2])
prob_surv = total_survivors/total_passengers
children_3_surv = sum(apply(Titanic, c(1,3,4),sum)[11])
prob_chil_3_surv = children_3_surv/total_survivors
paste("La probabilidad de que un(a) menor de edad sobreviva en tercera clase es de", bayes(prob_surv,prob_children_3, prob_chil_3_surv))
## [1] "La probabilidad de que un(a) menor de edad sobreviva en tercera clase es de 0.109627959673106"
total_women = sum(apply(Titanic, c(2,3),sum)[4])
surv_women = sum(apply(Titanic, c(2,3,4),sum)[8])
razon_women = surv_women/total_women
surv_children = sum(apply(Titanic, c(3,4),sum)[3])
total_children = sum(apply(Titanic, c(2,3),sum)[1:2])
razon_children = surv_children/total_children
surv_men = sum(apply(Titanic, c(2,3,4),sum)[7])
total_men = sum(apply(Titanic, c(2,3),sum)[3])
razon_men = surv_men/total_men
paste("La razón entre mujeres sobrevivientes y el total de mujeres es de:", razon_women)
## [1] "La razón entre mujeres sobrevivientes y el total de mujeres es de: 0.743529411764706"
paste("La razón entre niños(as) sobrevivientes y el total de niños(as) es de:", razon_children)
## [1] "La razón entre niños(as) sobrevivientes y el total de niños(as) es de: 0.522935779816514"
paste("La razón entre hombres sobrevivientes y el total de hombres es de:", razon_men)
## [1] "La razón entre hombres sobrevivientes y el total de hombres es de: 0.202759448110378"
Al aplicar razones, se da cuenta que el valor tanto de mujeres y de niños es mayor al de los hombres sobrevivientes, por lo tanto, se concluye que se cumple el código de “mujeres y niños(as) primero”.
clases = apply(Titanic, 1, sum)
set.seed(1)
sample(clases, 1)
## 1st
## 325
total_women_1 = sum(apply(Titanic, c(1,2,3), sum)[13])
surv_women_1 = sum(apply(Titanic, c(1,2,3,4), sum)[29])
razon_women = surv_women_1/total_women_1
total_men_1 = sum(apply(Titanic, c(1,2,3), sum)[9])
surv_men_1 = sum(apply(Titanic, c(1,2,3,4), sum)[25])
razon_men = surv_men_1/total_men_1
total_children_1 = sum(apply(Titanic, c(1,2,3), sum)[1])+sum(apply(Titanic, c(1,2,3), sum)[5])
surv_children_1 = sum(apply(Titanic, c(1,2,3,4), sum)[17]) +sum(apply(Titanic, c(1,2,3,4), sum)[21])
razon_children = surv_children_1/total_children_1
paste("La razón entre mujeres sobrevivientes y el total de mujeres es de:", razon_women)
## [1] "La razón entre mujeres sobrevivientes y el total de mujeres es de: 0.972222222222222"
paste("La razón entre niños(as) sobrevivientes y el total de niños(as) es de:", razon_children)
## [1] "La razón entre niños(as) sobrevivientes y el total de niños(as) es de: 1"
paste("La razón entre hombres sobrevivientes y el total de hombres es de:", razon_men)
## [1] "La razón entre hombres sobrevivientes y el total de hombres es de: 0.325714285714286"
De lo anterior, se da cuenta que para la 1ra clase, se cumple el código de “mujeres y niños(as) primero, ya que tanto la razón de mujeres de primera clase que sobreviven y las de dicha clase que no, como la razón de lo niños de primera clase, es mayor a la de los hombres.