如何以日/小时格式创建时间序列对象并预测第二天的值?

时间:2017-10-18 04:46:21

标签: r temporal

我的数据框如下:

Date         Price1  Price2  Price3    Price4   .... Price 24

2017-10-15   60.43   49.40   48.72    48.32 
2017-10-16   38.09   30.00   24.47    24.88 
2017-10-17   48.80   46.76   46.73    45.82 

目标是将数据框对象转换为时间序列,同时预测2017-10-18的日期,以及所有相应的24个价格/值。

实际上,我得到了ts对象,但是在ets(stock_prize)中计算错误时出现以下错误:y应该是一个单变量的时间序列

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为您的数据结构不正确。我建议你应该将这些日期作为一个因素,并且只为这些值设置一列。例如,你有这样的东西:

mydates <- as.Date(c("2007-06-22", "2004-02-13"))
mydates2 <-as.Date(c("2008-06-22", "2005-02-13"))
mydates3 <-as.Date(c("2009-06-22", "2006-02-13"))
hours <- c(8,9)
values <- c(1,2)
a=data.frame(mydates,mydates2,mydates3,hours,values)
a

这是您的数据的外观:

   mydates   mydates2   mydates3     hours values
1 2007-06-22 2008-06-22 2009-06-22     8      1
2 2004-02-13 2005-02-13 2006-02-13     9      2

但你应该把它们变成这样的东西:

dates=c(mydates,mydates2,mydates3)
hours_factor=rep(hours,3)
ordered_values=rep(values,3)
b=data.frame(dates,hours_factor,ordered_values)
b

这就是你的数据的样子:

 dates             hours_factor ordered_values
1 2007-06-22            8              1
2 2004-02-13            9              2
3 2008-06-22            8              1
4 2005-02-13            9              2
5 2009-06-22            8              1
6 2006-02-13            9              2

之后,您可以将变量设为ts类。你可以使用ts函数。如果要预测下一个日期值,可以进行自动回归。它在互联网上有很好的文档记录,但请知道您的数据必须首先符合某些要求。