我在下面的代码中创建了一个矩阵,其中包含3个参数的每个可能组合,然后为每组参数创建arima模型。有时候,训练模型的钳工步骤会引发错误并退出。我想修改代码,以便如果fitter抛出错误而不是退出它只是跳过参数组合并继续到矩阵中的下一行。任何提示将不胜感激。
代码:
library("fpp")
dataTrain <- window(hsales,end=1989.99)
p1<-1:10
d1<-1:2
q1<-1:7
paramtrix<-expand.grid(p1,d1,q1)
modbuilder <- function(a,b,c) {Arima(dataTrain, order=c(a,b,c))}
fitter <- do.call(Vectorize(modbuilder, SIMPLIFY=FALSE), unname(paramtrix))
更新
## Forecasting/Accuracy of models
funcCast<-function(x){forecast(x,h=20)$mean}
ModCast<-lapply(fitter,funcCast)
ModAcc<-function(x){accuracy(x,tsTest)[1,5]}
TestAcc<-lapply(ModCast,ModAcc)
##Find Model that minimizes mape
Acc_res<-do.call(rbind,TestAcc)
res_num <- which(Acc_res==min(Acc_res))
res_model<-fitter[[res_num]] ## Error being introduced by NAN
答案 0 :(得分:1)
替换
Arima(dataTrain, order=c(a,b,c))
与
tryCatch(Arima(dataTrain, order=c(a,b,c)), error = function(e) {})