У меня есть код, который, как я думаю, создает каждую комбинацию для набора параметров с заданными диапазонами, затем создает все модели Arima для этих комбинаций параметров порядка, затем создает прогнозы для всех моделей и затем вычисляет карту, (которая является мерой ошибки) для каждого из прогнозов.Модель возврата с наименьшим значением из списка
Мне любопытно, если я правильно использовал прогнозы, чтобы предсказать модели и вычислить карту для каждой модели? Я не так много использовал.
Для последнего шага я хотел бы вернуть параметры модели или порядка, которые создают прогноз с самым низким значением mape. Если кто-нибудь может предложить, как это сделать, или указать аналогичный пример, я был бы благодарен.
Код:
library("fpp")
## Partition Data
tsTrain <- window(hsales,end=1989.99)
tsTest <- window(hsales,start=1990)
## Set Ranges for parameters
pvar<-1:10
dvar<-1:2
qvar<-1:7
## Create all combinations of parameters
OrderGrid<-expand.grid(pvar,dvar,qvar)
## Create model for each combination of parameters
aFit <- function(a,b,c) {Arima(tsTrain, order=c(a,b,c),method="ML")}
ModFit <- do.call(Vectorize(aFit, SIMPLIFY=FALSE), unname(OrderGrid))
## Forecast Models
funcCast<-function(x){forecast(x,h=71)$mean}
ModCast<-lapply(ModFit,funcCast)
## Calculate Mape for Models
ModAcc<-function(x){accuracy(x,tsTest)[1,5]}
TestAcc<-lapply(ModCast,ModAcc)
СПАСИБО !!! Это полностью трюк. – user3476463