Después de realizar con éxito esta práctica serás capaz de:
* Utilzar R para simular algunas probabilidades utilizando el enfoque de frecuencias relativas.
* Explicar como las frecuencias relativas pueden interpretarse como probabilidades por medio de la relación \(\displaystyle P(A) = \lim_{n\to \infty} \frac{n_{A}}{n}\)
La frecuencia relativa de ocurrencia de un evento aleatorio A está dado por el cociente \(\frac{n_{A}}{n}\). El denominador es el número de veces que el experimento se repite y el numerador es el número de veces que el evento A ocurre en estas repeticiones.
Para completar con éxito esta práctica es necesario comprender correctamente este concepto, por lo que vamos a estudiarlo a pequeña escala, para que una vez comprendido a este nivel, se pueda trasladar ese conocimiento a gran escala, es decir cuando \(n\to\infty\).
Para explicarlo vamos a usar el siguiente ejemplo:
El departamento de ingeniería de una empresa de tecnología está formado por 8 hombres y 4 mujeres. Para conocer las opiniones de los empleados sobre los diversos beneficios, la oficina de recursos humanos planea formar un focus group seleccionando de manera aleatoria a cinco miembros del departamento.
a. ¿Cuál es la probabilidad que el focus group esté formado sólo por hombres? RESPUESTA: 7/99.
b. ¿Cuál es la probabilidad que el focus group esté formado por 2 hombres y 3 mujeres? RESPUESTA: 14/99
Para simular el primer literal seguiremos los siguientes pasos:
trabajadores <- c(paste("M", 1:4, sep = "."), paste("H", 1:8, sep = "."))
trabajadores
## [1] "M.1" "M.2" "M.3" "M.4" "H.1" "H.2" "H.3" "H.4" "H.5" "H.6" "H.7"
## [12] "H.8"
Como podemos observar, esta porción de código genera el grupo de trabajadores: Por ejemplo H.3 representa al tercer hombre y M.1 a la primera mujer.
seleccion <- sample(trabajadores, 5, replace = FALSE)
seleccion
## [1] "H.1" "M.1" "H.8" "H.6" "H.7"
Esta porción de código utiliza la función sample() que hace una selección aleatoria de tamaño 5 del grupo de trabajadores. El parámetro replace (para muestreo con o sin reemplazo) está fijado a FALSE, ya que no deseamos que un mismo trabajador sea seleccionado dos veces.
num_hombres <- sum(substr(seleccion, 1, 1) == "H")
print(num_hombres)
## [1] 4
El número mostrado corresponde al número de Hombres en el grupo de 5 que han sido seleccionados.
num_hombres==5
## [1] FALSE
Hasta este paso, hemos realizado una extracción de 5 trabajadores de los 8 posibles y hemos contado cuántos hombres forman parte de la extracción. Repite algunas veces estos pasos hasta que creas que están bien comprendidos.
n <- 30 ## Número de réplicas, es decir cuántas veces repetiremos el experimento. Modica acá para fijar el número de réplicas.
focus_group <- function(){ ## Inicion de la función
trabajadores <- c(paste("M", 1:4, sep = "."), paste("H", 1:8, sep = ".")) # Generando a los trabajadores
seleccion <- sample(trabajadores, 5, replace = FALSE) # Seleccionado 5 trabajadores de manera aleatoria
num_hombres <- sum(substr(seleccion, 1, 1) == "H") # Averiguando cuántos hobres van en la selección de 5
num_hombres == 5 # Verificamos si hay 5 hombres (esto devuelve un vector de tamaño 1 con TRUE o FALSE)
}
### Fin de la definición de la Función que realiza la selección aleatoria de tamaño 5
focus_group_largoplazo <- replicate(n, focus_group()) # Repite n veces la función anterior
frec_relativas <- cumsum(focus_group_largoplazo)/1:n ## Calcula las frecuencias relativas
plot(1:n,frec_relativas)
grid()
abline(h = 7/99,col="red",lty=2) ## 7/99 es el valor teórico de la probabilidad pedida.
mean(focus_group_largoplazo) ## Este es el valor promedio al que se estabiliza la frecuencia relativa.
## [1] 0
Repite el paso 5 para n=300, 1000 y 3000. Compara el comportamiento de las gráficas generadas y el valor de la frecuencia relativa.
Modifica el código anterior para encontrar la probabilidad de que el focus group esté formado por dos hombres y tres mujeres. Agrega un línea de tendencia en el valor teórico de 14/99 ¿A qué valor se estabiliza la frecuencia relativa? Elige un número adecuado de réplicas.
**Una planta de producción emplea a 6 trabajadores en el turno de la mañana, 5 trabajadores en el turno de la tarde, y 10 trabajadores en el turno de la noche. Un consultor de control de calidad seleccionará 6 trabajadores para hacerles una entrevista personal. Suponga que la selección se hace de manera aleatoria.
Utiliza el siguiente código para simular las probabilidades pedidas (las preguntas están en el formulario)
n <- 5000
seleccion <- function(){
trabajadores <- c(paste("D", 1:6, sep = "."), paste("T", 1:5, sep = "."),paste("N", 1:10, sep = "."))
grupo <- sample(trabajadores, 6, replace = FALSE)
num_Noche <- sum(substr(grupo, 1, 1) == "N")
num_Tarde <- sum(substr(grupo, 1, 1) == "T")
num_Dia <- sum(substr(grupo, 1, 1) == "D")
#num_Noche == X & num_Tarde == Y & num_Dia == Z # En esta línea & indica la ondicion "AND". Cambia los valores de X, Y y Z según se pida en los literales y borra el # del inicio para activar la línea.
}
### Fin de la definición de la Función que realiza la selección aleatoria de tamaño 5
Seleccion_largoplazo <- replicate(n, seleccion())
frec_relativas <- cumsum(Seleccion_largoplazo)/1:n
plot(1:n,frec_relativas)
grid()
print(round(mean(Seleccion_largoplazo),2)) # Esta función redondea a dos dígitos para hacer más fácil la lcomparación al repetir muchas veces el experimento.
## [1] 1.73
Corre el código anterior las veces que consideres necesarias y luego realiza la evaluación de la actividad.