Marcos Matabuena
07/10/2015
En este concurso, el concursante escoge una puerta entre tres, y su premio consiste en lo que se encuentra detrás. Una de ellas oculta un coche, y tras las otras dos hay una cabra. Sin embargo, antes de abrirla, el presentador, que sabe dónde está el premio, abre una de la s otras dos puertas y muestra que detrás de ella hay una cabra. Ahora tiene el concursante una última oportunidad de cambiar la puerta escogida .
La pregunta que surge es: ¿Cúal sería la estrategia correcta?
# Sea X una variable aleatoria que toma el valor 0 si en la puerta hay un coche y 1 si es una cabra
# Utilizamos una función para el problema
res= function(n){
# Generamos n simulaciones de las posiciones de los objetos en cada puerta
puertas=replicate(n,sample(c(1,1,0),replace=F))
# Expresamos los resultados del experimento en una matrix nx3
experimento= t(puertas)
# generamos n eleciones aleatorias del juego del concursante
jugador= replicate(n,sample(c(1,2,3),size=1))
# variable auxiliar necesaria para devolver la posicion del coche dentro cada fila de la matriz
idpos= 3*(0:(n-1))
# Puerta donde esta el coche
poselm= which(t(experimento==0))-idpos
# Numero de veces donde acertamos donde esta el coche si no cambiamos la puerta
cuantos=sum(jugador==poselm)
# Probabilidad de acertar en nuestra elección inicial
probnc= cuantos/n
# Probabilidad de acertar si cambiamos de puerta
probc= 1-probnc
probnc
probc
resultados= c(probc)
}
Para conseguir una aproximación asintótica fiable debemos hacer que el número de simulaciones tienda a infinito, en este caso fijamos el número de simulaciones a $n=1000000.
probc= res(1000000)
probnc= 1-probc
Si decidimos no cambiar la puerta , la probabilidad de éxito de acertar donde esta el coche es:
## [1] 0.333799
En caso contrario:
## [1] 0.666201
En definitiva, la mejor estrategia es cambiar de puerta, tenemos el doble de probabilidades
Siendo los valores que obteniamos de manera aproximada con la simulación.
# Sea X una variable aleatoria que toma el valor 0 si en la puerta hay un coche y 1 si es una cabra
# Utilizamos una función para el problema
res= function(n){
# Generamos n simulaciones de las posiciones de los objetos en cada puerta
puertas=replicate(n,sample(c(1,1,1,0),replace=F))
# Expresamos los resultados del experimento en una matrix nx3
experimento= t(puertas)
# generamos n eleciones aleatorias del juego del concursante
jugador= replicate(n,sample(c(1,2,3,4),size=1))
# variable auxiliar necesaria para devolver la posicion del coche dentro cada fila de la matriz
idpos= 4*(0:(n-1))
# Puerta donde esta el coche
poselm= which(t(experimento==0))-idpos
# Numero de veces donde acertamos donde esta el coche si no cambiamos la puerta
cuantos=sum(jugador==poselm)
# Probabilidad de acertar en nuestra elección inicial
probnc= cuantos/n
# Probabilidad de acertar si cambiamos de puerta
probc= 1-probnc
probnc
probc
resultados= c(probc)
}
Para conseguir una aproximación asintótica fiable debemos hacer que el número de simulaciones tienda a infinito, en este caso fijamos el número de simulaciones a $n=1000000.
probc= res(1000000)
probnc= 1-probc
Si decidimos no cambiar la puerta , la probabilidad de éxito de acertar donde esta el coche es:
## [1] 0.250375
En caso contrario:
## [1] 0.749625
En definita, es mejor tambien en esta opción cambiar de puerta.