use*_*688 27 r fft time-series period spectral-density
我有一个数据集,其中包含12个月内动物的每小时访问次数.我想使用快速傅立叶变换来检查周期性模式和周期性.在过去,我使用Statistica就是为了这个; 但是,我想用R来得到光谱密度与周期的关系图.在R中有一个简单的方法吗?如果可能的话,我想确定12和24小时的活动高峰.
Jul*_*ora 37
您可以考虑以下功能.
periodogram从TSA包中立即绘制一个周期图.periodogram从GeneCycle返回频率列表和估计的功率谱密度.它是一个包装函数,用于stats::spectrum设置一些特殊选项.spectrumfrom stats允许您选择用于估算谱密度的方法:周期图或使用自回归过程.cpgram从stats图中得出累积周期图以及置信区间.见,例如,?cpgram或者?spectrum对所有的细节,并记住它,比如,TSA::periodogram和GeneCycle::periodogram当的函数的名称一致.
关于如何使用这些功能,还有大量关于在线的示例和教程.见这里的的使用fft和这里的一个更广泛的教程.
此外,正如您可能已经知道的那样,必须取消给定的时间序列.因此,使用例如diff(x)代替x.最后,你的时间序列的长度必须可以被12整除,以便能够识别12和24小时的频率,它可以通过例如x[-(1:(length(x) %% 12))]去x趋时间序列来实现.
用于spectrum进行谱密度分析; 也fft用于基础快速傅里叶变换.