【问题标题】:Returning predicted values of a forecasting model as a matrix将预测模型的预测值作为矩阵返回
【发布时间】:2015-08-10 19:54:49
【问题描述】:

我有一个数据集,我正在使用预测包中的 auto.arima 进行预测。我想将预测结果保存到矩阵中以供进一步分析。在使用以下代码行进行分析之前,我制作了一个空数据框:

    predictions <- data.frame(point = numeric(), Lo80= numeric(), High80= numeric(), Lo95= numeric(), High95= numeric())

然后我想使用以下代码行将(即 7 天)的预测添加到此数据框:

    model <- auto.arima(x)
    pred <- forecast(model,h=7,l=c(50,80))
    for (kk in 1:7){
    predictions <- rbind(predictions, data.frame(point = pred[kk,1], Lo50= pred[kk,2], High50= pred[kk,3], Lo80= pred[kk,4], High80= pred[kk,5])}

但是我得到一个错误,原因是 pred 值不是矩阵格式,并且没有为它们定义维度。无论如何,我可以根据需要存储结果。 “pred”的一个示例如下:

             Point Forecast     Lo 80    Hi 80     Lo 95    Hi 95
                53.14286       19.84681  6.384444 33.30918 -0.742103      
                53.42857       24.46304 10.016633 38.90945  2.369167 

【问题讨论】:

  • 如果您尝试 cbind 会发生什么?即new.data &lt;- cbind(predictions, pred) ?
  • 很困惑你在这里做什么——如果你只想要7天,那么设置h = 7,它将返回一个data.frame,其中包含第1天到第7天的预测。看起来就像您在制作 predictions 时只是在重建 pred,只是使用不同的列名...?

标签: r dataframe forecasting


【解决方案1】:
library(forecast)
model <- auto.arima(x)
pred <- as.data.frame(forecast(model, h=7, level=c(50,80)))

【讨论】:

    【解决方案2】:

    summary(pred) 会给你一个你想要的data.frame,你可以使用as.matrix 将它转换为矩阵。

    library(forecast)
    model <- auto.arima(WWWusage)
    pred <- forecast(model, h=7, level=c(50,80))
    
    predDF <- summary(pred)
    predMatrix <- as.matrix(predDF)
    

    【讨论】:

    • 你可以直接在预测对象上使用as.data.frame()
    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    相关资源
    最近更新 更多