2016-11-23 16 views
1

Я пытаюсь реализовать перекрестную валидность для моего временного ряда, но наткнулся на ошибку прогнозирования.Ошибка «объект не найден» при создании прогноза с установленной моделью «tslm»

library('forecast') 

data_aero <- c(579, 624, 651, 687, 745, 753, 844, 965, 1076, 1078, 1107) 
data_railway <-c(1417, 1507, 1696, 1831, 1985, 1506, 1854, 2059, 2104, 1932, 1778) 


data.ts <- ts(data=data.frame(aero = data_aero, railway = data_railway), start = 2004) 

st <- 2003 
limit <- 2013 
en <- 2014 

data.ts.train <- window(data.ts, start=st, end=limit) 
data.ts.test <- window(data.ts, start=limit+1, end=en) 


m <- tslm(aero~railway, data=data.ts.train) 

До здесь все нормально, но если я

forecast(m, h=1) 

Я получаю сообщение об ошибке

Error in eval(expr, envir, enclos) : object 'railway' not found 

ответ

3

Вы должны указать railway, тоже:

forecast(m, h = 1, newdata = data.frame(railway = 1)) 
#  Point Forecast  Lo 80 Hi 80  Lo 95 Hi 95 
#2014  -244.3887 -690.9415 202.1641 -981.6033 492.8259 

Если вы делаете k s tep вперед, вам нужно указать k новые значения для всех ковариатов. В приведенном выше примере я использовал в качестве примера railway = 1.

Имейте в виду, forecast основная функция, с большим количеством способов:

methods(forecast) 
# [1] forecast.ar   forecast.Arima  forecast.bats  
# [4] forecast.default* forecast.ets   forecast.forecast* 
# [7] forecast.fracdiff forecast.HoltWinters forecast.lm   
#[10] forecast.mlm*  forecast.mts*  forecast.nnetar  
#[13] forecast.stl   forecast.stlm  forecast.StructTS 
#[16] forecast.tbats  forecast.ts*   forecast.varest* 

Если поместить "tslm", у вас есть:

class(m) 
# [1] "lm" 

поэтому forecast.lm называется. Похоже, вы довольно зависимы от forecast.Arima, где нужно установить только h. Прочтите по телефону ?forecast.lm.

+0

Впечатляющий. Кто мог подумать. Да, действительно. Я пробовал несколько моделей, арима - одна из них :-) Вопрос: Железная дорога = 1 означает, что железная дорога также должна быть спрогнозирована, или это означает, что значение «1» берется за железную дорогу переменная в прогнозировании? – arthur

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

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