2013-07-31 17 views
5

Ich verwende die fourier() und fourierf() Funktionen in Ron Hyndman ausgezeichneten forecast Paket in R., um zu überprüfen, ob der Suche die gleichen Bedingungen ausgewählt und verwendet in fourier() und fourierf(), aufgetragen ich einige der Ausgangsbedingungen.Fourier-Transformation() vs fourierf() Funktion in R

Unten sind die ursprünglichen Daten mit ts.plot(data). Es gibt eine Häufigkeit von 364 in der Zeitreihe, FYI. data

Unten ist die Handlung der Begriffe unter Verwendung fourier(data,3). Grundsätzlich sieht es aus wie Spiegelbilder der vorhandenen Daten.

fourier

gerade zur sin1 Begriff des Ausgangs Sehen, wieder bekommen wir einige Variationen, die oben mit den Daten ähnlich 364-Tage-Saisonalität in Zeile zeigt.

fourier2

Allerdings, wenn ich die Ergebnisse der Fourier-plotten Prognose mit fourierf(data,3, 410) ich die folgenden Daten zu sehen. Es scheint viel reibungsloser als die von der ursprünglichen fourier Funktion bereitgestellten Bedingungen. fourierf

Also, ich frage mich, wie die Ergebnisse der fourier() und fourierf() verwandt sind. Ist es möglich, nur ein konsolidiertes Fourier-Ergebnis zu sehen, so dass Sie sehen können, wie sich das Sin- oder Cosinus-Ergebnis durch die vorhandenen Daten und dann durch den Prognosezeitraum bewegt? Wenn nicht, wie kann ich bestätigen, dass die von fourierf() erstellten Begriffe zu den In-Sample-Daten passen?

mag ich es in einer auto.arima oder glm Funktion mit anderen externen Regressoren wie folgt verwenden:

trainFourier<-fourier(data,3) 

trainFourier<-as.data.frame(trainFourier) 
trainFourier$exogenous<-exogenousData 
arima.object<-auto.arima(data, xreg=trainFourier) 

futureFourier<-fourierf(data,3, 410) 

fourierForecast<-forecast(arima.object, xreg=futureFourier, h=410) 

und ganz sicher sein will, dass die auto.arima die richtige Armatur hat (unter Verwendung der Begriffe von fourier()) zu dem, was ich unter xreg für forecast (die Begriffe aus einer anderen Funktion hat, dh ffourier()).

Antwort

11

Das Problem herausgefunden. Ich benutzte sowohl die fda und forecast Pakete. fda, die für die funktionale Datenanalyse und Regression ist, hat seine eigene fourier() Funktion. Wenn ich fda lösen, sieht meine S1 Begriff aus fourier(data,3) wie folgt aus:

fourier()

die Linien gut mit der Prognose Fourier wenn ich ts.plot(c(trainFourier$S1,futureFourier$S1))

Moral der Geschichte verwenden - sehen, was Ihre Pakete supress Leute!