Прогноз фактических значений преобразованного временного ряда в модели ARIMAX в R - PullRequest
0 голосов
/ 20 ноября 2018

Я подгоняю модель ARIMAx к своим данным временных рядов.«Данные» включают «Скорость» в качестве результата и x1, x2 и x3 в качестве ковариат, и я преобразовал результат, используя преобразование Бокса-Кокса.Мои данные разделены на поезд и набор тестов, и я хочу прогнозировать набор тестов с фактическими значениями, а не с преобразованными значениями.Я сделал следующее:

data.train <- ts(data[1:24, ] , frequency = 4, start = c(2011, 4)  
data.test <- ts(data[25:28, ], frequency = 4, start = c(2017, 4)) 

covariates <- c("x1", "x2", "x3")
xreg.train <- data.train[, covariates] 
xreg.test <- data.test[, covariates] 

outcome <- data.train[, "Rate"]
lambda <- BoxCox.lambda(outcome)
outcome.trans <- BoxCox(outcome, lambda) 

fit <- auto.arima(outcome.trans, xreg = xreg.train, trace = TRUE, stepwise = FALSE, seasonal = TRUE)

Теперь я хочу спрогнозировать набор тестов с фактическими значениями, а не с преобразованными значениями:

 forecast.test <- predict(fit, newxreg = xreg.test, lambda = lambda)

Теперь ПРОБЛЕМА в том, что эта функция прогнозирования создает прогноз преобразованных значений, а не фактических значений.Как я могу получить прогноз фактических значений, не выполняя преобразование самостоятельно.

1 Ответ

0 голосов
/ 21 ноября 2018

Пакет прогноза сделает все это за вас.Но вам нужно использовать функцию forecast(), а не функцию predict().

data.train <- ts(data[1:24,] ,frequency=4, start=c(2011,4)  
data.test <- ts(data[25:28,], frequency=4, start=c(2017,4)) 

covariates <- c("x1","x2","x3")
xreg.train <- data.train[, covariates] 
xreg.test <- data.test[, covariates] 

outcome <- data.train[,"Rate"]
lambda <- BoxCox.lambda(outcome)

fit<- auto.arima(outcome, xreg=xreg.train, lambda=lambda,
  trace=TRUE, stepwise=FALSE, seasonal=TRUE, lambda=lambda)

forecast.test <- forecast(fit, xreg=xreg.test, lambda=lambda)
...