Clustering Fuzzy: La Mia Arma Segreta per Svelare gli Stati Nascosti nei Modelli Markov Switching?
Ciao a tutti! Oggi voglio parlarvi di un’avventura affascinante nel mondo delle serie storiche e dei modelli statistici, un viaggio che mi ha portato a esplorare un territorio un po’ inesplorato, ma pieno di potenzialità. Avete mai sentito parlare dei modelli a cambiamento di regime Markoviano (o Markov Switching, MS)? Sono strumenti potentissimi, usati tantissimo in economia, finanza, neuroscienze… praticamente ovunque ci siano dati che sembrano “cambiare umore” nel tempo.
Cosa sono questi Modelli Markov Switching?
Immaginate una serie storica, come l’andamento del PIL o il prezzo di un’azione. Questi modelli partono dall’idea che il processo che genera questi dati non sia sempre lo stesso, ma possa trovarsi in diversi “stati” o “regimi” nascosti. Pensate alle fasi di espansione e contrazione dell’economia, o ai periodi di calma e turbolenza sui mercati finanziari. Questi stati non li osserviamo direttamente, ma possiamo modellarne le transizioni usando una catena di Markov (da qui il nome). La bellezza di questi modelli sta nella possibilità, grazie a strumenti come il famoso filtro di Hamilton, di stimare la probabilità che il sistema si trovi in un certo stato in un dato momento (le cosiddette probabilità filtrate o “smoothed”).
Il Problema Aperto: Quanti Stati Ci Sono Davvero?
Qui arriva il bello, o meglio, il problema! Una delle questioni più spinose con i modelli MS è decidere quanti stati (`k`) considerare. Sembra una domanda semplice, ma in realtà è un bel grattacapo. I test statistici classici, quelli che usiamo di solito per confrontare modelli, qui fanno cilecca. Il motivo? Un problema tecnico legato ai cosiddetti “parametri di disturbo” (nuisance parameters), che esistono solo nel modello più complesso (con `k+1` stati) e non in quello più semplice (con `k` stati). Risultato? Nella pratica, spesso si sceglie `k` un po’ a sentimento, di solito 2 o 3, senza una vera procedura statistica robusta per giustificare la scelta. Ci sono stati tentativi di sviluppare test specifici (Hansen, Garcia), ma sono complessi, computazionalmente pesanti e non sempre applicabili facilmente. Altri approcci usano criteri basati sulla verosimiglianza penalizzata (come AIC o BIC), ma anche qui le performance dipendono molto dalla corretta specificazione del modello e la loro consistenza è ancora dibattuta.
L’Intuizione: E se Usassimo il Clustering Fuzzy?
Ed è qui che entra in gioco la mia idea, nata quasi per caso osservando le somiglianze tra due mondi apparentemente diversi. Da un lato abbiamo le probabilità “smoothed” dei modelli MS, che ci dicono quanto è probabile che un’osservazione appartenga a ciascuno stato. Dall’altro lato c’è il clustering fuzzy. A differenza del clustering classico (“hard”), dove ogni punto appartiene rigidamente a un solo gruppo, nel clustering fuzzy ogni punto ha un “grado di appartenenza” (membership grade) a ciascun cluster, una sorta di probabilità. Vedete l’assonanza? Mi sono chiesto: e se questa somiglianza non fosse solo superficiale? E se potessimo usare gli strumenti del clustering fuzzy, in particolare gli indici usati per determinare il numero ottimale di cluster, per identificare il numero di stati `k` nei modelli MS? La cosa fantastica è che il clustering fuzzy è una procedura non parametrica, applicabile direttamente ai dati, senza dover stimare prima il modello MS, ed è implementata in quasi tutti i software statistici!

