【问题标题】:Time Series Decomposition of weekly data每周数据的时间序列分解
【发布时间】:2014-03-15 23:09:58
【问题描述】:

我对 R 完全陌生,刚刚开始使用它。我有三年的每周数据。我想把这个时间序列数据分解成趋势、季节和其他成分。我有以下疑问:

  1. 我应该使用哪个函数 - ts()decompose()
  2. 如何应对闰年情况。

如果我错了,请纠正我,频率是52。

提前致谢。我非常感谢任何形式的帮助。

【问题讨论】:

    标签: r statistics time-series


    【解决方案1】:

    欢迎来到 R!

    是的,频率是52。

    如果数据尚未归类为时间序列,您将需要ts()decompose()。要查找数据集的类别,请使用class(data)。如果它返回"ts",那么就 R 而言,您的数据已经是一个时间序列。如果它返回其他内容,例如"data.frame",那么您需要将其更改为时间序列。将变量分配给ts(data) 并再次检查类以确保。

    有一个每月时间序列数据集sunspot.month 已加载到 R 中,您可以在上面练习。这是一个例子。你也可以通过写?decompose来阅读decompose的帮助文件

    class(sunspot.month)
    [1] "ts"
    
    > decomp <- decompose(sunspot.month)
    
    > summary(decomp)
    
             Length Class  Mode     
    x        2988   ts     numeric  
    seasonal 2988   ts     numeric  
    trend    2988   ts     numeric  
    random   2988   ts     numeric  
    figure     12   -none- numeric  
    type        1   -none- character
    
    > names(decomp)
    [1] "x"        "seasonal" "trend"    "random"   "figure"   "type"    
    
    > plot(decomp)  # to see the plot of the decomposed time-series 
    

    names 的调用表明您还可以访问各个组件数据。这可以通过$ 运算符来完成。例如,如果您只想查看季节性组件,请使用decomp$seasonal

    【讨论】:

    • 感谢您的回复。我有一个疑问,而不是分解,我可以使用stl() 将每周数据分解成这些组件吗?两者都会给我不同的结果吗?
    • 根据decompose 帮助文件——“stl 函数提供了更复杂的分解。”查看两个帮助文件。除其他差异外,stl 使用 Loess 方法,decompose 使用经典的自回归和移动平均模型。它们不会产生相同的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 2020-01-24
    相关资源
    最近更新 更多