【发布时间】:2012-01-17 00:31:06
【问题描述】:
我正在尝试使用 stl 来细分我的时间序列数据中的季节性和趋势。我有刻度数据,并且我创建了一个 ts 对象。
我运行了一个 SQL 查询以获取以下表格中的数据
> x
datetime price
1 2010-09-08 1501 9110
2 2010-09-08 1501 9110
3 2010-09-08 1501 9110
4 2010-09-08 1501 9110
5 2010-09-08 1501 9115
6 2010-09-08 1501 9115
7 2010-09-08 1501 9110
8 2010-09-08 1502 9115
9 2010-09-08 1502 9115
10 2010-09-08 1502 9115
11 2010-09-08 1503 9120
12 2010-09-08 1503 9115
13 2010-09-08 1503 9115
14 2010-09-08 1503 9115
15 2010-09-08 1503 9115
16 2010-09-08 1503 9115
17 2010-09-08 1503 9115
18 2010-09-08 1503 9115
19 2010-09-08 1503 9115
20 2010-09-08 1503 9115
21 2010-09-08 1503 9115
22 2010-09-08 1503 9110
23 2010-09-08 1503 9105
24 2010-09-08 1503 9105
25 2010-09-08 1503 9110
26 2010-09-08 1504 9110
27 2010-09-08 1504 9110
28 2010-09-08 1504 9110
29 2010-09-08 1504 9110
30 2010-09-08 1504 9115
31 2010-09-08 1504 9115
32 2010-09-08 1504 9115
33 2010-09-08 1504 9115
34 2010-09-08 1504 9115
35 2010-09-08 1504 9115
36 2010-09-08 1504 9115
37 2010-09-08 1504 9120
我通过运行以下命令将其转换为 ts:
> xt<-ts(x[,2])
> xt
Time Series:
Start = 1
End = 37
Frequency = 1
[1] 9110 9110 9110 9110 9115 9115 9110 9115 9115 9115 9120 9115 9115 9115 9115
[16] 9115 9115 9115 9115 9115 9115 9110 9105 9105 9110 9110 9110 9110 9110 9115
[31] 9115 9115 9115 9115 9115 9115 9120
> drg<-stl(log(xt),"per")
Error in stl(log(xt), "per") :
series is not periodic or has less than two periods
> is.ts(xt)
[1] TRUE
关于如何修复错误的任何建议,以便能够查看不同趋势组件的细分...
【问题讨论】:
-
我没有对时间序列做太多的工作,所以只是澄清一下:是
plot函数产生错误还是stl?即如果您在自己的行上执行drg <- stl(...),然后在plot(drg)上执行,哪一行会引发错误?我的猜测是plot,所以drg可能不是您所期望的。您能否提供一小部分数据样本来重现您的问题? -
这是 stl 部分
> drg<-stl(log(xt),"per") Error in stl(log(xt), "per") : series is not periodic or has less than two periods我会在几分钟内用一小部分数据更新我的帖子 -
刚刚更新的帖子包含重现问题的小数据样本
-
请不要cross post。至少,礼貌地说你做了,这样其他人才能受益。
标签: r time-series