我有一个小时的访问期间的12个月的动物数量的数据集。我想使用的快速傅立叶变换检查循环模式和周期。在过去,我已经使用STATISTICA此这一点;不过,我想用R获得频谱密度与周期的曲线图。有没有一种简单的方法R中做到这一点?我想如果可能的话在活动确定12和24小时的峰值。
您可以考虑以下功能。
periodogram
包TSA
立即绘制周期图。periodogram
GeneCycle
返回频率和估计的功率谱密度的列表。这是设置一些特殊的选项stats::spectrum
的包装功能。spectrum
stats
允许选择用于估计频谱密度的方法:要么周期图或使用自回归过程。cpgram
stats
绘制累积周期图与置信区间一起。见,例如,?cpgram
或?spectrum
的所有细节,并记住它,例如,TSA::periodogram
和GeneCycle::periodogram
时的函数的名称一致。
也有大量的实例和在线教程关于如何使用这些功能。见here为fft
和here的使用率更加广泛的教程。
而且,正如你可能已经知道,在给定的时间序列必须去趋势。因此,使用,例如diff(x)
,代替x
。最后,时间序列的长度必须是12整除,以能够识别12小时和24小时的频率,它可以通过,例如,x[-(1:(length(x) %% 12))]
,其中x
是一个去趋势的时间序列来实现。
使用spectrum
做谱密度分析;也fft
为基础快速傅立叶变换。