【问题标题】:Understanding frequency in time-series object R (spectral analysis)了解时间序列对象 R 中的频率(频谱分析)
【发布时间】:2017-07-05 23:59:25
【问题描述】:

我正在尝试找出我的数据中是否存在 6 个月的季节性。我想通过频谱分析来做到这一点,我会在特定频率下查看频谱的 Ftest。

如果我根据频率为 12 的时间序列对象计算频谱分析中的 x 轴的含义(即频率的含义),我正在寻求帮助。

这里生成了一些数据。我的数据在 10 年内每月收集一次:

data = ts(1:120, frequency = 12, start = c(1959, 1)) # data that is collected each month over 10 years.
library(multitaper)
resSpec <- spec.mtm(data, nFFT = "default", 
                Ftest = TRUE,
                jackknife = FALSE, maxAdaptiveIterations = 100,
                plot = TRUE, na.action = na.fail) 

Output from multitaper

如果我正在寻找 6 个月(每年 2 次)周期的频谱功率,我是在寻找频率 1/6 还是 6/12?

【问题讨论】:

    标签: r time-series frequency spectral-density


    【解决方案1】:

    频率输出是每年的周期,而不是每月。你可以这样检查:

    curve <- function(i) {
        sin(2*pi/6 * i)
    }
    
    data = ts(sapply(1:120, curve), frequency = 12, start = c(1959, 1))
    
    resSpec <- spec.mtm(data, nFFT = "default", 
                    Ftest = TRUE,
                    jackknife = FALSE, maxAdaptiveIterations = 100,
                    plot = TRUE, na.action = na.fail, dtUnits="year", deltat=1/12) 
    

    所以您要查找的频率是 2(周期/年)

    【讨论】:

    • 非常感谢!这很有帮助。
    猜你喜欢
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 2013-02-12
    相关资源
    最近更新 更多