Resumen

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.

Enunciado

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.

      1) ¿Cuál es el porcentaje de supervivencia de los pasajeros y de la tripulación?¿Cuál es mayor?
#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
      El de los pasajeros es mayor.


      2) ¿Cuál es el probabilidad de que una mujer de la tripulación sobreviva?
#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
      3) ¿Cuál es el probabilidad de que un(a) menor de edad sobreviva en tercera clase?
#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
      4) ¿En general se cumple el código “mujeres y niños(as) primero”?
#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
      Se considera que el código se cumple, debido a que en ambos casos la probabilidad de supervivencia para ambas poblaciones fue favorable.


      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”?
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