Un très bon moyen de trouver la périodicité dans une série de données régulière consiste à inspecter son spectre de puissance après avoir supprimé toute tendance générale . (Cela se prête bien au filtrage automatisé lorsque la puissance totale est normalisée à une valeur standard, telle que l'unité.) L'élimination préliminaire de la tendance (et la différenciation facultative pour éliminer la corrélation en série) est essentielle pour éviter les périodes de confusion avec d'autres comportements.
Le spectre de puissance est la transformée de Fourier discrète de la fonction d'autovariance d'une version lissée de manière appropriée de la série d'origine. Si vous considérez la série temporelle comme un échantillonnage d'une forme d'onde physique, vous pouvez estimer la quantité de puissance totale de la vague transportée dans chaque fréquence. Le spectre de puissance (ou périodogramme ) trace la puissance en fonction de la fréquence. Les cycles (c'est-à-dire les modèles répétitifs ou saisonniers) apparaîtront comme de grandes pointes situées à leurs fréquences.
A titre d'exemple, considérons cette série temporelle (simulée) de résidus à partir d'une mesure journalière prise pendant un an (365 valeurs).
0
Voici un autre graphique des mêmes données, dessiné pour nous aider à voir les modèles périodiques possibles.
Si vous regardez très fort, vous pourrez peut-être discerner un motif bruyant mais répétitif qui se produit 11 à 12 fois. Les longues séquences de valeurs supérieures à zéro et inférieures à zéro suggèrent au moins une autocorrélation positive, montrant que cette série n'est pas complètement aléatoire.
Voici le périodogramme, indiqué pour des fréquences allant jusqu'à 91 (un quart de la longueur totale de la série). Il a été construit avec une fenêtre de Welch et normalisé en fonction de la surface de l'unité (pour tout le périodogramme, pas seulement pour la partie montrée ici).
Le pouvoir ressemble à du "bruit blanc" (petites fluctuations aléatoires) plus deux pics saillants. Ils sont difficiles à manquer, n'est-ce pas? Le plus grand survient à une période de 12 ans et le plus petit à une période de 52 ans. Cette méthode a ainsi détecté un cycle mensuel et un cycle hebdomadaire dans ces données. C'est vraiment tout ce qu'il y a à faire. Pour automatiser la détection des cycles ("saisonnalité"), il suffit de scanner le périodogramme (qui est une liste de valeurs) à la recherche de maxima locaux relativement grands.
Il est temps de révéler comment ces données ont été créées.
Les valeurs sont générées à partir d'une somme de deux ondes sinusoïdales, une de fréquence 12 (d'amplitude au carré 3/4) et une autre de fréquence 52 (d'amplitude au carré 1/4). Ce sont les pics détectés dans le périodogramme. Leur somme est représentée par la courbe noire épaisse. Le bruit normal de variance 2 a ensuite été ajouté, comme indiqué par les barres gris clair s'étendant de la courbe noire aux points rouges. Ce bruit a introduit les bas niveaux de bascule au bas du périodogramme, qui autrement serait juste un zéro 0. Au moins les deux tiers de la variation totale des valeurs sont non périodiques et aléatoires, ce qui est très bruyant: si difficile de distinguer la périodicité simplement en regardant les points. Néanmoins (en partie parce qu'il y a trop de données), trouver les fréquences avec le périodogramme est facile et le résultat est clair.
Des instructions et des conseils judicieux pour le calcul des périodogrammes figurent sur le site de recettes numériques : consultez la section "Estimation du spectre de puissance à l’aide de la FFT". R
a un code pour l'estimation de périodogramme . Ces illustrations ont été créées dans Mathematica 8; le périodogramme a été calculé avec sa fonction "Fourier".