Come applicare il teorema di bayes in python


Il teorema di Bayes afferma quanto segue per due eventi A e B :

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

Oro:

  • P(A|B): la probabilità che si sia verificato l’evento A, dato l’evento B.
  • P(B|A): La probabilità che si sia verificato l’evento B, dato che si è verificato l’evento A.
  • P(A): la probabilità dell’evento A.
  • P(B): la probabilità dell’evento B.

Ad esempio, supponiamo che la probabilità che il tempo sia nuvoloso sia del 40%.

Supponiamo anche che la probabilità di pioggia in un dato giorno sia del 20%.

Supponiamo inoltre che la probabilità che ci siano nuvole in una giornata piovosa sia dell’85%.

Se fuori è nuvoloso in un dato giorno, quali sono le probabilità che piova quel giorno?

Soluzione :

  • P(nuvoloso) = 0,40
  • P(pioggia) = 0,20
  • P(nuvoloso | pioggia) = 0,85

Possiamo quindi calcolare:

  • P(pioggia | nuvoloso) = P(pioggia) * P(nuvoloso | pioggia) / P(nuvoloso)
  • P(pioggia | nuvoloso) = 0,20 * 0,85 / 0,40
  • P(pioggia | nuvoloso) = 0,425

Se fuori è nuvoloso in un dato giorno, la probabilità che piova quel giorno è del 42,5% .

Possiamo creare la seguente semplice funzione per applicare il teorema di Bayes in Python:

 def bayesTheorem (pA, pB, pBA):
    return pA * pBA / pB

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: teorema di Bayes in Python

Supponiamo di conoscere le seguenti probabilità:

  • P(pioggia) = 0,20
  • P(nuvoloso) = 0,40
  • P(nuvoloso | pioggia) = 0,85

Per calcolare P(pioggia | nuvoloso), possiamo usare la seguente sintassi:

 #define function for Bayes' theorem
def bayesTheorem (pA, pB, pBA):
    return pA * pBA / pB

#define probabilities
pRain = 0.2
pCloudy = 0.4
pCloudyRain = 0.85

#use function to calculate conditional probability
bayesTheorem(pRain, pCloudy, pCloudyRain)

0.425

Questo ci dice che se fuori è nuvoloso in un dato giorno, la probabilità che piova quel giorno è 0,425 o 42,5% .

Questo corrisponde al valore che abbiamo calcolato manualmente in precedenza.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in Python:

Come calcolare la probabilità condizionale in Python
Come calcolare il valore atteso in Python
Come calcolare una media troncata in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *