auto.arima с xreg не работает в do.call - PullRequest
0 голосов
/ 23 февраля 2019

Я использую auto.arima с xreg и do.call.Я понял, что для некоторых временных рядов это работает хорошо, но для некоторых других он выдает следующую ошибку, которую я не могу решить:

Ошибка в dimnames (x) <- dn: length of '[2] dimnames не равен экстенту массива </em>

Вот воспроизводимый случай:

# packages needed
require(magrittr)
require(forecast) # version 8.5

# create argument list
args=list()
args$y<-ts(c(100:140,rep(200,4),380,250),start=c(2016,1),frequency = 52)
args$seasonal<-F
args$xreg<-(diag(length(args$y))%>%.[,-c(1:24)])

# this works well
fit1<-auto.arima(y=args$y,seasonal=args$seasonal,xreg=args$xreg)

# but this does NOT work, although everything is the same!
fit2<-do.call(auto.arima,args)

# however, if we change arguments slightly, do.call works well, as seen below:
args$y<-ts(10:20,start=c(2016,1),frequency = 52)
args$xreg<-(diag(length(args$y))%>%.[,-c(1:4)])

fit2<-do.call(auto.arima,args)

Я не знаю, где проблема, auto.arima или do.вызов функции.

Редактировать: я использую auto.arima внутри функции, которая принимает аргументы auto.arima как ....Другими словами, я не знаю точно, какие аргументы будут предоставлены заранее.Рабочий ответ должен работать для следующего кода:

foo<-function(vec_ts,...){

  args = list(...)
  args$y<-vec_ts # time series vector

  fit<-do.call(auto.arima,args)

}

... может включать или не включать xreg.Без xreg, функция выше работает как шарм.Но когда ... включает матрицу xreg, иногда не работает (не всегда).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...