首页 文章

将时间序列结果转换为日期

提问于
浏览
1

我使用 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 现在是 date ,它们在与给定数据相同的时间轴上继续 .

  • 过去的数据和预测数据是行绑定的

  • past 数据和 forecast 数据的 values 在同一列中 . 这样可以很容易地用 ggplot2 绘图

我猜我不是唯一一个也喜欢使用 tidyverse 预测工作的人 . 你如何将预测输出转换为与我上面描述的类似的东西?

编辑

我想补充一点,我提供了几个星期的例子,但是如果有人有一个方法或工具将相同的想法推广到日子也会受到赞赏 .

1 回答

  • 0

    在搜索了一些工具和帖子之后,我发现这个business-science帖子回答了我的所有问题并给了我正在寻找的确切结果 .

    关键函数是 tk_ts ,用于索引时间序列, sw_sweep(rename_index = "date") 用于获取预测数据并返回日期索引 .

    有关哪些 tidiers 用于不同的预测(ets,arima,stl,等)的更多信息,请参阅here .

    编辑

    好像我说得太早了 . 我在从每周级别预测中检索日期时遇到一些问题,但这可能是由于我对软件包的经验不足 .

相关问题