I costi di Amazon Web Services o Google Cloud risultano spesso poco chiari ed è difficile separare il segnale dal rumore per capire ciò che conta davvero. Questo articolo spiega come individuare i trend di costo o di utilizzo con l'analisi di Mann-Kendall.

filtrare il "rumore" della fatturazione di AWS o Google Cloud non è semplice
Immagini di trovarsi davanti a serie storiche sovrapposte che ripartiscono la sua spesa cloud per servizio nell'ultimo mese (vedi sotto). Quando le serie sono troppe (nel nostro esempio, 50), capire a occhio nudo quali siano in crescita o in calo diventa quasi impossibile — eppure è proprio questo, di solito, ciò che ci interessa.
In questo articolo vedrà come separare il segnale dal rumore quando si lavora con grandi quantità di serie storiche.

Serie storiche sovrapposte in un unico grafico.
Esistono diversi approcci per verificare se in una determinata serie storica sia presente un trend monotono lineare.
Individuare i trend con il test di Mann-Kendall
In DoiT International, all'interno delle tecnologie di Cloud Management che sviluppiamo per i nostri clienti, abbiamo adottato il test di Mann-Kendall per realizzare una funzionalità di Trend Analysis con un solo clic [ guarda il video]. L'approccio è simile a quello dell'analisi di regressione lineare parametrica, utilizzata per verificare se la pendenza della retta di regressione stimata sia diversa da zero. La regressione lineare richiede però che i residui della retta interpolata siano distribuiti normalmente: un'ipotesi che il test MK non impone, trattandosi di un test non parametrico.

La Trend Analysis in azione sulla Cloud Management Platform (CMP) di DoiT International
Le ipotesi alla base del test di Mann-Kendall
Il test, applicato a una serie storica, si fonda sulle seguenti ipotesi:
1. In assenza di un trend, le misurazioni rilevate nel tempo sono indipendenti e identicamente distribuite.
2. Le misurazioni rappresentano gli stati reali delle grandezze osservate nel momento della rilevazione.
3. I metodi utilizzati per la raccolta dei campioni, le misurazioni strumentali e la gestione dei dati sono privi di bias.
Limiti da tenere presenti
Il test di Mann-Kendall non è adatto a dati con periodicità (ovvero con effetti stagionali). Per garantirne l'efficacia, è consigliabile rimuovere dai dati tutti gli effetti periodici noti in una fase di pre-elaborazione, prima di calcolare il test.
Decomposizione delle serie storiche
Possiamo ricorrere alla decomposizione stagionale delle serie storiche tramite Loess (STL) per scomporre una serie storica nelle componenti stagionale, di trend e irregolare. La decomposizione si esegue facilmente in Go grazie al package stl.
Il metodo stl.Decompose richiede i seguenti parametri obbligatori:
- La serie storica da decomporre
- La periodicità dei dati
- L'ampiezza stagionale
- Il tipo di modello
Il modello può essere stl.Additive(), quando le variazioni intorno al trend non dipendono dal livello della serie, oppure stl.Multiplicative(), se il trend è proporzionale al livello della serie stessa.
Può decomporre la sua serie storica e accedere a ciascuna componente in questo modo:
res := stl.Decompose(timeSeries, periodicity, width, modelType)
trend := res.Trend
seasonal := res.Seasonal
residual := res.Resid
Qui sotto trova un esempio di serie storica decomposta con stagionalità settimanale, basata sul modello moltiplicativo. Si nota chiaramente che i valori sono in crescita e che ogni sette giorni si verificano dei "cali" stagionali.

Esempio di serie storica scomposta nelle componenti di trend, stagionale e residuale.
Come eseguire la propria analisi dei trend
Esegua lo script qui sotto per vedere un esempio di come il test di Mann-Kendall individua un trend monotono in una serie storica di esempio.
Se nella sua serie storica è presente un trend, potrebbe esserle utile calcolare la pendenza della retta di regressione: un valore che indica con quale rapidità cambiano i dati. È un'informazione preziosa, ad esempio, per filtrare tutte le serie storiche la cui pendenza di regressione risulti inferiore o superiore a X gradi.
Scopra come abbiamo implementato la Trend Analysis nella Cloud Management Platform di DoiT International qui!