Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

O que é o Paradoxo de Monty Hall?

+2 votos
447 visitas
perguntada Out 16, 2015 em Estatística por danielcajueiro (5,501 pontos)  

Monty Hall no programa Let's make a deal:

Monty Hall Let's make a deal

Compartilhe

1 Resposta

+2 votos
respondida Out 16, 2015 por danielcajueiro (5,501 pontos)  

O problema conhecido de paradoxo de Monty Hall é um problema que ficou popular por ter sido apresentado em um programa de auditório americano "Let's make a deal" pelo ator Monty Halparin (conhecido como Monty Hall). Esse problema na verdade é bem popular e apareceu por exemplo no filme 21 no curso do Professor do MIT Micky Rosa e no Brasil usando o nome de Porta dos Desesperados do apresentador Sérgio Malandro.

Nesse problema um participante é apresentado a três portas, onde em apenas uma delas existe um prêmio e nas outras duas tem, por exemplo, uma cabra.

Monty Hall Problem

A sequência de eventos é a seguinte:

1) O apresentador pede para o participante escolher uma das portas.

2) Depois que o participante escolhe uma das portas, o apresentador abre uma das portas onde não está o prêmio.

3) Então o apresentador pergunta "Você gostaria de mudar a sua escolha?"

O que fazer? Devo ou não mudar minha escolha? Pense um pouquinho.... Mais um pouquinho... E aí, vai mudar o não?

Solução inocente e errada

O apresentador apenas aumentou as minhas chances de ganhar. No inicio, minha chance de acertar era 1/3, pois em uma das três portas estava o prêmio. Agora existem duas portas e minha chance de ganhar é 1/2. Logo, tanto faz mudar ou não!

Por que essa solução está errada?

Porque você desprezou uma informação fundamental para tomar essa decisão. Dado a estrutura do programa, o apresentador nunca iria abrir a porta que você escolheu ou a porta que contém o prêmio.

Como resolver esse problema?

Existem duas possibilidades. A primeira é que você escolheu a porta correta e a outra é que você não escolheu a porta correta. Vamos usar essas duas possibilidades para fazer análise correta.

Com 1/3 de chance, você já escolheu a porta correta. Nesse caso, se você mudar a sua escolha, você perde.

Com 2/3 de chance, você escolheu a porta errada. Nesse caso, sempre que você mudar, você ganha, visto que o apresentador nunca teria aberto a porta onde está o prêmio.

Logo, mudando a escolha de sua porta, a chance de você ganhar não é 50% (como alguêm pode ter pensado anteriormente), mas 66% de chance.

É possível resolver esse problema usando o Teorema de Bayes?

Sim, faz todo sentido. Note aqui que o teorema de Bayes é uma ferramenta que te ajuda a atualizar sua previsão sobre algum evento na presença de nova informação.

Suponha então que você quando foi apresentado as três portas PORTA 1, PORTA 2 e PORTA 3, você escolheu a PORTA 1.

Considere agora os seguintes eventos:

E1: O prêmio está atrás da PORTA 1
E2: O prêmio está atrás da PORTA 2
E3: O prêmio está atrás da PORTA 3

Considere agora os dados:

D1: O apresentador abriu a PORTA 1
D2: O apresentador abriu a PORTA 2
D3: O apresentador abriu a PORTA 3

Lembrando que você já escolheu a PORTA 1, estamos interessados nas seguintes probabilidades condicionais:

P(E2/D3) ou P(E3/D2). Note que por simetria P(E2/D3)=P(E3/D2).

Usando o teorema de Bayes, queremos calcular:

\(P(E2/D3)=\frac{P(D3/E2)P(E2)}{P(D3)}\).

Quanto vale P(D3/E2)? Vale 1, pois ele não poderia abrir a porta que você já escolheu nem a porta onde está o prêmio.

Quanto vale P(E2)? Vale 1/3, pois existem 3 portas.

Quanto vale P(D3)? Vale 1/2, pois ele não poderia abrir a porta que você escolheu.

Logo, substituindo as probabilidades acima, temos

