0

您如何使用 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')

谢谢&亲切的问候

4

1 回答 1

4

你有两个选择。

  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使用大写“T”作为简写TRUE(类似地,“F”表示FALSE),因此覆盖它可能会导致一些混乱或引发错误。例如,它让我在写作后做了双重考虑xreg=T

于 2016-04-15T15:51:07.650 回答