12 か月間に動物が 1 時間ごとに訪れた回数のデータセットがあります。高速フーリエ変換を使用して、循環パターンと周期性を調べたいと考えています。過去に、これには Statistica を使用しました。ただし、R を使用して、スペクトル密度と周期のプロットを取得したいと考えています。Rでこれを行う簡単な方法はありますか? 可能であれば、アクティビティの 12 時間と 24 時間のピークを特定したいと思います。
45350 次
2 に答える
40
次の関数を検討できます。
periodogram
パッケージからTSA
すぐにピリオドグラムをプロットします。periodogram
fromGeneCycle
は、周波数と推定パワー スペクトル密度のリストを返します。stats::spectrum
これは、いくつかの特別なオプションが設定された のラッパー関数です。spectrum
fromstats
では、スペクトル密度の推定に使用する方法 (ピリオドグラムまたは自己回帰プロセスの使用) を選択できます。cpgram
fromstats
は信頼区間と共に累積ピリオドグラムをプロットします。
すべての詳細については、「?cpgram
または」を参照してください。関数の名前が一致する場合は、「および」であることに注意してください。?spectrum
TSA::periodogram
GeneCycle::periodogram
これらの関数の使用方法に関するオンラインの例やチュートリアルも多数あります。の使用法についてはこちらを参照してください。さらに広範なチュートリアルについてはfft
、こちらを参照してください。
また、すでにご存じのとおり、特定の時系列はトレンド除去する必要があります。したがって、たとえば、のdiff(x)
代わりに使用しx
ます。そして最後に、12 時間と 24 時間の頻度を識別できるように、時系列の長さは 12 で割り切れる必要があります。たとえば、x[-(1:(length(x) %% 12))]
はx
トレンド除去された時系列です。
于 2012-12-23T12:58:57.787 に答える
8
spectrum
スペクトル密度分析を行うために使用します。fft
基本高速フーリエ変換にも使用できます。
于 2012-12-23T11:58:38.133 に答える