Прогнозирование ARIMA с помощью auto.Arima () и xreg - PullRequest
0 голосов
/ 15 октября 2018

Я работаю с большим набором данных, используя auto.arima.Набор данных богат нулями.большинство проблем с недостатком ранга в порядке, но я до сих пор не могу понять, как обращаться с «типом NN» данных.Это очень похоже на «тип PP» (который он вычисляет нормально).Тип NN очень редок в моих данных.Любые идеи, как это исправить, или, по крайней мере, как сделать быстрое обнаружение типа NN?

library(forecast)
NN<-matrix(c(2, 2,2, 1, 1,1   ,
       0, 0,0,0,0,1 ,
       0, 0,0,1,1,0),
       nrow=6)
PP<-matrix(c(2, 2,2, 1, 1,1   ,
         0, 0,0,0,0,1 ,
         0, 0,1,1,1,0),
       nrow=6)
qty<-rpois(6,3000)
auto.arima(qty)
auto.arima(qty, xreg=PP)
auto.arima(qty, xreg=NN)

1 Ответ

0 голосов
/ 15 октября 2018

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

is.rankdeficient <- function(xregg) {
  constant_columns <- apply(xregg, 2, is.constant)
  if (any(constant_columns)) {
    xregg <- xregg[, -which(constant_columns)[1]]
  }
  sv <- svd(na.omit(cbind(rep(1, NROW(xregg)), xregg)))$d
  min(sv)/sum(sv) < .Machine$double.eps
}


is.rankdeficient(PP)
# [1] FALSE

is.rankdeficient(NN)
# [1] TRUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...