A continuación se encuentran las respuestas y su código correspondiente a los desafíos presentados en la segunda sesión de Ejercicio del Ramo de Estadística Computacional.
1. Instale el paquete “gtools” con la sentencia: install.packages(′gtools′), incluya la librería “gtools” (library(gtools)).
(library('gtools'))
## [1] "gtools" "stats" "graphics" "grDevices" "utils" "datasets"
## [7] "methods" "base"
2. Explique brevemente la diferencia entre permutación y combinación.
Si bien tanto permutación como combinación permiten conocer el total de muestras en un conjunto y cómo estas se agrupan dependiendo del tamaño de la muestra, la diferencia yace en que la permutación el orden de las muestras sí importa, mientras que en la combinación no.
Como ejemplo, se intenta calcular el total de muestras probables de tamaño 3 en un conjunto de 3 elementos (‘a’, ‘b’, ‘c’). Si para efectos del enunciado, el conjunto {‘a’, ‘b’, ‘c’} es distinto de {‘b’, ‘a’, ‘c’}, estamos hablando de una permutación, ya que el orden de los elementos es relevante. Si estos conjuntos fuesen considerados iguales, se trata de combinación.
3. Busque en la ayuda de R las funciones combinations y permutations y explique brevemente cómo funcionan.
help(permutations)
help(combinations)
Las funciones permutations y combinations permiten calcular permutación y combinación respectivamente, sobre un conjunto y un tamaño dado para la muestra. Los parámetros de ambas funciones son:
combinations(n, r, v = 1:n, set = TRUE, repeats = FALSE)
permutations(n, r, v = 1:n, set = TRUE, repeats = FALSE)
Donde n corresponde al conjunto de posibilidades , r al tamaño de la muestra deseada, v a la selección de muestras dentro del cojunto n, set como TRUE o FALSE para permitir o impedir valores duplicados en la muestra, y repeats como TRUE o FALSE para permitir o impedir que valores se repitan dentro de las muestras.
4. Calcule:
a) La cantidad de permutaciones posibles con n = 14 y r = 4 con y sin repetición
#Sin repetición
permutations(14, 4, 1:14)
nrow(permutations(14, 4, 1:14))
## [1] 24024
#Con repetición
permutations(14, 4, 1:14, repeats=TRUE)
nrow(permutations(14, 4, 1:14, repeats=TRUE))
## [1] 38416
b) Las combinaciones de largo tres con las letras a, b y c con y sin repetición
#Sin repetición
combinations(3, 3, c('a', 'b', 'c'))
#Con repetición
combinations(3, 3, c('a', 'b', 'c'), repeats=TRUE)
#Sin repetición
nrow(combinations(3, 3, c('a', 'b', 'c')))
## [1] 1
#Con repetición
nrow(combinations(3, 3, c('a', 'b', 'c'), repeats=TRUE))
## [1] 10
c) La cantidad de permutaciones y combinaciones con n = 30 y r = 2 sin repetición
permutations(30, 2, 1:30)
combinations(30, 2, 1:30)
nrow(permutations(30, 2, 1:30))
## [1] 870
nrow(combinations(30, 2, 1:30))
## [1] 435
5. Utilizando el conjunto de datos Titanic:
data(Titanic)
a) Cree una función que calcule la probabilidad de A dado B, vea la Ecuación 1 \[ P(A|B) = \frac{P(B|A)P(A)}{P(B)} \]
prob_a_b=function(prob_b_a, prob_a, prob_b) {
return(prob_b_a * prob_a)/prob_b
}
b. Responda las siguientes preguntas: Para los siguientes desarrollos, se considera cada probabilidad pedida con respecto al total de personas a bordo del Titanic.
#Vector con los datos de pasajeros y tripulación, ordenados por supervivencia.
vect_titanic1 = c(apply(Titanic, c(1, 4), sum))
# Total de pasajeros y tripulación a bordo del Titanic
total = sum(c(apply(Titanic, c(1, 4), sum)))
total
## [1] 2201
#Porcentaje de supervivencia de los pasajeros
p_pasajeros = sum(vect_titanic1[4:6])/total
round(p_pasajeros, 5)*100
## [1] 45.161
#Porcentaje de supervivencia de la tripulación
p_tripulacion = vect_titanic1[7]/total
round(p_tripulacion, 5)*100
## [1] 8.087
#Vector con los datos de la tripulación, ordenados por sexo y supervivencia.
vect_titanic2 = c(apply(Titanic, c(1, 2, 4), sum))
#Total de la tripulación
total_t = sum(vect_titanic2[c(4, 8, 12, 16)])
total_t
## [1] 885
#Probabilidad de supervivencia de mujeres de la tripulación
p_muj = vect_titanic2[16]/total_t
round(p_muj, 3)
## [1] 0.023
#Vector con los datos de las y los pasajeros ordenados por edad y supervivencia.
vect_titanic3 = c(apply(Titanic, c(1, 3, 4), sum))
#Probabilidad de supervivencia menor de edad de tercera clase
p_menor = vect_titanic3[11]/total
round(p_menor, 3)
## [1] 0.012
#Vector con los datos de hombres, mujeres, niños y niñas ordenados por supervivencia
vect_titanic4 = c(apply(Titanic, c(2, 3, 4), sum))
#Total niños y niñas
total_n = sum(vect_titanic4[c(1, 2, 5, 6)])
total_n
## [1] 109
#Total mujeres
total_m = sum(vect_titanic4[c(4, 8)])
total_m
## [1] 425
#Probabilidad de que un niño o niña sobreviva
p_n = sum(vect_titanic4[c(5, 6)])/total_n
round(p_n, 3)
## [1] 0.523
#Probabilidad de que una mujer sobreviva
p_m = sum(vect_titanic4[8])/total_m
round(p_m, 3)
## [1] 0.744
vect_titanic5_1 = c(apply(Titanic, c(1, 2, 4), sum))
vect_titanic5_2 = c(apply(Titanic, c(1, 3, 4), sum))
set.seed(0)
sample(vect_titanic5_1[c(1,2,3)], 1)
## [1] 154