時系列クラスタリング


8

この形式の多くの時系列があり、日付(d / m / yr)形式の1列と、次のようなさまざまな時系列を表す多くの列があります。

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

Rを使用して、同様の傾向を示す時系列をどのようにグループ化できますか?


3
あなたのアプリケーションでは、トレンドは何ですか?
枢機卿、

4
このトピックまたは非常に類似したトピックをカバーする他の少なくとも3つの質問があります。stats.stackexchange.com / q / 3331/ 1036stats.stackexchange.com / q/ 2777 / 1036stats.stackexchange.com/ q / 3238 / 1036
アンディW

私のアプリケーションの傾向は、類似した形状を持つTSのグラフの曲線のグループです。つまり、季節的な傾向を示す曲線のグループと、長期的な傾向を示す曲線のグループです。……
daveal81

はい、このトピック[リンク] stats.stackexchange.com/questions/3331/… 太字 code は、私がやりたいことに非常に似ています
daveal81

回答:


6

ステップ1

時系列データに対して高速フーリエ変換を実行します。これにより、時系列データが平均と周波数成分に分解され、多くの生の時系列のような重い自己相関を示さない変数をクラスタリングに使用できるようになります。

ステップ2

時系列が実数値の場合、高速フーリエ変換要素の後半は冗長であるため破棄します。

ステップ3

各高速フーリエ変換要素の実数部と虚数部を分離します。

ステップ4

各周波数要素の​​実数部と虚数部でモデルベースのクラスタリングを実行します。

手順5

時系列のパーセンタイルをクラスターごとにプロットして、その形状を調べます。

または、高速フーリエ変換のDCコンポーネントを省略して、クラスターが平均に基づくのではなく、時系列の形状を表すフーリエ変換によって定義される系列に基づくのを回避することもできます。

また、クラスター内の時系列スペクトルの分布を調べることができるように、高速フーリエ変換から振幅と位相角を計算することもできます。実際の値のデータに対してそれを行う方法については、このStackOverflowの回答を参照してください。

振幅と位相角からフーリエ級数を計算することにより、時系列形状のパーセンタイルをクラスターごとにプロットすることもできます(結果の時系列推定は元の時系列と完全には一致しません)。生の時系列データのパーセンタイルをクラスターごとにプロットすることもできます。このようなプロットの例を次に示します。これは、今日行ったNDVIデータの調和解析から得られました。

RのMclustパッケージを使用したモデルベースのクラスタリングから導出されたクラスターによる期間レベルのNDVIメジャーの1、25、50、75、99パーセンタイル

最後に、時系列が定常的でない場合(つまり、時間の経過に伴う平均および分散シフト)、フーリエ変換よりもウェーブレット変換を使用する方が適切な場合があります。位置に関する情報を得ながら、周波数に関する情報を犠牲にしてそれを行います。


ところで、私は今日これをやっただけです!!!
ブラッシュ均衡

1
ステップを実行するためのサンプルコードを提供できますか?
pocketfullofcheese 2014年

こんにちは、@ pocketfullofcheese。私がこれを行ったときに仲間だった研究センターのリモートデスクトップでそれを見つける必要があります。少し時間がかかるかもしれませんが、バックログに入れました。
ブラッシュ均衡

上記の私のコメントを誰かが見た場合に備えて、リモートデスクトップへのアクセスを失う前に、そのコードにアクセスできませんでした。謝罪いたします。
Brash Equilibrium
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.