0
以下のコードは、ある範囲のパラメータセットに対してすべての組み合わせを作成し、それらの注文パラメータの組み合わせに対してすべてのArimaモデルを作成し、すべてのモデルの予測を作成します。その後、予測のそれぞれについて、マープ(エラー指標)を計算します。リストから最も低い値を返すモデル
lapplyを正しく使用してモデルを予測し、各モデルのマープを計算することができたら、私は不思議ですか?私はそれほど礼儀正しくは使用していない。
最後のステップでは、最も低いマープで予測を作成するモデルまたは注文パラメータを返信したいと思います。誰かがそれを行う方法を示唆することができる、または同様の例を指摘すれば私は感謝します。
コード:
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