Esercizi risolti utilizzando le catene di Markov. Prevedere il meteo

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Cerca nelle Categorie

Prevedere il meteo con le catene di Markov

Esercizio 1: Previsioni meteorologiche semplificate

Ti potrebbe interessare anche:  Introduzione alle Catene di Markov: Teoria, Applicazioni e un Tocco di Creatività

Immagina un sistema meteorologico semplificato con due soli stati: “Sole” e “Pioggia”. Supponiamo che la probabilità che domani ci sia il sole, dato che oggi c’è il sole, sia del 70% (0.7). La probabilità che domani piova, dato che oggi c’è il sole, è quindi del 30% (0.3). Se oggi piove, la probabilità che piova anche domani è del 60% (0.6), e la probabilità che domani ci sia il sole è del 40% (0.4).

  • a) Scrivere la matrice di transizione.
  • b) Se oggi c’è il sole, qual è la probabilità che dopodomani ci sia il sole?

SOLUZIONE

Analisi del Problema

Abbiamo un sistema meteorologico semplificato con due stati possibili:

  • Stato 1: Sole
  • Stato 2: Pioggia

Le probabilità di transizione sono:

  • Da Sole a Sole: 0.7 (70%)
  • Da Sole a Pioggia: 0.3 (30%)
  • Da Pioggia a Pioggia: 0.6 (60%)
  • Da Pioggia a Sole: 0.4 (40%)

a) Matrice di Transizione

La matrice di transizione rappresenta le probabilità di passaggio da uno stato all’altro.

La costruiremo come segue:

        Sole     Pioggia
Sole      0.7    0.3
Pioggia   0.4    0.6

b) Probabilità di sole dopodomani, partendo da sole oggi

Per risolvere questo, dobbiamo calcolare la probabilità di sole dopo due giorni, partendo da sole oggi. Useremo la matrice di transizione.

Passaggio 1: Calcolo della probabilità di sole dopodomani

Per farlo, moltiplicheremo la riga corrispondente a “Sole” per la stessa matrice di transizione.

Riga “Sole”: [0.7, 0.3]

Moltiplicazione matriciale:

  • Probabilità di sole: (0.7 * 0.7) + (0.3 * 0.4) = 0.49 + 0.12 = 0.61
  • Probabilità di pioggia: (0.7 * 0.3) + (0.3 * 0.6) = 0.21 + 0.18 = 0.39

Quindi, se oggi c’è il sole, la probabilità che ci sia il sole dopodomani è del 61%.

Verifica del Calcolo

Possiamo verificare questo calcolo usando la moltiplicazione matriciale:

[0.7, 0.3] * | 0.7 0.3 |
             | 0.4 0.6 | = [0.61, 0.39]

Interpretazione Intuitiva

Questo risultato significa che, anche se oggi c’è il sole, la probabilità di avere il sole dopodomani non è più così alta come oggi (dal 100% a solo il 61%). Questo riflette l’incertezza intrinseca delle previsioni meteorologiche.

La catena di Markov che abbiamo utilizzato mostra come le condizioni meteorologiche possano cambiare in modo probabilistico, dove ogni stato dipende solo dallo stato precedente.

Analisi dettagliata, passo per passo della soluzione

Passo 1: Comprensione delle Probabilità di Transizione

Iniziamo visualizzando le probabilità di transizione come un “viaggio” meteorologico:

  • Se OGGI è SOLE:
    • Domani SOLE: 70% (0.7)
    • Domani PIOGGIA: 30% (0.3)
  • Se OGGI è PIOGGIA:
    • Domani SOLE: 40% (0.4)
    • Domani PIOGGIA: 60% (0.6)

Passo 2: Costruzione della Matrice di Transizione

Rappresentiamo queste probabilità in una matrice:

[Stato Attuale] → [Stato Successivo]
                   Sole                       Pioggia
Sole               0.7                        0.3
Pioggia            0.4                        0.6

Leggiamo la matrice:

  • Riga “Sole”: Se oggi è SOLE
    • 0.7 probabilità di SOLE domani
    • 0.3 probabilità di PIOGGIA domani
  • Riga “Pioggia”: Se oggi è PIOGGIA
    • 0.4 probabilità di SOLE domani
    • 0.6 probabilità di PIOGGIA domani

Passo 3: Calcolo della Probabilità di Sole Dopodomani

Dobbiamo calcolare la probabilità di SOLE dopo DUE giorni, partendo da SOLE oggi.

