時系列データの形状検出


8

私は時系列の大規模なコレクションを持っています-さまざまな場所で1年間に渡って15分ごと(1日に96回)に測定されました。

私は、各時系列を1年の各日に1つずつ、365個の小さな時系列に分割しました。これらの時系列を見ると、1日には確かに多くの異なる形状があります。いくつかは正弦波に見え、いくつかは一定であり、いくつかはランダムな確率過程のように見え、いくつかは放物線状に見え、いくつかはUのように見えます。

私がやりたいのは、これらの一般的な形状を見つけることができるアルゴリズムを使用することです。クラスタリング、およびクラスターの重心を使用して一般的な形状を定義することを考えましたが、これが正しいかどうかコミュニティに確認したいと思いました。これまでは、メトリックとしてダイナミックタイムワープを見てきましたが、そのメトリックには多くの計算が必要なようです。私も見つけた

SEのhttp://mox.polimi.it/it/progetti/pubblicazioni/quaderni/13-2008.pdf

また、曲線の形状に基づいて時系列クラスタリングを実行することは可能ですか?しかし、この質問は2010年からのものであり、古くなっている可能性があります。

私が持っていた別のアイデアは、次のようにフォーマットされた行列の固有分解を取ることでした:

行列は、i日目に観測されたすべての時系列の行列です。行列M_iのすべての行は、長さ96の時系列です。次に、365の固有分解を行い、固有ベクトルを共通の形状として使用します。これは合理的に聞こえますか?MiiMi

ありがとう!

回答:


7

複雑な曲線分析に基づいて時系列のクラスタリングを深く掘り下げることはしません。データにノイズが多く含まれ、奇妙な(無意味な)クラスタが得られる可能性があるからです。

より簡単な方法は、おそらく傾向季節性(曜日、週末、祝日など)に基づくデータの主要なパターンを見つけることだと思います。X軸に時間(年間通算日、曜日、月間通算日)を付けて、毎日の統計(平均、朝の傾向、夕方の傾向...)をプロットすることでそれを見つけることができます。これにより、データのベースライン、つまり基本的なクラスターが得られます。

たとえばRでは、列1に日付があり、列2に平均がある場合、次のようにして、平日のパターンのベースラインを簡単にプロットできます。

data[,3] <- as.factor(weekdays(data[,1]))
plot(data[,3],data[,2],main='mean by Day of Week')

次のステップは、外れ値を特定し、そこでパターンを見つけることができるかどうかを確認することです。

逆の順序で作業したい場合は、あなたが提案したような自動分析、またはLB_Keoghまたはkmlとして調整されたより多くの時系列のような自動分析を実行している場合、これは問題ありません。ただし、上記のロジックを使用して、結果の意味のある解釈に戻る必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.