2015-02-07 2 views
1

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

`> accuracy(f,Test) 
        ME  RMSE  MAE  MPE  MAPE ACF1 Theil's U 
Training set  NaN  NaN  NaN  NaN  NaN NA  NA 
Test set  0.9064933 0.9064933 0.9064933 0.4060658 0.4060658 NA  NA 
Warning message: 
In trainingaccuracy(f, test, d, D) : test elements must be within sample` 

Тест:

`Jan  Feb  Mar  Apr  May  Jun  Jul 
2012 223.23801 203.51890 195.21139 169.68900 157.63439 135.79616 96.84895 
      Aug  Sep  Oct  Nov  Dec 
2012 100.42089 62.51129 49.18672 22.10280 5.00000` 

я е по этому коду:

`f <- list() 
for (i in 1:12) { 
    demfit <- ets(Dem2) 
    f[[i]] <- forecast(demfit, 1) #start filling the f list with values 
    Dem2[length(Dem2)+1] <- f[[1]]$mean[1] 
} 
f <- unlist(f)` 

Этот код стремятся получить один шаг вперед прогнозирует в 12 раз (на каждый раз, когда я обновить мой серия по прогнозируемому значению)

Благодарим за помощь.

+0

Я просто читал документацию 'accuracy' и заметил, что второй аргумент' accuracy' функции 'x'. Третий аргумент - фактически 'test'. Так вы можете попробовать: 'точность (f, test = Test)'? – LyzandeR

+0

Я думаю, что это то же самое, но если вы посмотрите на результат точности, то нет меры MASE – MAYA

+0

Можете ли вы привести пример 'Dem2', чтобы мы могли запустить код? – NicE

ответ

1

Наконец, я решил мою проблему, делая этот код:

fl<-structure(list(mean=K,x=Dem2,fitted=f1$fitted),class="forecast")

Он создает объект из класса «прогноза», который содержит необходимый элемент для вычисления меры таза.

Спасибо

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