我有一个数据集,记录了一只动物在12个月内每小时的访问次数。我想用快速傅立叶变换来检验周期性模式和周期性。在过去,我曾使用Statistica进行此操作;然而,我想用R得到光谱密度和周期的曲线图。在R中有没有一种简单的方法可以做到这一点?如果可能,我想确定12小时和24小时的活动高峰
您可以考虑以下功能:
TSA的
周期图
软件包立即绘制周期图GeneCycle
中的周期图
返回频率和估计功率谱密度的列表。它是stats::spectrum
的包装函数,设置了一些特殊选项spectrum
fromstats
允许您选择用于估计谱密度的方法:周期图或使用自回归过程cpgram
fromstats
绘制累积周期图和置信区间
有关所有详细信息,请参见,例如,?cpgram
或?spectrum
,请记住,当函数名称一致时,它是,例如,TSA::periogram
和GeneCycle::periogram
网上也有很多关于如何使用这些函数的示例和教程。有关fft
的用法,请参见此处;有关更广泛的教程,请参见此处
另外,正如您可能已经知道的,必须对给定的时间序列进行去渲染。因此,使用例如diff(x)
而不是x
。最后,时间序列的长度必须可以被12整除,以便能够识别12小时和24小时的频率,它可以通过以下方式实现:x[-(1:(长度(x)%%12))]
,其中x
是去趋势时间序列