0

我有一个包含 2 年观察数据点的时间序列,并且正在使用 Holt-Winters 创建预测模型。然后我使用 R predict 函数推断未来 24 个月。

当前的预测对象是一个时间序列,如下所示:

      Jan  Feb  Mar June ...
2012  xxx  yyy  zzz xxy
2013  xyx  yxy  zyz zxz

但是,当我访问诸如 myPrediction[1] 之类的 TS 对象时,我只返回值 xxx。

我正在尝试存储预测对象的 DATE 和 VALUE。最终,我希望创建一个 data.frame 或一些可以直接导出到 MySQL 表的对象,其中显示:

Projection Date  Value
2012-01-01        xxx
2012-02-01        yyy
2012-03-01        zzz
...
...
2013-01-01        xyx

有什么简单的方法可以创建两列来显示我返回的预测函数的日期 + 值?

4

1 回答 1

0

时间序列对象有点奇怪。它们是向量,将它们的开始和结束时间存储为分数年和属性中的间隔数,而不是作为列或行名访问。您可以构建一个包含两列的数据框:

 tsobj <- ts(1:24,  frequency = 12, start = c(2012, 1))
 tsattr <- tsp(tsobj)
 data.frame(Dates =seq(tsattr[1], tsattr[2], by= 1/tsattr[3] ),
            Value = tsobj )
          Dates Value
1  2012.000     1
2  2012.083     2
3  2012.167     3
4  2012.250     4
5  2012.333     5
 snip
#------a character valued column ----------
data.frame(Dates =paste( rep( c(2012,2013), each= 12 ),seq(1:12 ), sep="-"), 
            Value = tsobj)
     Dates Value
1   2012-1     1
2   2012-2     2
3   2012-3     3
4   2012-4     4
5   2012-5     5
snip
#------Date-classed column -----
 data.frame(Dates =as.Date(paste( rep( c(trunc(tsattr[1]), trunc(tsattr[2]) ), 
                            each= 12 ),
                            seq(1:12 ),
                            1,
                            sep="-")), 
             Value = tsobj)
#----
        Dates Value
1  2012-01-01     1
2  2012-02-01     2
3  2012-03-01     3
4  2012-04-01     4
5  2012-05-01     5
6  2012-06-01     6
于 2012-07-31T22:11:07.423 回答