Mettiamo alla Prova l’Idea: Le Simulazioni Monte Carlo
Ovviamente, un’intuizione va verificata. Così, mi sono messo all’opera con una serie massiccia di esperimenti Monte Carlo. Ho generato migliaia di serie storiche da modelli MS con un numero noto di stati (2, 3 e anche 4 stati), con diverse caratteristiche (con e senza autocorrelazione, con varianze e medie diverse). Poi ho fatto due cose:
- Confronto delle Classificazioni: Ho confrontato la classificazione degli stati ottenuta stimando il modello MS corretto (usando le probabilità smoothed) con quella ottenuta applicando l’algoritmo di clustering fuzzy (fuzzy k-means) direttamente ai dati generati. Per misurare la somiglianza ho usato l’Adjusted Rand Index (ARI). I risultati? Sorprendentemente buoni! Il clustering fuzzy riesce a replicare abbastanza fedelmente la classificazione del modello MS, specialmente con serie storiche più lunghe (`T=500` o `T=1000`). Certo, ci sono casi più difficili (quando gli stati sono molto “vicini” tra loro), ma in generale la somiglianza è notevole.
- Identificazione del Numero di Stati: Qui la domanda cruciale: gli indici di validazione del clustering fuzzy (come PC, PE, MPC, ASW, ASWF, XB) riescono a indovinare il numero vero di stati `k` usato per generare i dati? Ho applicato questi indici alle serie simulate, cercando il `k` ottimale (tra 2 e 7). I risultati sono stati molto incoraggianti! Specialmente gli indici ASW (Average Silhouette Width) e ASWF (Average Silhouette Width Fuzzy) hanno mostrato performance eccellenti, identificando correttamente `k` in un’alta percentuale di casi, soprattutto con `T` grande. Anche qui, i casi con stati molto sovrapposti sono più ostici, ma la tendenza generale è positiva.
Fuzzy vs. AIC/BIC: Chi la Spunta?
Mi sono poi chiesto come se la cavasse il mio approccio fuzzy rispetto ai criteri più tradizionali come AIC e BIC. Ho fatto un confronto, prima assumendo di conoscere la struttura corretta del modello MS (ma non `k`), e poi in uno scenario più realistico, senza conoscere la vera distribuzione dei dati (usando distribuzioni diverse dalla Normale o introducendo asimmetrie).
- Nei casi “facili”, dove gli stati sono ben separati, AIC e BIC (calcolati sul modello corretto) vanno molto bene, ma il fuzzy non sfigura affatto, anzi a volte fa anche meglio di AIC.
- Nei casi “difficili” (stati sovrapposti), tutti i metodi faticano, incluso il fuzzy. Però, ho notato che anche quando il fuzzy sbaglia `k`, il modello MS stimato con quel `k` sbagliato spesso ha una performance (in termini di errore quadratico medio) non significativamente diversa da quella del modello con il `k` corretto. Insomma, l’errore potrebbe non essere così grave in pratica.
- La vera sorpresa è arrivata quando ho testato la robustezza. Quando il modello che genera i dati non è esattamente quello che si assume (es. distribuzione non Normale, presenza di asimmetrie), AIC e BIC (calcolati sulla distribuzione marginale, in modo simile al fuzzy) mostrano un calo di performance, mentre l’approccio fuzzy sembra molto più robusto, mantenendo buoni risultati simili a quelli ottenuti nel caso Normale. Questo è un vantaggio enorme nella pratica, dove raramente conosciamo il vero processo generatore dei dati!

