我正在使用各种模型对R中的多变量时间序列数据进行预测建模,例如Arima,H2O.Randomforest,glmnet,lm以及其他一些模型。
我创建了一个函数来选择我们选择的模型并进行预测。
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
,依此类推。
每次我使用不同的输入数据运行这些模型时,它必须给出模型的平均分数。我的意思是说,
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中是否有任何方法或软件包可以让人一瞥它是如何完成的?或任何例子?任何建议都会非常有帮助。我甚至在Cross验证时分享了我的问题here。
谢谢。
答案 0 :(得分:0)
据我所知,没有任何单一的套餐可以为您完成所有这些,而无需您的工作。您需要寻找能够提供所需方法的软件包。
由于您没有提供任何可重复的数据,并且只是表达了您想要的一般概念,我只能给您一个关于期望什么的广泛想法,我将如何做这类事情以及出现什么问题你很可能会遇到:
您需要很好地了解如何使模型适合数据。以ARIMA为例:它有三个订单(p,d,q)。您希望以何种顺序拟合数据?一个简单的ARIMA(1,0,1)模型?或者你需要更高的订单?还有最佳方法e。 G。通过拟合不同的订单,然后选择具有最佳(最低)AIC的订单。 This article from quantstart是单变量系列+代码示例的一个很好的示例,用于估算不同的订单并选择最合适的订单。
检查您需要在何种程度上为其他型号(H2O.Randomforest,glmnet,lm等)设置它。在功能中设置此过程。
因此,在第1步中,您将各种模型拟合到时间序列数据中,并得到不同的结果。现在,您需要在列表/向量中组合您的拟合优度标准RMSE / MAPE。它们已经是您各自模型的输出对象的一部分,或者您需要自己计算它们。如果他们已经是估算过程的一部分,那就更好了。作为估算过程的函数的一部分,如有必要,添加计算,然后将模型的结果添加到前面提到的列表/向量中。
按您所需的标准(升序/降序和最高/最低)对列表进行排名,并将该列表作为输出。
此外,您可能希望添加最合适的结果,您可以通过将排名最高的结果附加到输出中来实现。
同样,如果没有特定的代码示例和问题,您很难帮助您。尝试设置具体内容,如果遇到 特定的 问题,可以随时在此处寻求帮助。 提供虚拟数据和您使用的代码将大大提高您解决问题的机会。