Fase A: Calcolo della Prima Transizione

Consideriamo le probabilità dalla riga “Sole”:

  • Probabilità di SOLE → SOLE: 0.7
  • Probabilità di SOLE → PIOGGIA: 0.3

Fase B: Calcolo della Seconda Transizione

Per ogni stato possibile dopo il primo giorno, calcoliamo la probabilità di arrivare a SOLE:

  1. Se dopo il primo giorno è SOLE:
    • Probabilità di SOLE: 0.7 * 0.7 = 0.49
    • Probabilità di PIOGGIA: 0.7 * 0.3 = 0.21
  2. Se dopo il primo giorno è PIOGGIA:
    • Probabilità di SOLE: 0.3 * 0.4 = 0.12
    • Probabilità di PIOGGIA: 0.3 * 0.6 = 0.18

Fase C: Somma delle Probabilità di SOLE

Sommiamo tutte le probabilità che portano a SOLE:

  • Da SOLE a SOLE: 0.49
  • Da PIOGGIA a SOLE: 0.12

Probabilità totale di SOLE dopodomani: 0.49 + 0.12 = 0.61 (61%)

 

Proviamo ora a generalizzare il problema

Analizzeremo la generalizzazione del procedimento per calcolare le probabilità in un sistema di Markov dopo un numero arbitrario di giorni.

Procedimento Generale per Catene di Markov

Concetto Fondamentale

Nella catena di Markov, per calcolare lo stato dopo n giorni:

  1. Usiamo la matrice di transizione
  2. Moltiplichiamo ripetutamente la matrice per il vettore iniziale

Procedimento Matematico

Notazione
  • P = Matrice di Transizione
  • v = Vettore di stato iniziale
  • n = Numero di giorni
Algoritmo
  • Stato dopo 1 giorno: v * P
  • Stato dopo 2 giorni: v * (P^2)
  • Stato dopo 3 giorni: v * (P^3)
  • Stato dopo n giorni: v * (P^n)

Esempio Pratico con 4 Giorni

Dati Iniziali

Matrice di Transizione P:
                  Sole       Pioggia
Sole               0.7        0.3
Pioggia            0.4        0.6

Stato Iniziale [Sole]: [1, 0]

Calcolo Step by Step

  1. Stato dopo 1 giorno:
    • v * P = [0.7, 0.3]
  2. Stato dopo 2 giorni:
    • v * (P^2) = [0.61, 0.39]
  3. Stato dopo 3 giorni:
    • v * (P^3) = [0.553, 0.447]
  4. Stato dopo 4 giorni:
    • v * (P^4) = [0.5191, 0.4809]

Il metodo Random Forest: La “foresta magica” della statistica

Modello meteorologico utilizzando Catene di Markov e Random Forest

Infine, ecco l’immancabile implementazione in Python delle catene di Markov

import numpy as np

def calcola_stato_dopo_giorni(stato_iniziale, matrice_transizione, giorni):
# Converte stato iniziale e matrice in array numpy
stato = np.array(stato_iniziale)
P = np.array(matrice_transizione)

# Calcola stato dopo n giorni
stato_finale = np.linalg.matrix_power(P, giorni)
return stato @ stato_finale

# Esempio
P = [[0.7, 0.3], [0.4, 0.6]]
stato_iniziale = [1, 0] # Oggi SOLE

for n in range(1, 5):
result = calcola_stato_dopo_giorni(stato_iniziale, P, n)
print(f"Stato dopo {n} giorni: Sole {result[0]*100:.2f}%, Pioggia {result[1]*100:.2f}%")

Output

Stato dopo 1 giorni: Sole 70.00%, Pioggia 30.00%
Stato dopo 2 giorni: Sole 61.00%, Pioggia 39.00%
Stato dopo 3 giorni: Sole 58.30%, Pioggia 41.70%
Stato dopo 4 giorni: Sole 57.49%, Pioggia 42.51%

 

Insight Matematici

  1. Convergenza: Con molti giorni, le probabilità tendono a stabilizzarsi
  2. Indipendenza dallo Stato Iniziale: Dopo molte iterazioni, lo stato finale dipende poco dallo stato iniziale
  3. Proprietà Markoviane: Ogni transizione dipende solo dallo stato attuale

Calcolo Manuale vs Computazionale

  • Calcolo Manuale: Utile per pochi passaggi

  • Calcolo Computazionale: Essenziale per molte iterazioni

 

(183)

PubblicitàPubblicità