0

我正在使用各种模型(例如 Arima、H2O.Randomforest、glmnet、lm 和其他一些模型)对 R 中的多元时间序列数据进行预测建模。

我创建了一个函数来选择我们选择的模型并进行预测。

Model1 <- function(){
  ..
  return()
}
Model2 <- function(){
  ...
  return()
}
 Model3 <- function(){
  ...
  return()
}
main <- function(n){
  if(n == 1) {
   Model1()
  }
  else if(n == 2){
    Model2()
  }
  else if(n == 3){
    Model3()  
  }}

现在我应该通过在预测值和观察值之间找到准确性来自动化这些RMSE模型MAPE。我想根据表现为每个人提供分数(例如,满分 5 分)。例如,如果Arima给出的RMSE模型比其他模型低,它将被评为高,第二低的RMSE模型将得分低于Arima,依此类推。

每次我使用不同的输入 Data 运行这些模型时,它都必须给出模型的平均分数。我想说的是,

1. for model1 it will give scores of each model, let's say *s1*.
2. for model2 run it give scores of each model, and let's call it *s2*. 

每次我用不同的输入运行它时,我都想要一个该模型的平均分数。它更像是评分和排名方法。

R 中是否有任何方法或包可以一瞥它是如何完成的?或任何例子?任何建议都会非常有帮助。我什至在交叉验证中分享了我的问题。

谢谢你。

4

1 回答 1

0

据我所知,没有任何一个软件包可以在您不做任何工作的情况下为您完成所有这些工作。您将需要寻找能够提供满足您需求的方法的软件包。

由于您没有提供任何可重复的数据,并且仅表达了您希望作为示例的一般想法,因此我只能就预期的内容、我将如何做此类事情以及您最有可能遇到的问题给您一个大致的想法会遇到:

1.模型拟合

您需要很好地了解如何将模型拟合到数据中。以 ARIMA 为例:它有三个顺序(p、d、q)。你想按什么顺序来拟合你的数据?一个简单的 ARIMA(1,0,1) 模型?还是您需要更高的订单?同样,还有最佳拟合方法,例如通过拟合不同的阶数,然后选择具有最佳(最低)AIC 的阶数。来自 quantstart 的这篇文章是单变量系列 + 代码示例的一个很好的示例,用于估计不同的订单并选择最合适的订单。
检查您需要为其他模型(H2O.Randomforest、glmnet、lm 等)设置的程度。在函数中设置此过程。

2. 型号选择

因此,在第 1 步中,您将各种模型拟合到时间序列数据并得到不同的结果。现在您需要将您的拟合优度标准 RMSE/MAPE) 组合到一个列表/向量中。它们要么已经是您各自模型的输出对象的一部分,要么您需要自己计算它们。如果它们已经是估计过程的一部分,那就更好了。作为估计过程的功能的一部分,如有必要,添加计算,然后将模型的结果添加到前面提到的列表/向量中。
按您想要的标准(升序/降序和最高/最低)对列表进行排名,并将该列表作为输出。此外,您可能希望添加最适合的结果,您可以通过将排名最高的结果附加到您的输出来做到这一点。


同样,如果没有具体的代码示例和您面临的问题,就很难为您提供帮助。尝试设置一些具体的东西,如果您遇到特定问题,您可以随时在这里寻求帮助。提供虚拟数据和您使用的代码将大大提高您解决问题的机会

于 2017-07-07T14:38:26.383 回答