如何使用 nnetar 进行超前一步的样本外预测?
How do I make one-step-ahead out-of-sample forecasts with nnetar?
我想评估 R 中 nnetar 时间序列预测模型的样本外一步超前性能。我正在寻找类似于以下代码的东西,但使用的是 nnetar。
#prepare train and test set
train <- lynx[1:100]
test <- lynx[101:length(lynx)]
# fitting out of sample
train.fit <- auto.arima(train)
plot(forecast(train.fit, h = 20))
test.fit <- Arima(test, model = train.fit)
one.step <- fitted(test.fit)
以下使用 nnetar 的尝试不会引发任何错误,但 one.step 结果有 8 个 NA。
fit <- nnetar(train)
plot(forecast(fit, h = 20))
fit2 <- nnetar(test, model = fit)
one.step <- fitted(fit2)
我的真实数据甚至还达不到那么远,我的真实数据包含 700 个训练点的 5 天频率工作日数据。 test.series 保留 28 天。
fit <- nnetar(train.series)
fit2 <- nnetar(test.series, model = fit)
在上面的 fit2 行,我收到错误:
Error in nnet.default(x = c(0.223628229573182, -0.783157335744087, -0.560497369997497, :
weights vector of incorrect length
In addition: Warning message:
In nnetar(test.series, model = fit) :
Reducing number of lagged inputs due to short series
任何 help/examples 将不胜感激。
以下使用预测包 v8.3 的作品:
library(forecast)
series <- ts(rnorm(728), freq=5)
train.series <- subset(series, end=700)
test.series <- subset(series, start=701)
fit <- nnetar(train.series)
fit2 <- nnetar(test.series, model = fit)
one.step <- fitted(fit2)
但是,请注意,您无法通过这种方式获得前几个拟合值,因为对 nnetar
的第二次调用对早期数据一无所知。
以下比较好
fit2 <- nnetar(series, model = fit)
one.step <- subset(fitted(fit2), start=701)
我想评估 R 中 nnetar 时间序列预测模型的样本外一步超前性能。我正在寻找类似于以下代码的东西,但使用的是 nnetar。
#prepare train and test set
train <- lynx[1:100]
test <- lynx[101:length(lynx)]
# fitting out of sample
train.fit <- auto.arima(train)
plot(forecast(train.fit, h = 20))
test.fit <- Arima(test, model = train.fit)
one.step <- fitted(test.fit)
以下使用 nnetar 的尝试不会引发任何错误,但 one.step 结果有 8 个 NA。
fit <- nnetar(train)
plot(forecast(fit, h = 20))
fit2 <- nnetar(test, model = fit)
one.step <- fitted(fit2)
我的真实数据甚至还达不到那么远,我的真实数据包含 700 个训练点的 5 天频率工作日数据。 test.series 保留 28 天。
fit <- nnetar(train.series)
fit2 <- nnetar(test.series, model = fit)
在上面的 fit2 行,我收到错误:
Error in nnet.default(x = c(0.223628229573182, -0.783157335744087, -0.560497369997497, :
weights vector of incorrect length
In addition: Warning message:
In nnetar(test.series, model = fit) :
Reducing number of lagged inputs due to short series
任何 help/examples 将不胜感激。
以下使用预测包 v8.3 的作品:
library(forecast)
series <- ts(rnorm(728), freq=5)
train.series <- subset(series, end=700)
test.series <- subset(series, start=701)
fit <- nnetar(train.series)
fit2 <- nnetar(test.series, model = fit)
one.step <- fitted(fit2)
但是,请注意,您无法通过这种方式获得前几个拟合值,因为对 nnetar
的第二次调用对早期数据一无所知。
以下比较好
fit2 <- nnetar(series, model = fit)
one.step <- subset(fitted(fit2), start=701)