【发布时间】:2014-03-15 23:09:58
【问题描述】:
我对 R 完全陌生,刚刚开始使用它。我有三年的每周数据。我想把这个时间序列数据分解成趋势、季节和其他成分。我有以下疑问:
- 我应该使用哪个函数 -
ts()或decompose() - 如何应对闰年情况。
如果我错了,请纠正我,频率是52。
提前致谢。我非常感谢任何形式的帮助。
【问题讨论】:
标签: r statistics time-series
我对 R 完全陌生,刚刚开始使用它。我有三年的每周数据。我想把这个时间序列数据分解成趋势、季节和其他成分。我有以下疑问:
ts()或decompose()
如果我错了,请纠正我,频率是52。
提前致谢。我非常感谢任何形式的帮助。
【问题讨论】:
标签: r statistics time-series
欢迎来到 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 使用经典的自回归和移动平均模型。它们不会产生相同的结果。