Функция точности с несколькими сериями - PullRequest
0 голосов
/ 25 апреля 2020

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

# CODE
library(fpp2) # required for the data
library(dplyr)
library(forecast)

MY_DATA<-uschange[,1:4]
head(MY_DATA)
tail(MY_DATA)
NROW(MY_DATA)

Trening_set<-subset(MY_DATA,start=1,end=150)
Test_set<-subset(MY_DATA,start=151,end=187)

# 1.Own functions for forecasting
FORECASTING_FUNCTION_ARIMA <- function(Z, hrz = 16) {
  timeseries <- msts(Z, start = 1970, seasonal.periods = 4)
  forecast <- auto.arima(timeseries)
  #ic = c("bic")
}
FORECASTING_LIST_ARIMA <- lapply(X = Trening_set, FORECASTING_FUNCTION_ARIMA)
ARIMA_MODELS_FORECAST<-lapply(FORECASTING_LIST_ARIMA, forecast,h=37)

Для Чтобы увидеть точность этих моделей, я использовал функцию lapply. Итак, код и результаты вы можете увидеть ниже:

# 2.Accurancy test
ACCURANCY_ARIMA <- lapply(FORECASTING_LIST_ARIMA,  accuracy)

enter image description here

Так что следующим шагом должно быть то, как использовать ту же функцию, чтобы вывести те же ошибки точности, что и в предыдущем примере, но теперь с набором тестов. Я пытаюсь с кодом ниже, но что-то не так, и я не могу получить хорошие результаты.

ACCURANCY_ARIMA1<-lapply(FORECASTING_LIST_ARIMA, accuracy(forecast(ARIMA_MODELS_ALL,h=37),x=Test_set))

Если эта функция работает правильно, вывод должен выглядеть следующим образом (цифры приведены только для иллюстрации).

enter image description here

Так может кто-нибудь помочь мне, как исправить эту строку кода и получить вывод, похожий на последний пи c.

...