使用 nnetar 建模(确定性)趋势

Modelling (deterministic) trend with nnetar

你如何处理 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')

谢谢&亲切的问候

你有两个选择。

  1. 您可以告诉 nnetar 使用更多订单(如果您打印 fit 您会看到它在您的示例中只使用了一个延迟)。

    fit <- nnetar(Y, p=5)
    plot(forecast(fit,h=30))
    
  2. 您可以使用 xreg 参数将趋势作为外部回归变量直接添加到模型中。请注意,您还需要为预测提供该参数(我给出的值并不完全适合您的示例,但对于说明目的来说已经足够好了)。

    fit <- nnetar(Y, xreg=T)
    plot(forecast(fit,xreg=101:130, h=30))
    

对于您的示例问题,两者都可行。虽然更一般地说,如果你知道趋势是什么,第二个选项可能是最好的。

顺便说一下,请记住 R uses capital "T" as shorthand for TRUE("F" 与 FALSE 类似),因此覆盖它可能会导致一些混乱或引发错误。例如,它让我在写完 xreg=T.

后再次考虑