2つの時系列をギャップと異なるタイムベースに関連付ける方法は?


10

私は尋ねたこの質問を StackOverflowの上の上に、そしてここでそれを尋ねることをお勧めしました。


2つの時系列の3D加速度計データがあり、タイムベースが異なり(クロックは異なる時間に開始され、サンプリング時間中にわずかにクリープがあり)、異なるサイズの多くのギャップが含まれています(別々に書き込むことに関連する遅延のため)フラッシュデバイス)。

私が使用している加速度計は、安価なGCDC X250-2です。加速度計を最高のゲインで実行しているので、データには大きなノイズフロアがあります。

時系列にはそれぞれ約200万のデータポイント(512サンプル/秒で1時間以上)があり、約500の対象となるイベントが含まれます。一般的なイベントは100〜150サンプル(それぞれ200〜300 ms)です。これらのイベントの多くは、フラッシュ書き込み中のデータ停止の影響を受けます。

したがって、データは原始的ではなく、非常にきれいでもありません。しかし、私の眼球検査では、興味のある情報が明確に含まれていることが示されています(必要に応じて、プロットを投稿できます)。

加速度計は同様の環境にありますが、適度に結合されているだけです。つまり、各加速度計からどのイベントが一致するかを目で確認できますが、ソフトウェアでこれを行うことはできません。物理的な制限により、デバイスは軸が一致しないさまざまな方向にも取り付けられますが、それらは私が作成できる限り直交に近いです。したがって、たとえば、3軸の加速度計AおよびBの場合、+ Axは-By(上下)にマップされ、+ Azは-Bx(左右)にマップされ、+ Ayは-Bz(前後)にマップされます。 。

私の最初の目標は、縦軸の衝撃イベントを関連付けることですが、最終的には、a)軸のマッピングを自動的に検出し、b)マップされたエースのアクティビティを関連付け、c)2つの加速度計の動作の違い(ねじるなど)を抽出しますまたは屈曲)。

時系列データの性質により、Pythonのnumpy.correlate()は使用できなくなります。私もR's Zooパッケージを見てきましたが、それで進んでいません。信号解析のさまざまな分野を参考にしてきましたが、進歩はありませんでした。

誰かが私にできること、または私が研究すべきアプローチについての手がかりはありますか?

2011年2月28日更新:データの例を示すいくつかのプロットをここに追加しました。


1
@BobC、おそらくモデレーターの1人があなたの投稿をこのサイトに移行することができます。それが最も合理的です。技術的な質問については、まず、FFTを使用して相関を行っていますか?それは、まともなコンピューター上の200万のデータポイントで実現可能です。信号対雑音比はかなり高いように見えるので、ビジネスに参加する必要があります。迅速かつ汚いカットは、最後の使用可能なサンプルまたはゼロで欠落データを埋めることです。サンプリング間隔の違いからのクリープは、処理するデータの最も困難な「機能」かもしれません。
枢機卿

@cardinal:私は実際にFFTを試しましたが、結果としてゴミが出るだけでした。データですぐに見える「興味深い」機能は、FFTのノイズと区別がつきません。しかし、私はデータセット全体に対してのみFFTを実行しました。おそらく、移動ウィンドウFFTはより良い結果を提供しますが、それを実装するための計算上効率的な方法を見つけることはまだできていません。ウェーブレット変換が役立つのではないかと思いますが、それにはあまり慣れていません(ただし、ゆっくりと学習しています)。
BobC、2011年

1
@BobC、つまり、相関を計算するためにFFTベースの実装を検討しましたか?直接たたみ込みはですが、FFTベースの実装ではこのが削減され、実現可能になります。200万データポイントのFFT自体を見ると、周波数分解能は非常に高くなります。サンプリングクリープやその他のものは、周波数ごとに信号を洗い流すようにバインドされています。しかし、信号をノイズから引き出すために、多くのビンに集約できるはずです。ウェルチアプローチのようなもの、またはカスタムのウィンドウ処理手法。O n log n O(n2)O(nlogn)
枢機卿

@BobC、頭の上から、オーバーラップアンドアドまたはオーバーラップアンドセーブアルゴリズムのいくつかのバリアントを使用して、スライディングウィンドウFFTを実行できるようです。ウィンドウ内でサンプルをスライドさせることは、位相シフトに相当するので、必要なのは、左端で「落ちる」サンプルと右端で「入る」サンプルを補正することだけです。
枢機卿

こんにちは、似たような質問があります。1つの列が値に対応し、2番目の列が時間差に対応する行列(前の値以降)で表される2つの時系列があります。これらの2つの行列間の相関関係を見つけるにはどうすればよいですか?xcorr2()を実行しようとしましたが、それは正しくないようで、xcorrを実行すると、値のみとの相関関係が計算されて考慮されますが、時間も考慮します。私はここで本当に混乱しています、FFTは役に立ちますか?私はそれについてどう思いますか?

