Problema de Monty Hall

Esto es una simulación del Problema de Monty Hall.

El problema de Monty Hall explicado por David Vilela:

https://www.youtube.com/watch?v=Vy86Ge-YZeg&ab_channel=DavidVilela

El problema de Monty Hall se basa en un concurso en el cual un concursante tiene que elegir entre tres puertas. Detras de una de ellas hay un coche y en cada una de las otras dos una cabra.

Una vez que el concursante hay escogido una puerta el presentador abre una de las dos puertas restantes mostrando una de las cabras. El concursante tiene ahora la opción de cambiar su elección o no.

Intuitivamente, tras haber abierto la puerta el presentador, las probabilidades de ganar el coche pasa a ser de un 50%. Lo que se demuestra en este caso es que manteniendo la elección inicial la probabilidad de ganar el coche sigue siendo de un 33% mientrass que cambiando la elección la probailidad pasa a ser de un 66%.

# Generamos las posibles puertas

opciones <- c("coche","cabra","cabra")
tamaño<-1000000

puertas <-matrix(nrow=tamaño,ncol=3)

for (i in 1:tamaño)
{
  resultados <- sample(opciones,3, replace=FALSE)
  puertas[i,1] <- resultados[1]
  puertas[i,2] <- resultados[2]
  puertas[i,3] <- resultados[3]
}
# Generamos las elecciones que va a tomar el concursante
# La primera opción es un número entre 1 y 3 que indica la puerta que elige.
# En elec1r guardaremos el premio que habría elegido (coche, cabra1 o cabra2)
# La segunda opción es "cambio" o "no cambio"

opcion1 <- c(1,2,3)

opcion2 <- c("cambio","no cambio")

elec1 <- matrix(1:tamaño)   # número de puerta
elec1r <- matrix(1:tamaño)  # resultado de la primera elección de puerta
elec2 <- matrix(1:tamaño)

for (i in 1:tamaño)
{
  elec1[i] <- sample (opcion1, 1)
  elec1r[i] <- puertas [i, elec1[i]]
  elec2[i] <- sample (opcion2, 1)
}


summary(elec1r)
##      V1        
##  cabra:666960  
##  coche:333040

El resultado en la primera elección es el esperado. El concursante gana el coche un 33% de las ocasiones.

# Vemos cual es la opción final. Si el concursante no cambia se queda con la 
# opción1 y si cambia se lleva el premio contrario (si había elegido coche se 
# lleva cabra y si había elegido cabra se lleva el coche)

finalr <- matrix(1:tamaño)

for (i in 1:tamaño)
{
  if (elec2[i]=="no cambio")
  {
    if (elec1r[i]=="coche")
    {
      finalr[i]<-"coche"
    }
    else
    {
      finalr[i]<-"cabra"
    }
    
  }
  else
  {
    if (elec1r[i]=="coche")
    {
      finalr[i]<-"cabra"
    }
    else
    {
      finalr[i]<-"coche"
    }
  }
  
  
}

Para verificar si el resultado es el que esperábammos calculamos las probabilidades

summary(finalr)
##      V1        
##  cabra:500239  
##  coche:499761
tabla_fa <- table(elec2, finalr)

tabla_fr <- prop.table(tabla_fa)

tabla_fa
##            finalr
## elec2        cabra  coche
##   cambio    166949 333670
##   no cambio 333290 166091
tabla_fr
##            finalr
## elec2          cabra    coche
##   cambio    0.166949 0.333670
##   no cambio 0.333290 0.166091
condicional <- prop.table(tabla_fr,2)

condicional
##            finalr
## elec2           cabra     coche
##   cambio    0.3337385 0.6676591
##   no cambio 0.6662615 0.3323409

Se observa que los casos en los que se cambia de elección la probabilidad de ganar se eleva al 66% aproximadamente mientras que en los que no se cambia se mantiene en un 33%.

```