2016-04-11 16 views
0

Wie gehen Sie mit Trends mit nnetar umgehen? Was wäre der beste Weg für dieses Beispiel zu prognostizieren:Modellierung (deterministisch) Trend mit 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 & freundlichen Grüßen

Antwort

3

Sie zwei Möglichkeiten.

  1. Sie können nnetar sagen mehr Aufträge zu verwenden (wenn Sie fit drucken Sie werden sehen, es verwendet nur eine Verzögerung in Ihrem Beispiel).

    fit <- nnetar(Y, p=5) 
    plot(forecast(fit,h=30)) 
    
  2. Sie können den Trend direkt an das Modell als externes Regressor- mit dem xreg Argument hinzufügen. Beachten Sie, dass Sie dieses Argument auch für die Prognose angeben müssen (die Werte, die ich angegeben habe, sind für Ihr Beispiel nicht genau richtig, funktionieren aber für illustrative Zwecke gut genug).

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

Für Ihr Beispiel Problem, entweder funktioniert. Wenn Sie im Allgemeinen wissen, was der Trend ist, ist die zweite Option wahrscheinlich am besten.

Übrigens, denken Sie daran, dass R uses capital "T" as shorthand for TRUE (und ähnlich "F" für FALSE), so dass das Überschreiben kann einige Verwirrung verursachen oder Fehler verursachen. Zum Beispiel hat es mich dazu gebracht, eine Doppelaufnahme zu machen, nachdem ich xreg=T geschrieben habe.