【问题标题】:How to create a forecast object in R [closed]如何在 R 中创建预测对象 [关闭]
【发布时间】:2016-09-08 19:06:28
【问题描述】:

我编写了一个函数,它使用不同的预测方法预测时间序列对象,例如 forecast::nnetarforecast::tbatsforecast::Arimaforecast::ets
我知道forecastHybrid::hybridModel 函数正在这样做,我只是想创建一些更定制的东西。所以我现在返回一个带有result$meanresult$errorresult$fit 的列表。我想使用准确度或绘图功能,如预测对象。有没有简单的方法可以做到这一点?还是太复杂了?

编辑:关于函数,它需要一个 ts 对象、一个 arima 模型(我通过差异和检查 ACF-PACF 图找到了它)和一个要预测的地平线。它适用于nnetaretstbats 和我的 arima 模型。
它结合了它们的拟合和预测,并创建了一个新的拟合值和预测值。
它返回一个列表对象,其预测值为result$mean(这在预测对象中也相同),拟合值为result$fit,错误为result$error
现在有了那个返回的对象,我不能自动化一些系列的工作,比如准确度、制作图等。所以如果可能的话,我想返回一个预测对象。就是这样。

【问题讨论】:

  • 您能否展示您正在使用的代码和/或您要返回的对象的可重现示例,以及您想用它做什么的具体示例(例如,什么样的情节) ?
  • 投票结束过于广泛,......更不用说不清楚未提供的数据的确切预期。
  • 已编辑。 @大卫罗宾逊
  • 预测中的所有不同方法都返回不同类别的输出,例如class(nnetar(lynx)) == "nnetar")。您需要向 plot 添加一个新方法,以便它与您的对象一起使用。如果您的对象包含accuracy 的所有必要部分,只需编辑accuracy 函数。体内有检查if (!any(is.element(class(f), c("mforecast", "forecast", "ts", "integer", "numeric", "Arima", "ets", "lm", "bats", "tbats", "nnetar", "stlm"))))

标签: r forecasting


【解决方案1】:

一个预测对象只是一个包含几个项目的列表,并给定一个“预测”类。查看任何现有功能以了解如何执行此操作。这是一个非常简单的模板:

myfun <- function(x, h, ...)
{
  # Compute some forecasts
  fc <- ....
  # Construct output list
  output <- list(mean=fc, x=x, ...)
  # Return with forecasting class
  return(structure(output, class='forecast'))
}

【讨论】:

    猜你喜欢
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 2013-02-09
    • 2013-11-10
    • 2013-11-05
    • 2014-01-06
    • 1970-01-01
    相关资源
    最近更新 更多