我的数据框如下:
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应该是一个单变量的时间序列
有什么建议吗?
答案 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函数。如果要预测下一个日期值,可以进行自动回归。它在互联网上有很好的文档记录,但请知道您的数据必须首先符合某些要求。