2016-08-08 8 views
3

Ich versuche, eine Prognose mithilfe einer exponentiellen Glättungsmethode erstellen, aber den Fehler "nicht saisonale Daten". Dies ist eindeutig nicht wahr - siehe Code unten. Warum erhalte ich diesen Fehler? Sollte ich eine andere Funktion verwenden (sollte in der Lage sein, einfache, doppelte, gedämpfte Trend-, Saison-, Winters-Methode durchzuführen)?ETS: Fehler in ETS (Zeitreihen, Modell = "MAM"): Nonseasonal Daten

library(forecast) 

timelen<-48 # use 48 months 
dates<-seq(from=as.Date("2008/1/1"), by="month", length.out=timelen) 

# create seasonal data 
time<-seq(1,timelen) 
season<-sin(2*pi*time/12) 
constant<-40 
noise<-rnorm(timelen,mean=0,sd=0.1) 
trend<-time*0.01 
values<-constant+season+trend+noise 

# create time series object 
timeseries<-as.ts(x=values,start=min(dates),end=max(dates),frequency=1) 
plot(timeseries) 

# forecast MAM 
ets<-ets(timeseries,model="MAM") # ANN works, why MAM not? 
ets.forecast<-forecast(ets,h=24,level=0.9) 
plot(ets.forecast) 

Dank & freundlichen Grüßen

Antwort

2

Sie ts einfach verwenden sollten eine Zeitreihe aus einem numerischen Vektor zu erstellen. Weitere Informationen finden Sie in der Hilfedatei.

Ihre Start- und Endwerte sind nicht korrekt angegeben. Und die Frequenz auf 1 einstellen ist nicht eine gültige Saisonalität, es ist das gleiche wie keine Saisonalität überhaupt.

Versuchen:

timeseries <- ts(data=values, frequency=12) 
ets <- ets(timeseries, model="MAM") 
print(ets) 
#### ETS(M,A,M) 
#### Call: 
#### ets(y = timeseries, model = "MAM") 
#### ... 

enter image description here

Die Frage in Ihren Kommentaren, warum ANN funktioniert, weil die dritten N keine seasonnality bedeuten, so kann das Modell auch mit einer nicht-saisonalen Zeitreihen berechnet werden.