\(P(E2/D3)=\frac{1\times 1/3}{1/2}=2/3\). Ou seja, vale a pena você mudar!

Uau, você ainda não está convencido?

Ok... A solução é fazermos uma simulação Monte Carlo para explorar esse resultado. A simulação é bem simples. Você basicamente deseja decidir se você quer ou não mudar de porta. Ou seja, a sua simulação deve comparar duas estratégias. Vamos então fazer a simulação da seguinte forma:

1) Uma porta é sorteada aleatoriamente para conter o prêmio.

2) Você escolhe a aleatoriamente uma porta.

3) O apresentador escolhe uma porta para abrir. Ele não pode escolher nem a porta onde está o prêmio, nem a porta que você escolheu. Se houver mais do que duas portas, ele escolhe uma delas aleatoriamente.

4) Nós comparamos as duas estratégias nesses jogos repetidos (você mudou sua escolha ou não). Se a estratégia acerta, ela ganha 1 ponto. Em caso contrário, ela ganha 0 pontos.

Veja na figura abaixo que a estratégia que "muda a porta" (em azul) tem o payoff duas vezes maior que aquela que "não muda" (em vermelho):

Mounty Hall Paradox

O código usado para fazer essa simulação está aqui:

import matplotlib.pyplot as plt
import random
import numpy as np

if __name__ == '__main__':
    numeroRepeticoes=1000
    portasLivres=np.empty([2])
    ganhouEstrategiaMantemPorta=np.zeros([numeroRepeticoes])
    ganhouEstrategiaMudaPorta=np.zeros([numeroRepeticoes])
    jogo=np.empty([numeroRepeticoes])
    for i in range(numeroRepeticoes):
        jogo[i]=i
        portaComPremio=random.randint(1,3)
        minhaPorta=random.randint(1,3)
        if(portaComPremio==minhaPorta):
            contPortasLivres=0
            aPorta=0
            while(contPortasLivres<2):
                aPorta=aPorta+1
                if(aPorta != minhaPorta):
                    portasLivres[contPortasLivres]=aPorta
                    contPortasLivres=contPortasLivres+1
            numeroAleatorio=random.randint(0,1)
            portaApresentador=portasLivres[numeroAleatorio]   
            portaEstrategiaMudaPorta=portasLivres[1-numeroAleatorio]
            portaEstrategiaMantemPorta=minhaPorta                                
        else:
            contPortasLivres=0
            aPorta=0
            while(contPortasLivres<1):
                aPorta=aPorta+1
                if((aPorta != minhaPorta)and (aPorta != portaComPremio)):
                    portasLivres[contPortasLivres]=aPorta
                    contPortasLivres=contPortasLivres+1
            portaApresentador=portasLivres[0]                                    
            portaEstrategiaMudaPorta=portaComPremio
            portaEstrategiaMantemPorta=minhaPorta
        if(portaEstrategiaMudaPorta==portaComPremio):
            if(i==0):
                ganhouEstrategiaMudaPorta[i]=1
                ganhouEstrategiaMantemPorta[i]=0
            else:
                ganhouEstrategiaMudaPorta[i]=ganhouEstrategiaMudaPorta[i-1]+1
                ganhouEstrategiaMantemPorta[i]=ganhouEstrategiaMantemPorta[i-1]                

        else:
            if(i==0):
                ganhouEstrategiaMantemPorta[i]=1
                ganhouEstrategiaMudaPorta[i]=0
            else:
                ganhouEstrategiaMantemPorta[i]=ganhouEstrategiaMantemPorta[i-1]+1                
                ganhouEstrategiaMudaPorta[i]=ganhouEstrategiaMudaPorta[i-1]                
    fig = plt.figure()
    ax = fig.add_subplot(111)  
    fig.hold()    
    ax.plot(jogo,ganhouEstrategiaMantemPorta,'r.')
    ax.plot(jogo,ganhouEstrategiaMudaPorta,'b.')
    ax.set_ylabel('Payoff das Estrategias')
    ax.set_xlabel('Jogo')  
...