回答:


12

問題は、2つの不規則にサンプリングされた時系列(1次元の確率的プロセス)間の相関関係を計算し、それを使用して、それらが最大に相関している(それらの「位相差」)時間オフセットを見つけることです。

時系列データは体系的に(一定の時間間隔で)収集されると推定されるため、この問題は通常、時系列分析では対処されません。それはむしろ時系列の多次元一般化に関係する地球統計学の州で​​す。典型的な地理統計データセットは、不規則な間隔の場所での地質サンプルの測定値で構成されています。

不規則な間隔では、場所のペア間の距離は異なります。2つの距離が同じであってはなりません。地球統計学はこれを経験的バリオグラムで克服します。これは、 2/2の「典型的な」(多くの場合、平均値または中央値)値を計算します。ここで、は、点測定値を示します。また、と間の距離は、「ラグ」と呼ばれる間隔内に収まるように制約されます。プロセスが定常であり、共分散を持っていると仮定すると、準分散の期待値は最大共分散(任意のに等しい)から、Z P P 、P 、Q Z V R Z P のp Z P Z Q (z(p)z(q))2/2z(p)ppqZVar(Z(p))pZ(p)および。ラグへのこのビニングは、不規則な間隔の問題に対処します。Z(q)

順序付けられた測定のペアが各ポイントで行われると、との間の経験的クロスバリオグラムを同様に計算し、それによって任意のラグでの共分散を推定できます。 。 クロスバリオグラムの1次元バージョンが必要です。Rのパッケージはgstatsgeostat、とりわけ、クロスバリオグラム推定されます。データが1次元であることを心配しないでください。ソフトウェアがそれらと直接連携しない場合は、一定の2番目の座標を導入するだけで、2次元で表示されます。z w(z(p),w(p))zw

200万点を使用すると、定常性からの小さな偏差を検出できるはずです。2つの時系列間の位相差も時間とともに変化する可能性があります。期間全体にわたって間隔を置いて配置されたさまざまなウィンドウに対して個別にクロスバリオグラムを計算することにより、これに対処します。

@cardinalはすでにコメントでこれらのポイントのほとんどを取り上げています。この回答の主な貢献は、空間統計パッケージを使用して作業を行い、地球統計学の手法を使用してこれらのデータを分析することです。計算効率に関する限り、完全なたたみ込み(クロスバリオグラム)は必要ありません。位相差に近い値が必要なだけです。これにより、ではなくが作成されます。ここで、は計算するラグの数です。そのため、すぐに使用できるソフトウェアでも実行できる場合があります。そうでない場合、直接畳み込みアルゴリズムは簡単に実装できます。O n 2kO(nk)O(n2)k


@whuber、良いコメントと提案。私が質問を正しく読んでいる場合、1つの主な懸念はサンプリングの時点の不確実性であると思います。これは、間隔が不規則であるが、それでも既知であると(少なくとも高精度で)想定されている一般的な地球統計学のフレームワークとは少し異なる場合があります。大まかなモデルは、シリーズ1の番目のポイントが時刻場合、固定場合、シリーズ2の番目のポイントはあり、はおそらく数ミリ秒程度で、はごくわずかです。T 、N = N TのT N τ N = T N + α + β N α βntn=nttnτn=tn+α+βnαβ
枢機卿、

@Cardinal私は質問からそれを得ませんでした。計算量がそれほど多くないを推定する方法は考えられません。おそらく時系列を正味の影響が無視できるグループに分割することによって?βββ
whuber

@ whuber、@ BobC、私は同様の問題や問題を扱った過去の経験に基づいて半教育的な推測をしています。私が見たほとんどのアプローチは計算集約的であり、印象に残りません。1つの試みは、動的なタイムワーピングのようもの、またはラムゼイとシルバーマンがカーブ登録と呼んでいるものを経由する可能性があります。これらのいずれかがこのサイズのデータ​​セットで実現可能かどうかは、私には不明です。
枢機卿

これに頭を悩ませるには少し時間がかかります。あなたが言及したRパッケージの例から始めましょう。
BobC、2011年

@BobC、タイミング非同期性のために私が与えたラフモデルはあなたが持っているものに近いですか?私はそれが「ランダムな初期オフセット」+「線形誤差」であると考えています。後者は、2つのデバイス間のサンプリング間隔の小さな一定の差によるものです。次に、いくつかの小さなランダムエラーが追加されます。たとえば、2つの異なるuCの割り込み処理が原因です。
枢機卿、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.