你如何处理nnetar的趋势?预测此示例的最佳方法是什么:
library(timeDate)
library(forecast)
library(lattice)
library(ggplot2)
library(caret)
set.seed(1234)
T <- seq(0,100,length=100)
Y <- 10 + 2*T + rnorm(100)
fit <- nnetar(Y)
plot(forecast(fit,h=30))
points(1:length(Y),fitted(fit),type="l",col='red')
Thx&amp;亲切的问候
答案 0 :(得分:3)
您有两种选择。
您可以告诉nnetar
使用更多订单(如果您打印fit
,您会看到它只在您的示例中使用了一个延迟。)
fit <- nnetar(Y, p=5)
plot(forecast(fit,h=30))
您可以将趋势直接添加到模型中,作为带有xreg
参数的外部回归量。请注意,您还需要为预测提供该参数(我给出的值并不完全适用于您的示例,但是为了说明目的,它可以很好地工作)。
fit <- nnetar(Y, xreg=T)
plot(forecast(fit,xreg=101:130, h=30))
对于您的示例问题,要么有效。虽然更一般地说,如果你知道趋势是什么,第二种选择可能是最好的。
顺便提一下,请记住R uses capital "T" as shorthand for TRUE
(同样地&#34; F&#34;对于FALSE
),所以压倒这会导致一些混乱或诱发错误。例如,它使我在写xreg=T
之后做了双重拍摄。