Извлечь прогнозные данные - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть один фрейм данных, который состоит из трех столбцов (AJT, NET и SAT).Мое намерение состоит в том, чтобы сделать прогноз с каждым из этих трех временных рядов с пакетом прогноза.По этой причине я преобразовываю фрейм данных в объект ts и выполняю прогнозирование с помощью функции snaive, поэтому я написал следующие строки кода:

#CODE
      library(forecast)

# Data set
      DATA_SET<-data.frame(
        AJT=seq(1, 48, by = 2),
        NET=seq(1, 24, by = 1),
        SAT=seq(1, 94, by = 4)
        )

      # Making TS object
      TS_SALES<-ts(DATA_SET,start=c(2016,1),frequency = 12)

# Making forecasting with Forecast package      
      SNAIVE_AJT<-snaive(TS_SALES[, 'AJT'],h=5) 
      SNAIVE_NET<-snaive(TS_SALES[, 'NET'],h=5) 
      SNAIVE_SAT<-snaive(TS_SALES[, 'SAT'],h=5) 

# Union forecast in list
      SNAIVE_UNION<-mapply(SNAIVE_AJT, SNAIVE_NET,SNAIVE_SAT, FUN=list, SIMPLIFY=FALSE) 

Все выходные данные из функции snaive, которые я поместил в SNAIVE_UNION, содержат все результаты прогнозирования.Таким образом, здесь наиболее важным компонентом является «среднее», которое содержит результаты прогнозирования по месяцам.

SNAIVE_UNION[["mean"]]
  # 
  # # [[1]]
  # # Jan Feb Mar Apr May
  # # 2018  25  27  29  31  33
  # # 
  # # [[2]]
  # # Jan Feb Mar Apr May
  # # 2018  13  14  15  16  17
  # # 
  # # [[3]]
  # # Jan Feb Mar Apr May
  # # 2018  49  53  57  61  65

Итак, здесь я намерен поместить результаты из формы SNAIVE_UNION [["mean"]] в таблицу данных, подобную таблице.ниже с некоторым функциональным циклом, для или другой функцией

        Jan Feb Mar Apr May
------------------------------
AJT     25  27  29  31  33
NET     13  14  15  16  17
SAT     49  53  57  61  65

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

1 Ответ

2 голосов
/ 18 апреля 2019

Вы можете использовать:

pred <- do.call(rbind, SNAIVE_UNION[["mean"]])

#      [,1] [,2] [,3] [,4] [,5]
# [1,]   25   27   29   31   33
# [2,]   13   14   15   16   17
# [3,]   49   53   57   61   65
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...