Teorema de Bayes: Uma Explicação Detalhada

O Teorema de Bayes é um princípio fundamental na teoria das probabilidades e estatística. Ele fornece uma maneira de calcular a probabilidade de uma hipótese com base em informações ou evidências prévias. Em outras palavras, ele nos permite atualizar as crenças sobre a probabilidade de um evento com base em novas evidências.

O teorema pode ser enunciado da seguinte forma:

P(A|B) = (P(B|A) * P(A)) / P(B)

Onde:

  • P(A|B) é a probabilidade da hipótese A ser verdadeira dado que a evidência B foi observada, conhecida como probabilidade posterior.
  • P(B|A) é a probabilidade da evidência B ocorrer, assumindo que A é verdadeira, chamada de verossimilhança.
  • P(A) é a probabilidade prévia da hipótese A ser verdadeira antes de observar a evidência B, chamada de probabilidade anterior.
  • P(B) é a probabilidade de observar a evidência B sob todas as hipóteses possíveis, conhecida como probabilidade marginal.

O teorema de Bayes é amplamente utilizado em várias áreas, incluindo aprendizado de máquina, inferência estatística e modelagem probabilística.

Exemplos em Python

Agora vamos a 10 exemplos que aplicam o teorema de Bayes para resolver diferentes problemas.

Exemplo 1: Cálculo Simples do Teorema de Bayes

 
# Teorema de Bayes básico
P_A = 0.01
P_B_given_A = 0.99
P_B_given_not_A = 0.05
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de estar doente dado que o teste foi positivo: {P_A_given_B:.4f}")

Exemplo 2: Aplicação em Diagnóstico Médico

 
P_A = 0.02
P_B_given_A = 0.99
P_B_given_not_A = 0.01
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de estar grávida dado que o teste foi positivo: {P_A_given_B:.4f}")

Exemplo 3: Teste de Dopagem em Atletas

 
P_A = 0.001
P_B_given_A = 0.99
P_B_given_not_A = 0.05
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de um atleta ser dopado dado um teste positivo: {P_A_given_B:.4f}")

Exemplo 4: Classificação de E-mails (Spam ou Não Spam)

 
P_A = 0.2
P_B_given_A = 0.6
P_B_given_not_A = 0.1
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de um e-mail ser spam dado que contém a palavra: {P_A_given_B:.4f}")

Exemplo 5: Avaliação de Fraude em Transações Bancárias

 
P_A = 0.01
P_B_given_A = 0.9
P_B_given_not_A = 0.05
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de uma transação ser fraudulenta dado que o sistema emitiu um alerta: {P_A_given_B:.4f}")

Exemplo 6: Pesquisa de Satisfação do Cliente

 
P_A = 0.8
P_B_given_A = 0.95
P_B_given_not_A = 0.1
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de um cliente estar satisfeito dado que ele deixou uma avaliação positiva: {P_A_given_B:.4f}")

Exemplo 7: Pesquisa de Vacinação

 
P_A = 0.7
P_B_given_A = 0.95
P_B_given_not_A = 0.05
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de uma pessoa ser vacinada dado que ela tem imunidade: {P_A_given_B:.4f}")

Exemplo 8: Previsão Meteorológica

 
P_A = 0.3
P_B_given_A = 0.9
P_B_given_not_A = 0.2
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de chover dado que há nuvens no céu: {P_A_given_B:.4f}")

Exemplo 9: Diagnóstico de Falhas em Equipamentos

 
P_A = 0.05
P_B_given_A = 0.9
P_B_given_not_A = 0.1
P_not_A = 1 - P_A
P_B = P_B_given_A * P_A + P_B_given_not_A * P_not_A
P_A_given_B = (P_B_given_A * P_A) / P_B
print(f"Probabilidade de uma máquina falhar dado que um alerta foi emitido: {P_A_given_B:.4f}")

Edvaldo Guimrães Filho Avatar

Published by

Leave a comment