Un ottimo modo per trovare la periodicità in qualsiasi serie regolare di dati è quello di ispezionarne lo spettro di potenza dopo aver rimosso qualsiasi tendenza generale . (Questo si presta bene allo screening automatizzato quando la potenza totale è normalizzata a un valore standard, come l'unità.) La rimozione preliminare della tendenza (e la differenziazione opzionale per rimuovere la correlazione seriale) è essenziale per evitare di confondere i periodi con altri comportamenti.
Lo spettro di potenza è la trasformata discreta di Fourier della funzione di autocovarianza di una versione opportunamente levigata della serie originale. Se si pensa alle serie temporali come al campionamento di una forma d'onda fisica, è possibile stimare la quantità di potenza totale dell'onda trasportata all'interno di ciascuna frequenza. Lo spettro di potenza (o periodogramma ) traccia la potenza rispetto alla frequenza. I cicli ciclici (cioè ripetitivi o stagionali) appariranno come grandi picchi situati alle loro frequenze.
Ad esempio, si consideri questa serie temporale (simulata) di residui da una misurazione giornaliera presa per un anno (365 valori).
I valori oscillano attorno allo senza tendenze evidenti, dimostrando che tutte le tendenze importanti sono state rimosse. La fluttuazione appare casuale: nessuna periodicità è evidente.0
Ecco un'altra trama degli stessi dati, disegnata per aiutarci a vedere possibili schemi periodici.
Se sembri davvero duro, potresti essere in grado di discernere un modello rumoroso ma ripetitivo che si verifica dalle 11 alle 12 volte. Le sequenze longish di valori sopra lo zero e sotto lo zero suggeriscono almeno un po 'di autocorrelazione positiva, mostrando che questa serie non è completamente casuale.
Ecco il periodogramma, mostrato per frequenze fino a 91 (un quarto della lunghezza totale della serie). È stato costruito con una finestra di Welch e normalizzato all'area dell'unità (per l'intero periodogramma, non solo la parte mostrata qui).
Il potere sembra "rumore bianco" (piccole fluttuazioni casuali) più due picchi prominenti. Sono difficili da perdere, vero? Il più grande si verifica in un periodo di 12 e il più piccolo in un periodo di 52. Questo metodo ha quindi rilevato un ciclo mensile e un ciclo settimanale in questi dati. Questo è davvero tutto ciò che c'è da fare. Per automatizzare il rilevamento di cicli ("stagionalità"), basta scansionare il periodogramma (che è un elenco di valori) alla ricerca di massimi locali relativamente grandi.
È tempo di rivelare come sono stati creati questi dati.
I valori sono generati da una somma di due onde sinusoidali, una con frequenza 12 (di ampiezza quadrata 3/4) e un'altra con frequenza 52 (di ampiezza quadrata 1/4). Questi sono i picchi rilevati nel periodogramma. La loro somma è mostrata come la spessa curva nera. Iid È stato quindi aggiunto il rumore normale della varianza 2, come mostrato dalle barre grigio chiaro che si estendono dalla curva nera ai punti rossi. Questo rumore ha introdotto le oscillazioni di basso livello nella parte inferiore del periodogramma, che altrimenti sarebbe solo un piatto 0. Completamente i due terzi della variazione totale dei valori è non periodica e casuale, il che è molto rumoroso: ecco perché è così difficile distinguere la periodicità semplicemente guardando i punti. Tuttavia (in parte perché ci sono così tanti dati) trovare le frequenze con il periodogramma è facile e il risultato è chiaro.
Istruzioni e buoni consigli per il calcolo dei periodogrammi compaiono sul sito Ricette numeriche : cercare la sezione "Stima dello spettro di potenza mediante FFT". R
ha un codice per la stima del periodogramma . Queste illustrazioni sono state create in Mathematica 8; il periodogramma è stato calcolato con la sua funzione "Fourier".