TIME SERIES & MACHINE LEARNING · 2026
High-Dimensional Time Series & Air Quality Forecasting
Da 516 sensori Taiwan a un benchmark PM2.5 su Beijing: come ho affrontato l'alta dimensionalità, costruito baseline credibili e valutato il contributo delle variabili ambientali, senza nascondere i limiti dei risultati.
ESPLORA IL CODICE SU GITHUB ↗01 / LA DOMANDA
Un sensore racconta un punto. Una rete racconta un sistema.
Le concentrazioni di particolato cambiano nel tempo, ma non in modo isolato. Vento, condizioni atmosferiche ed emissioni possono influenzare più aree contemporaneamente. Mi interessava capire se questa dipendenza potesse diventare informazione utile, invece che una complicazione da ignorare.
516 serie, poche osservazioni
Nel progetto universitario, sviluppato con Emidio Grillo e Luca Nudo, abbiamo studiato 744 osservazioni orarie di 516 sensori Taiwan AirBox. Un VAR tradizionale richiede rapidamente troppi parametri: la regolarizzazione aiuta a gestire la dimensionalità e a controllare la complessità.
R · Serie temporali multivariate · VAR regolarizzatoLa previsione deve battere qualcosa di semplice
Ho poi affrontato un problema distinto: prevedere il PM2.5 dell'ora successiva sui dati di 12 stazioni Beijing. Il riferimento era volutamente elementare: usare come previsione il valore appena osservato. Ogni modello più complesso doveva dimostrare di aggiungere valore.
Python · Forecasting · Machine LearningQuando le variabili superano le osservazioni
Ogni sensore potrebbe dipendere dal passato degli altri 515. La matrice dei coefficienti cresce quadraticamente con il numero di serie, mentre la storia osservata resta corta. La regolarizzazione serve a limitare la complessità, non a creare nuove osservazioni.
Da Taiwan a Beijing: un’altra domanda, un altro dataset.
Il lavoro universitario si concentrava sull’alta dimensionalità. Nel benchmark successivo ho studiato invece la previsione a un’ora e il contributo di nuove variabili. I risultati non sono trasferibili automaticamente da un contesto all’altro.
Dalla Cina alle 12 stazioni di Beijing
Esplora la posizione delle stazioni sulla cartografia reale. Parti dalla Cina intera, avvicinati a Beijing e seleziona un punto arancione per visualizzare le coordinate.
I due dataset non sono intercambiabili: Beijing non è un test del modello Taiwan e i risultati non vengono confrontati direttamente.
02 / LE SCELTE
Prima definire una previsione corretta. Poi scegliere il modello.
Un obiettivo misurabile
Prevedere PM2.5 all'ora t usando soltanto misure dell'ora t−1 o precedenti. Nessuna variabile ambientale osservata nello stesso istante da prevedere.
Una baseline credibile
Partire dalla persistenza. È semplice, riproducibile e spesso competitiva nelle previsioni a brevissimo termine.
Esperimenti progressivi
Nel benchmark riproducibile, confrontare la persistenza con LightGBM basato sui ritardi PM2.5 e con la versione arricchita da covariate ambientali ritardate.
Una valutazione temporale
Separare i periodi cronologicamente, valutare tutti i modelli sulle stesse osservazioni valide e documentare ore escluse e previsioni negative.
03 / DENTRO I MODELLI
Non basta usare un modello: bisogna sapere cosa sta imparando.
La parte più interessante del progetto è il legame tra due problemi: modellare le dipendenze in una rete di serie temporali e trasformare quelle dipendenze in una previsione verificabile. Le formule qui sotto descrivono il principio dei metodi; dove parlo del VAR mi riferisco allo studio Taiwan, mentre la pipeline LightGBM appartiene all'estensione Beijing.
VAR: ogni serie può dipendere dal passato delle altre
In un Vector Autoregression di ordine p, il vettore delle misure all'istante t è spiegato dai vettori osservati nelle p ore precedenti. Ogni matrice di coefficienti descrive quali serie influenzano quali altre, a uno specifico ritardo.
Con d = 516, un VAR con un solo ritardo ha già 266.256 coefficienti autoregressivi, prima di contare l'intercetta. A fronte di 744 osservazioni orarie, stimarli senza vincoli non è una strada realistica.
Una penalizzazione rende il problema più stabile e può favorire una struttura sparsa: non tutte le connessioni tra sensori devono essere diverse da zero. È il principio che motiva il VAR regolarizzato nel progetto universitario.
Il parametro λ controlla il compromesso: valori più grandi spingono più coefficienti verso zero; valori troppo grandi possono eliminare anche relazioni utili. Questa formula illustra una possibile regolarizzazione L1, senza attribuirla come specifica implementazione ai file originali non pubblicati.
Persistenza: il modello da battere
Prima di introdurre algoritmi più sofisticati, serve un riferimento che chiunque possa comprendere: la previsione dell'ora successiva coincide con l'ultima misura osservata.
Su orizzonti di un'ora il PM2.5 è spesso persistente: una baseline così semplice può già ottenere buoni risultati. Se un modello più complesso non la supera, la complessità aggiunta è difficile da giustificare.
LightGBM: tanti alberi piccoli che correggono gli errori
LightGBM è un'implementazione efficiente del gradient boosting su alberi decisionali. Un albero suddivide lo spazio delle variabili in regioni e produce una previsione per ogni regione. Nel boosting, gli alberi vengono aggiunti progressivamente per ridurre l'errore della previsione corrente.
Qui x contiene lo storico del PM2.5 di tutte le 12 stazioni (ritardi 1, 2, 3, 6, 12 e 24 ore), le componenti cicliche del calendario e, nella versione completa, misure ambientali ritardate di un'ora. L'algoritmo può catturare interazioni e non linearità senza doverle specificare a mano.
Nel codice pubblicato uso 70 alberi, learning rate 0,045, massimo 31 foglie e regolarizzazione L2 pari a 10. Il numero di alberi e il learning rate regolano quanto gradualmente viene costruita la previsione; la struttura degli alberi e la penalizzazione ne limitano la complessità. Questi parametri sono una configurazione storica fissata per il confronto, non il risultato di una selezione su un test incontaminato.
MAE e RMSE: due modi diversi di misurare l'errore
Una previsione va giudicata su osservazioni che non sono state usate per stimare il modello. Qui confronto le previsioni sulle stesse ore valide e riporto sia l'errore assoluto medio sia la radice dell'errore quadratico medio.
MAE · errore medio assoluto
È la metrica principale: risponde alla domanda «di quanto sbaglio, in media?».
RMSE · radice dell'errore quadratico medio
È utile quando vogliamo evidenziare maggiormente le previsioni molto sbagliate.
Un punto metodologico decisivo: il modello LightGBM è addestrato a minimizzare una perdita quadratica, mentre il risultato principale è riportato in MAE. Non sono la stessa cosa: un modello può migliorare una metrica senza migliorare necessariamente l'altra.
Il VAR aiuta a ragionare sulle dipendenze fra serie. La persistenza definisce il livello minimo da superare. LightGBM prova a sfruttare relazioni non lineari e variabili aggiuntive. MAE e RMSE misurano il risultato. E la separazione temporale — insieme alla consapevolezza dei limiti del test retrospettivo — determina quanto possiamo fidarci delle conclusioni.
DAL MODELLO ALLA DECISIONE
Perché proprio questi modelli?
Un buon esperimento non è una gara a chi usa l’algoritmo più complicato. Ho organizzato il confronto per rispondere a domande successive, ciascuna con una scelta verificabile.
Quanto è difficile prevedere l’ora successiva?
Persistenza. È il riferimento minimo: se non supero l’ultima osservazione disponibile, il modello complesso non aggiunge valore.
Il passato della rete è sufficiente?
LightGBM con soli ritardi PM2.5. Misura il contributo di uno storico multistazione senza aggiungere variabili meteorologiche.
Le condizioni ambientali migliorano la previsione?
LightGBM con covariate ritardate. Mantengo la famiglia di modello e confronto il guadagno dovuto all’aggiunta delle informazioni ambientali.
Questo confronto è un’ablation study retrospettivo, non una prova causale del ruolo della meteorologia: variabili correlate e scelte precedenti possono influenzare i risultati.
04 / COSA È EMERSO
Le informazioni ambientali aiutano. Ma il confronto conta più del numero.
Su 102.298 osservazioni stazione-ora valutabili del 2016, LightGBM con informazioni ambientali ritardate ha ridotto l'errore medio assoluto rispetto alla persistenza. Il confronto è retrospettivo: il periodo è stato consultato più volte durante lo sviluppo.
Stesse osservazioni per tutti i modelli. MAE espresso nelle unità PM2.5 del dataset; le previsioni negative non sono state corrette a posteriori.
Due metriche, una conclusione coerente
MAE ↓ minore è meglio
RMSE ↓ minore è meglio
Il miglioramento riguarda tutte le 12 stazioni?
Il vantaggio non dipende da una sola metrica o da una sola stazione. Tuttavia la coerenza retrospettiva non sostituisce una verifica su dati nuovi. Per studiare la distribuzione degli errori orari servono previsioni e target abbinati: non sarebbe corretto inventare una curva da questi soli aggregati.
La meteorologia aggiunge informazione
La versione con variabili ambientali ha ottenuto un MAE inferiore alla versione con solo PM2.5 in tutte le 12 stazioni, nel confronto archiviato.
Un buon risultato storico non è una garanzia
La scelta dei modelli è stata influenzata dall'esplorazione degli stessi anni. Per misurare la generalizzazione serve un nuovo test indipendente.
Guarda il confronto per tutte le 12 stazioni +
| Stazione | Persistenza · MAE | LightGBM completo · MAE |
|---|---|---|
| Aotizhongxin | 9.898 | 8.635 |
| Changping | 8.939 | 8.322 |
| Dingling | 8.409 | 7.868 |
| Dongsi | 10.411 | 9.267 |
| Guanyuan | 9.997 | 8.904 |
| Gucheng | 9.875 | 8.956 |
| Huairou | 8.218 | 7.348 |
| Nongzhanguan | 9.958 | 8.785 |
| Shunyi | 10.193 | 9.126 |
| Tiantan | 9.993 | 8.913 |
| Wanliu | 9.411 | 8.453 |
| Wanshouxigong | 10.667 | 9.622 |
Valori arrotondati a tre decimali dalla tabella pubblicata nel repository. Per il confronto completo con la versione solo PM2.5, consulta i risultati GitHub.
05 / COSA HO IMPARATO
Un modello convincente deve saper spiegare anche i propri limiti.
Questo lavoro mi ha insegnato che ottenere una metrica migliore è soltanto una parte del processo. Bisogna chiedersi se i dati sarebbero davvero disponibili al momento della previsione, quali osservazioni mancano, quanto il confronto sia equo e se la valutazione sia rimasta indipendente dalle scelte fatte.
Test indipendente ancora da fare
Il 2016 è stato utilizzato durante l'esplorazione: non lo presento come holdout incontaminato.
La disponibilità è parte del modello
La latenza delle misure fra stazioni non è verificata; alcune ore con dati mancanti non entrano nelle metriche.
Risultati verificabili, senza scorciatoie
Codice, protocollo e metriche sono pubblicati. La verifica in un ambiente completamente pulito resta un passaggio aperto.
Non partire dall'algoritmo. Partire dal problema, costruire un confronto onesto e capire perché funziona.
È questo il metodo che voglio portare anche in un contesto professionale: usare la statistica e il machine learning per arrivare a decisioni motivate, non soltanto a un punteggio.