O problema de Monty Hall e como estatística não é algo intuitivo
July 29, 2021 · Lucas Polo
Quando estudamos estatística é muito comum esbarrarmos no problema de Monty Hall. Monty Hall era um programa de TV onde o apresentador oferecia três portas para uma pessoa, atrás de uma delas havia um prêmio e das outras duas alguma coisa desagradável para dar o tom de humor do programa. Aqui no Brasil tinhamos o nosso equivalente apresentado pelo Sérgio Malandra, a Porta dos Desesperados. Aqui temos uma explicação do problema com sua solução:
Apesar da explicação do vídeo e de todas as outras que eu já vi, ainda pode ser um problema muito difícil de abstrair, então para testar a hipótese eu criei um script em R (linguagem de análise estatística que eu estudava na época) para simular o problema conforme as condições acima e realmente os resultados bateram, quando o candidato muda a porta na chance que o apresentador dá as chances de acerto sobem para 2/3. O script está abaixo:
tentativas <-100000acertos_sem_troca <-0#INDICA QUE APESAR DO APRESENTADOR ABRIR UMA PORTA, ELA NAO TROCAtroca =FALSEfor(i in1:tentativas) {
portas <-c(1,2,3)
porta_premiada <-sample(portas, 1, replace =FALSE)
porta_escolhida <-sample(portas, 1, replace =FALSE)
#O apresentador escolhe a porta sem premio e nao escolhida para abrir! portas_sem_premio <- portas[portas != porta_premiada]
portas_spremio_nescolhida <- portas_sem_premio[portas_sem_premio != porta_escolhida]
#Abrindo a Porta (removendo das possiblidades a porta que nao foi escolhida e nao eh a premiada) portas <- portas[!portas %in% portas_spremio_nescolhida]
if(troca) {
#Trocando porta escolhida pela outra porta porta_escolhida <- portas[1]
}
if(porta_escolhida == porta_premiada) {
acertos_sem_troca = acertos_sem_troca +1 }
}
acertos_com_troca <-0#INDICA QUE SERA TROCADOtroca =TRUEfor(i in1:tentativas) {
portas <-c(1,2,3)
porta_premiada <-sample(portas, 1, replace =FALSE)
porta_escolhida <-sample(portas, 1, replace =FALSE)
#O apresentador escolhe a porta sem premio e nao escolhida para abrir! portas_sem_premio <- portas[portas != porta_premiada]
portas_spremio_nescolhida <- portas_sem_premio[portas_sem_premio != porta_escolhida]
#Abrindo a Porta (removendo das possiblidades a porta que nao foi escolhida e nao eh a premiada) portas <- portas[!portas %in% portas_spremio_nescolhida]
if(troca) {
#Trocando porta escolhida pela outra porta porta_escolhida <- portas[1]
}
if(porta_escolhida == porta_premiada) {
acertos_com_troca = acertos_com_troca +1 }
}