【问题标题】:How to store forecasted values using 'forecast' library in R into a CSV file?如何使用 R 中的“预测”库将预测值存储到 CSV 文件中?
【发布时间】:2016-10-15 14:19:40
【问题描述】:

我已经围绕我的季节性时间序列数据拟合了一个TBATS 模型,并使用forecast 包来获得预测。我的 R 代码是:

library("forecast")
data = read.csv("data.csv")
season_info <- msts(data,seasonal.periods=c(24,168))
model <- tbats(season_info)
forecasted <- forecast.tbats(best_model,h=24,level=90)
forecasted

现在,我有一个名为“预测”的变量,它的输出如下:

> forecasted
         Point Forecast    Lo 90    Hi 90
6.940476       5080.641 4734.760 5426.523
6.946429       5024.803 4550.111 5499.496
6.952381       4697.625 4156.516 5238.733
6.958333       4419.105 3832.765 5005.446
6.964286       4262.782 3643.528 4882.037
6.970238       4187.629 3543.062 4832.196
6.976190       4349.196 3684.444 5013.947
6.982143       4484.108 3802.574 5165.642
6.988095       4247.858 3551.955 4943.761
6.994048       3851.379 3142.831 4559.927
7.000000       3575.951 2855.962 4295.941
7.005952       3494.943 2764.438 4225.449
7.011905       3501.354 2760.968 4241.739
7.017857       3445.563 2695.781 4195.345

我需要从“预测”列中收集预测值并将其存储在 CSV 文件中。我试图在线阅读 TBATS 和“预测”方法的页面,但他们没有说明如何提取特定列的预测值,而忽略了其他列,例如“Hi”“Lo”和“Point”。

我正在我的 CSV 中查找此输出:

hour,forecasted_value
0,5080.641
1,5024.803
2,4697.625
...

【问题讨论】:

    标签: r time-series prediction


    【解决方案1】:

    它们存储在三个部分中。可以用str(ret)查看对象结构:

    library(forecast)
    fit <- tbats(USAccDeaths)
    ret <- forecast(fit)
    ret$upper # Upper interval
    ret$lower # Lower interval
    ret$mean  # Point forecast
    

    【讨论】:

    • 你说得对,这行得通。关于如何生成数字 0-24 并将它们存储在每个平均值之前的 CSV 中的任何想法?比如我上面问题中提到的输出CSV格式。
    • 你有正好 24 个平均值吗?
    • 是的,h=24 在这一行:forecasted &lt;- forecast.tbats(best_model,h=24,level=90) 确保我有准确的 24 个预测。
    • 那你为什么要0到24。那是25个数字。
    • cbind(0:23, ret$mean)
    【解决方案2】:

    您可以使用print()获取显示的输出:

    library("forecast")
    data = read.csv("data.csv")
    season_info <- msts(data,seasonal.periods=c(24,168))
    model <- tbats(season_info)
    forecasted <- forecast.tbats(best_model,h=24,level=90)
    dfForec <- print(forecasted)
    

    这会给你data.frame,现在你可以选择你想要的列,即。 dfForec[, 1] 仅用于点预测,然后使用 write.csv(dfForec[, 1, drop = FALSE], ...) 将其写入平面文件。

    【讨论】:

      【解决方案3】:

      使用均值函数获取点预测

      库(“预测”)

      data = read.csv("data.csv")

      season_info

      模型

      预测

      预测$平均值

      【讨论】:

        猜你喜欢
        • 2019-06-21
        • 2020-04-05
        • 1970-01-01
        • 2014-08-16
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        • 2016-04-24
        • 1970-01-01
        相关资源
        最近更新 更多