私はデータセット(配列)を持っており、その中に周期性を見つける必要があります。私はどのように進めるべきですか?助けてください。ありがとうございます。私はFFTを使うことができると言ったが、私はどのようにして周期性を与えるのか分からない。あなたの助けがありがたい。データの周期性を調べる方法は?
答えて
データセットを値空間から周波数空間に変換するため、FFTを使用できます。
これは、分析する最初の入力が生成されるように構成された一連の周波数を持つことになります。 http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/
周期性を:
はここを見て...そして、あなたは簡単に特定の周波数で生成された主要なcontribuitionsあるかを認識することができますので、あなたがありますどのように多くの周期を理解し、最も影響力のあるものであるだろうよく定義された用語ではありません。例えば、そのようなデータ:
1、10、1、10、1、11、1、10、1、10、1、11、1、10、1、10、1、11
ます正確ではないが強い周期2、正確な周期6のものとして扱うことができます。
正確な周期性を得るには、データの部分文字列を2回繰り返して指定するだけです。
実際には正確ではないが、ノイズの多い信号の時間領域および周波数領域の方法を使用することができます。
時間ドメインの1つは自己相関です。これは、上記の部分文字列検索のようなものです。データが最大自己類似性を持つシフト値を検索します。
単純な信号の場合、しきい値の遷移をカウントするだけで十分です。
頻度の高いドメインメソッドには、FFT/FHTを使用する方法が含まれます。1/Tの周期性を与えるfequencyの幽霊の最大値を検索します。
Cepstrumを使用しています。
このタスクでは、自己相関を使用することをお勧めします。
FFTは、周期性を見つけるのにの間違ったツールです。
たとえば、2つの単純な正弦波(2秒(0.5 Hz)の周期と3秒(0.333 Hz))を加算して波形を作成する場合を考えてみましょう。この波形は6秒(すなわち、2 * 3)の周期性を有するが、フーリエスペクトルは0.5Hzおよび333Hzに2つのピークのみを示す。
信号の周期性に関するより正確な情報を提供するために、FFTベースのピリオドグラムと自己相関を組み合わせた論文が見つかりました。私は、このメソッドはに探して価値があることができると思う:
この新しい論文は、スペクトラルクラスタリングを多くの注目を受けていない
をAmariei、C.、富田、M. 、&Murray、DB(2014)。 Quantifying periodicity in omics data。細胞および発生生物学のフロンティア。
oscillat.iab.keio.ac.jpで入手可能なRパッケージで実装されています。私は著者とは関係がありませんが、GitHub hereにアクセスしやすいようにコードを入れてください(メインスクリプトhere)。
DFTを使用し、主要なスペクトルパワーに行をグループ化します。これは私の経験で使いやすいものです。明らかにゲノミクスについては、頑強であるように設計されています(コードにはcomputationally heavyと記載されています)ので、アプリケーションによって異なる場合があります。
- 1. Postgresでデータ型の利用可能性を調べる方法
- 2. イベントの周期性
- 3. 騒々しい生物学的データの周期性のテスト:ピリオドグラムの重要性?
- 4. 8バイトのデータの性質を調べる
- 5. HTMLファイルのサイズとデータ転送速度を調べる方法
- 6. 各テーブル行を調べる方法は?
- 7. 構造体を「調べる」方法は?
- 8. どのオブジェクト属性がpickleに失敗するかを調べる方法は?
- 9. JavaScriptの要素のlang属性の計算値を調べる方法は?
- 10. java:配列の整数の周波数を調べる
- 11. シリアルポートの使用方法を調べる
- 12. System.Runtime.Caching.ObjectCache内のキャッシュポリシーを調べる方法
- 13. 離散的周期データの導関数
- 14. Pythonのデータ型を調べる良い方法はありますか?
- 15. 周期約100msのポータブル周期タイマ
- 16. 呼び出し方法とクラス名を調べる方法は?
- 17. RobotFrameworkとJython:パフォーマンスを調べる方法
- 18. Rails - クエリのデータを調べる
- 19. デバイスツリーのオーバーレイでPWM周期を設定する方法
- 20. どのチェンジリストをコピーするのかを調べる方法は?
- 21. fminuncの初期ステップを調整する方法は?
- 22. AudioQueueキューに入れられたデータの再生長を調べる方法
- 23. このConcurrentModificationExceptionがクラッシュする場所を調べる方法は?
- 24. grepと一致するファイルのパターンを調べる方法は?
- 25. 周期を周期で除算する関数
- 26. Rを使用してシステムドライブの数を調べる方法は?
- 27. 2つの画像のメトリクス値を調べる方法は?
- 28. j2meの現在の日付タイムスタンプを調べる方法は?
- 29. Rの文字列の長さを調べる方法は?
- 30. hdfs(Azure blob storage)上のファイルのファイルエンコーディングを調べる方法は?
どのように自己相関を使ってタスクを実装しますか?スケッチを教えていただけますか? –
@MusséRedi:アイデアはとてもシンプルです。自己相関を取ってピーク(0ではない)を見つけるだけです。したがって、唯一の問題は、自己相関をどのようにして結果のピークを見つけるかです。どのようにこれを行うかは、使用しているツールによって異なります。最初からすべてを行うことはできますが、ほとんどの人はデータ分析パッケージを使用します。つまり、私のここでのスケッチは役に立たないので、代わりに、あなたが好きなアプローチを選んで試してみてください。何かがうまくいかない場合は、いくつかの具体的な質問をしてください。 – tom10
http://stackoverflow.com/questions/643699/how-can-i-use-numpy-correlate-to-do-autocorrelationに私のデータを自己相関させるための最初の答えの方法を試しました。これは数字の降順を示します。ピーク値は周期性に関する情報を与えません。サイン関数でテストすると、私は下降する振動を得ます。周期性はどうすればわかるのですか? –