如何使用predict()函数存储预测值

时间:2012-07-31 21:04:53

标签: r

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

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

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

但是,当我访问TS对象(例如myPrediction [1])时,我只返回值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

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

1 个答案:

答案 0 :(得分:0)

时间序列对象有点奇怪。它们是将起始和结束时间存储为小数年和属性中的间隔数的向量,而不是作为列或rownames访问。您可以使用以下两列构建数据框:

 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