J'ai de nombreuses séries chronologiques dans cette colonne de format 1 dans laquelle j'ai le format de date (d / m / an) et de nombreuses colonnes qui représentent différentes séries chronologiques comme ici:
DATE TS1 TS2 TS3 ...
24/03/2003 0.00 0.00 ...
17/04/2003 -0.05 1.46
11/05/2003 0.46 -3.86
04/06/2003 -2.21 -1.08
28/06/2003 -1.18 -2.16
22/07/2003 0.00 0.23
Avec R, comment regrouper les séries chronologiques présentant des tendances similaires?
r
time-series
clustering
daveal81
la source
la source
code
est très similaire à ce que je veux faireRéponses:
Étape 1
Effectuez une transformation de Fourier rapide sur les données de séries chronologiques. Cela décompose vos données de séries chronologiques en composants de moyenne et de fréquence et vous permet d'utiliser des variables de clustering qui ne présentent pas d'autocorrélation lourde comme de nombreuses séries chronologiques brutes.
Étape 2
Si les séries chronologiques ont une valeur réelle, jetez la seconde moitié des éléments de transformée de Fourier rapides car ils sont redondants.
Étape 3
Séparez les parties réelles et imaginaires de chaque élément de transformée de Fourier rapide.
Étape 4
Effectuez un regroupement basé sur un modèle sur les parties réelles et imaginaires de chaque élément de fréquence.
Étape 5
Tracez les centiles des séries chronologiques par grappe pour examiner leur forme.
Alternativement, vous pouvez omettre les composants DC de la transformée de Fourier rapide pour éviter que vos grappes soient basées sur la moyenne et plutôt sur la série définie par la transformée de Fourier, qui représente la forme de la série chronologique.
Vous voudrez également calculer les amplitudes et les angles de phase à partir de la transformée de Fourier rapide afin d'explorer la distribution des spectres de séries chronologiques au sein des grappes. Voir cette réponse StackOverflow sur la façon de procéder pour les données à valeur réelle.
Vous pouvez également tracer les centiles de la forme des séries chronologiques par grappe en calculant la série de Fourier à partir des amplitudes et des angles de phase (l'estimation de la série temporelle résultante ne correspondra pas parfaitement à la série temporelle d'origine). Vous pouvez également tracer les centiles des données brutes des séries chronologiques par cluster. Voici un exemple d'une telle intrigue, issue d'une analyse harmonique des données NDVI que je viens de faire aujourd'hui:
Enfin, si votre série temporelle n'est pas stationnaire (c'est-à-dire, la moyenne et le décalage de la variance dans le temps), il peut être plus approprié d'utiliser une transformée en ondelettes plutôt qu'une transformée de Fourier. Vous le feriez au détriment des informations sur les fréquences tout en obtenant des informations sur l'emplacement.
la source