Tenho muitas séries temporais nesta coluna do formato 1, na qual tenho o formato de data (d / m / ano) e muitas colunas que representam séries temporais diferentes, como aqui:
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
Com o R, como posso agrupar as séries temporais que mostram tendências semelhantes?
r
time-series
clustering
daveal81
fonte
fonte
code
é muito semelhante ao que eu quero fazerRespostas:
Passo 1
Realize uma transformação rápida de Fourier nos dados da série temporal. Isso decompõe seus dados de séries temporais em componentes de média e frequência e permite usar variáveis para cluster que não mostram autocorrelação pesada, como muitas séries temporais brutas.
Passo 2
Se as séries temporais tiverem valor real, descarte a segunda metade dos elementos de transformação rápida de Fourier porque são redundantes.
etapa 3
Separe as partes reais e imaginárias de cada elemento de transformação rápida de Fourier.
Passo 4
Execute o agrupamento baseado em modelo nas partes reais e imaginárias de cada elemento de frequência.
Etapa 5
Plote os percentis da série temporal por cluster para examinar sua forma.
Como alternativa, você pode omitir os componentes DC da transformação rápida de Fourier para evitar que seus clusters sejam baseados na média e, em vez disso, nas séries definidas pela transformação de Fourier, que representa o formato da série temporal.
Você também desejará calcular as amplitudes e ângulos de fase da transformação rápida de Fourier, para poder explorar a distribuição dos espectros de séries temporais nos clusters. Veja esta resposta StackOverflow sobre como fazer isso para dados com valor real.
Você também pode plotar os percentis da forma das séries temporais por cluster, computando a série Fourier a partir das amplitudes e ângulos de fase (a estimativa da série temporal resultante não corresponderá perfeitamente à série temporal original). Você também pode plotar os percentis dos dados brutos das séries temporais por cluster. Aqui está um exemplo de tal gráfico, que surgiu de uma análise harmônica dos dados do NDVI que fiz hoje:
Finalmente, se sua série temporal não for estacionária (ou seja, mudança de média e variância ao longo do tempo), pode ser mais apropriado usar uma transformação wavelet em vez de uma transformação Fourier. Você faria isso à custa de informações sobre frequências enquanto obtinha informações sobre a localização.
fonte