"object not found" 使用拟合的 "tslm" 模型进行预测时出错
"object not found" error when making forecast with a fitted "tslm" model
我正在尝试为我的时间序列实施留一法交叉验证,但遇到了预测错误。
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
你也需要指定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
步预测,您需要为所有协变量指定 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
.
我正在尝试为我的时间序列实施留一法交叉验证,但遇到了预测错误。
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
你也需要指定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
步预测,您需要为所有协变量指定 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
.