1

我有下面的代码,它创建一个包含 3 个参数的每个可能组合的矩阵,然后为每组参数创建一个 arima 模型。有时,训练模型的 fitter 步骤会抛出错误并退出。我想修改代码,以便如果 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
4

1 回答 1

1

代替

Arima(dataTrain, order=c(a,b,c))

tryCatch(Arima(dataTrain, order=c(a,b,c)), error = function(e) {})
于 2016-05-09T18:43:38.527 回答