【问题标题】:Discrete fourier transform on time series in RR中时间序列的离散傅立叶变换
【发布时间】:2014-05-08 05:28:21
【问题描述】:

我想使用离散傅里叶变换来识别销售动态,然后对相似的模式进行聚类。但是,我是使用 R 的新手,在寻找解决方案后,我找到了一个 prodecure fft(),但不确定我是否得到与 DFT 相同的结果。我想在绘图上呈现波浪,然后使用算法对类似的销售动态进行聚类。更重要的是,我想知道我是否可以使用过程 fft 来转换所有时间序列,而不是一个一个地转换(所以建议 R:在 26 周后转换新的时间序列 - 查看数据库)

http://imageshack.com/a/img854/1958/zlco.jpg 我的数据库;三列: 产品 - 展示产品组 周 - 自推出产品以来的时间(周),前 26 周 Sales_gain - 产品销售额如何按周变化

http://imageshack.com/a/img703/6726/sru7.jpg 这就是我的时间序列的样子

我相信我可以使用 fft() 最终实现这个目标,但是从 fft() 的输出到我的目标的飞跃有点不清楚。

请注意,我对时间序列分析比较陌生(这就是为什么我不能把我的代码放在这里的原因)所以你可以提供任何清晰的 w.r.t.将 fft() 的输出放在上下文中,或者您可以推荐的任何可以有效完成此任务的包将不胜感激

【问题讨论】:

    标签: r fft time-series dft


    【解决方案1】:

    根据古代记忆,您应该对实部进行平方以获得频谱,该频谱为您提供每个频率的幅度(在您的示例中为天)

    x = some data
    plot(Re(fft(x))^2)
    

    【讨论】:

    • 某些数据表示在 y 轴或时间上的一列?因为我希望 FFT 每周考虑每个产品类别的 sales_gain 并获得我可以在此之后聚类的结果(向量/点)。每个集群都应该向我展示具有不同销售动态的产品组。我应该分别计算每个时间序列的 FFT 吗?如果能提供详细的考试说明,我将不胜感激
    • 使用 x=dane$sales_gain plot(Re(fft(x))^2 后我得到了这个图。你能告诉我它是什么意思吗?imageshack.com/a/img856/5883/jzsy.jpg是每次观察的频率吗?因为我需要分析时间序列,所以可能我应该得到产品每周的 sales_gain 频率
    • 抱歉 - 刚刚注意到这些消息。
    • dft 将您的信号从时域转换为频域。沿着 x 轴是您的频率,y 是强度。 fft 只是一种计算 dft 的算法,但速度要快得多。查看您的数据,我可能会想问您为什么要从 dft 开始。使用一些时间序列方法可能会更好地建模,您可以在其中创建某些变量(星期几、工作日/周末等)并在数据中查找趋势或季节性模式。 R 为这种事情提供了一个很棒的包cran.r-project.org/web/packages/forecast/index.html
    • @user3472874 我可以问一个问题,因为我也是 R 和 FFT 的新手,所以你的意思是 y 轴的强度是幅度?因为我播下了任何幅度和相位的FFT概念,但实际上我仍然不明白。然后第二个是你能告诉我为什么我们需要用数字 2 供电。谢谢你的回答
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多