【发布时间】:2018-03-22 12:23:10
【问题描述】:
我使用fpp2 进行预测。我的工作流程包括导入数据、转换为时间序列,然后进行预测。
一个痛点是,在预测之后,我留下的数据是我当前数据的扩展,但不再保留相同的 date 列。
例如,如果我工作的是几周,那么我的日期如下所示:
>wks
date wk y
2016-01-04 1 2500
2016-01-11 2 2530
2016-01-18 3 2600
然后我执行一些预测,例如:
ts(wks$y, start = 2016, freq = 52) %>%
stl(t.window=25, s.window="periodic", robust=TRUE) %>%
forecast(method="naive", h = 20, level = 50) %>%
broom::tidy() %>%
rownames_to_column() %>%
janitor::clean_names()
这给出了类似的东西
rowname point_forecast lo_50 hi_50
2016.058 some_double ... ...
2016.077 some_double ... ...
2016.096 some_double ... ...
在理想情况下,我希望成为更多tidy。 tidy 输出可能类似于以下内容:
date value lo_50 hi_50 type
2016-01-04 2500 na na past
2016-01-11 2530 na na past
2016-01-18 2600 na na past
2016-01-25 some_double ... ... forecast
2016-02-01 some_double ... ... forecast
2016-02-08 some_double ... ... forecast
注意
-
rownames现在是dates,它们在与给定数据相同的时间线上继续。 -
过去的数据和预测的数据是行绑定的
-
past数据和forecast数据的values位于同一列中。这使得使用ggplot2进行绘图很容易
我猜我不是唯一一个也喜欢使用tidyverse 的预测人员。您如何将预测输出转换为类似于我上面描述的整洁的输出?
编辑
我想补充一点,我提供了一个星期的例子,但是如果有人有一种方法或工具可以将相同的想法推广到几天,那也将不胜感激。
【问题讨论】:
标签: r forecasting tidyverse