La Mia Proposta: Una Procedura Pratica
Basandomi su questi risultati, ho messo a punto una procedura semplice e pratica per usare il clustering fuzzy per identificare `k` nei modelli MS:
- Verifica Preliminare: Prima di tutto, ha senso cercare degli stati? Usiamo un test di omogeneità (come quello di Hennig e Lin) per vedere se i dati mostrano effettivamente una struttura a gruppi.
- Applica il Clustering Fuzzy: Se il test suggerisce la presenza di gruppi, applichiamo l’algoritmo fuzzy k-means ai dati per diversi valori di `k` (es. da 2 a 7).
- Scegli `k` con gli Indici: Calcoliamo i vari indici di validazione (ASW, ASWF, PC, PE, MPC, XB) per ogni `k` testato e scegliamo il valore di `k` che ottimizza questi indici (es. massimizza ASW/ASWF, minimizza PE/XB). Se più indici concordano, tanto meglio!
- Stima il Modello MS: Ora che abbiamo un’idea di `k`, possiamo stimare il modello MS con quel numero di stati.
- (Opzionale) Confronto Finale: Possiamo confrontare la classificazione ottenuta dal clustering fuzzy (assegnando ogni punto al cluster con membership grade massimo) con quella ottenuta dal modello MS stimato (usando le probabilità smoothed), magari usando l’ARI, per vedere se sono coerenti.
Un Esempio Reale: Il Ciclo Economico USA
Per vedere la procedura all’opera, l’ho applicata a un classico: il tasso di crescita trimestrale del PIL statunitense dal 1947 al 2020. Tradizionalmente, per analizzare il ciclo economico, si usano modelli MS con `k=2` stati (espansione e contrazione). Ma cosa dice il mio approccio fuzzy?
- Il test di omogeneità ha confermato la presenza di gruppi nei dati.
- Applicando il fuzzy k-means e calcolando gli indici, tutti e sei (PC, PE, MPC, ASW, ASWF, XB) hanno suggerito che il numero ottimale di stati è `k=3`!
- Ho confrontato questo risultato con AIC e BIC. Calcolati sul modello MS, AIC suggeriva 4 stati e BIC 3. Calcolati sulla distribuzione marginale, AIC suggeriva 3 stati e BIC addirittura 1 (modello lineare). Un po’ di confusione!
- Per dirimere la questione, ho confrontato i modelli con 1, 2, 3 e 4 stati usando il Model Confidence Set (MCS), una tecnica per selezionare i modelli con performance predittiva statisticamente simile. Risultato? I modelli con 3 e 4 stati non erano significativamente diversi tra loro in termini di errore, ma entrambi battevano nettamente i modelli con 1 e 2 stati. Seguendo il principio di parsimonia, il modello con 3 stati è risultato il preferito.
Stimando il modello MS(3), l’interpretazione è affascinante: oltre ai classici stati di espansione (crescita moderata) e contrazione (crescita negativa), emerge un terzo stato di “boom”, caratterizzato da tassi di crescita eccezionalmente alti. Questo modello cattura meglio le diverse dinamiche del PIL rispetto al tradizionale modello a 2 stati. Confrontando la classificazione fuzzy con quella del modello MS(3), l’ARI non era altissimo (0.48), probabilmente a causa della forte volatilità dei dati, ma migliorava nettamente (fino a 0.82) se applicavo un leggero smoothing alla serie originale, confermando la coerenza di fondo.

Conclusioni (Provvisorie) di un Esploratore
Allora, cosa mi porto a casa da questa esplorazione? L’idea di usare il clustering fuzzy per scovare il numero di stati nei modelli MS sembra non solo sensata, ma anche molto promettente. È un approccio:
- Pratico: Si basa su tecniche ampiamente disponibili e computazionalmente leggere.
- Non Parametrico: Non richiede di specificare a priori la struttura esatta del modello MS.
- Robusto: Sembra funzionare bene anche quando le assunzioni classiche (come la normalità) non sono perfettamente rispettate, un vantaggio non da poco nel mondo reale.
Certo, non è la panacea per tutti i mali. Ci sono casi difficili, e la scelta dell’indice di validazione migliore può dipendere dal contesto. Ma penso che offra uno strumento in più, molto utile, da affiancare (o addirittura precedere) alle analisi più complesse, per affrontare quel fastidioso problema della scelta di `k`. Quando diversi indici fuzzy puntano nella stessa direzione, abbiamo un forte indizio su cui basare la nostra modellizzazione.
Il viaggio non finisce qui, ovviamente. Ci sono tante direzioni da esplorare: usare diverse misure di distanza nel clustering, confrontare con approcci basati sui medoidi, investigare legami con modelli MS con regimi fuzzy… Ma per ora, spero di avervi incuriosito e magari dato uno spunto utile per le vostre prossime analisi di serie storiche!
Fonte: Springer
