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

时间:2016-04-11 10:25:13

标签: r forecasting trend

你如何处理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;亲切的问候

1 个答案:

答案 0 :(得分:3)

您有两种选择。

  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))
    
  3. 对于您的示例问题,要么有效。虽然更一般地说,如果你知道趋势是什么,第二种选择可能是最好的。

    顺便提一下,请记住R uses capital "T" as shorthand for TRUE(同样地&#34; F&#34;对于FALSE),所以压倒这会导致一些混乱或诱发错误。例如,它使我在写xreg=T之后做了双重拍摄。