2016-08-16 13 views
0

Я хотел бы, чтобы извлечь таз (Гайндман и др., 2006) с функции точности («прогноз» пакет) в R.MASE Извлечение иерархических данных («HTS» и «прогноз» пакеты R)

у меня есть 17 временных рядов со следующей иерархической структурой:

nodes <- list(2, c(7,7)) 
hierarchical <- hts(matrix_tseries, nodes, bnames = colnames_bottom, characters = c(1,1)) 

, где «matrix_tseries» представляет собой матрицу, которая сохраняет серию 17.

Я тогда вычислили прогнозы для каждой серии и хотел бы извлечь показатели оценки для требуемого горизонта:

fcast <- forecast(hierarchical, h = 35 ,level = c(80,95), 
        fmethod = "ets", method = "comb") 
accuracy(fcast$bts[,1], val_matrix_tseries[,1], test=NULL, d=NULL, D=NULL) 

, где «val_matrix_tseries» представляет собой матрицу, содержащую фактические данные в проверке (из образец) период.

К сожалению, это производит только ME, RMSE, MAE, MPE, MAPE, но не MASE.

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

ответ

0

Существует accuracy.gts функции, чтобы сделать это:

library(hts) 

# Generate some artificial data  
matrix_tseries <- ts(matrix(rnorm(14*75),ncol=14)) 
nodes <- list(2, c(7,7)) 

# Split data into training and test sets 
hierarchical <- hts(window(matrix_tseries, end=40), nodes) 
test <- hts(window(matrix_tseries, start=41), nodes) 

# Produce forecasts 
fcast <- forecast(hierarchical, h = 35 ,level = c(80,95), 
        fmethod = "ets", method = "comb") 

# Compute accuracy measures  
accuracy.gts(fcast, test) 

Примечание:

  • Вашей спецификация иерархии не имеет смысла. Используйте либо узлы, либо имена bnames +, но не оба.
  • У вас есть 17 временных рядов, но только 14 на нижнем уровне. hts() требуется только нижний уровень. Следовательно, мой пример использует 14 серий.

 Смежные вопросы

  • Нет связанных вопросов^_^