Verwenden der Fourier-Analyse für die Zeitreihenvorhersage
Für Daten, die bekannt, um saisonale oder tägliche Muster, die ich verwenden möchte, eine fourier-Analyse verwendet werden, um Vorhersagen zu treffen. Nach dem ausführen der fft über Zeit-Serien Daten, die ich erhalten Koeffizienten. Wie kann ich diesen Koeffizienten für die Vorhersage?
Ich glaube, FFT setzt Voraus, dass alle Daten, die es erhält, bilden eine Periode, dann, wenn ich einfach nur regenerieren von Daten mit ifft, ich bin auch durch die Weiterführung meiner Funktion, so kann ich diese Werte für die Zukunft zu Werten?
Einfach ausgedrückt: ich führe die fft für t=0,1,2,..10 dann mit ifft auf coef, kann ich regeneriert Zeitreihe für t=11,12,..20 ?
InformationsquelleAutor der Frage user423805 | 2010-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klingt es wie Sie wollen, eine Kombination von extrapolation und Rauschunterdrückung.
Ihnen sagen, Sie möchten, wiederholen Sie die beobachteten Daten über mehrere Perioden. Gut, dann wiederholen Sie einfach die beobachteten Daten. Keine Notwendigkeit für die Fourier-Analyse.
Aber Sie wollen auch zu finden "Muster". Ich nehme an, dass bedeutet das finden die dominierende Frequenz-Komponenten in den beobachteten Daten. Dann ja, nehmen Sie die Fourier-Transformation, erhalten die größten Koeffizienten, und beseitigen Sie den rest.
Als für die periodische Wiederholung: Lassen Sie
z = [x, x]
, d.h., zwei Perioden des Signalsx
. DannZ[2k] = X[k]
für allek
in {0, 1, ..., N-1}, und Nullen sonst.InformationsquelleAutor der Antwort Steve Tjoa
Ich bin mir bewusst, dass diese Frage möglicherweise nicht die tatsächlichen, für Sie mehr, aber für andere, die auf der Suche nach Antworten ich schrieb ein sehr einfaches Beispiel der fourier-Hochrechnung in Python https://gist.github.com/tartakynov/83f3cd8f44208a1856ce
Bevor Sie das Skript ausführen, stellen Sie sicher, dass Sie alle Abhängigkeiten installiert (numpy, matplotlib). Fühlen Sie sich frei zu Experimentieren.
P. S. Lokal Stationäre Wavelet-vielleicht besser als fourier-extrapolation. LSW wird Häufig verwendet, in der Vorhersage von Zeitreihen. Der Hauptnachteil der fourier-extrapolation ist, dass es einfach wiederholt Ihre Serie mit Periode N, wo N - die Länge der Zeitserien.
InformationsquelleAutor der Antwort tartakynov
Beim ausführen einer FFT, die auf Zeitreihen von Daten, wandeln Sie es in die Frequenz-Domäne. Die Koeffizienten multiplizieren Sie die Begriffe in die Reihe (Sinus-und Cosinus oder komplexe Exponentialfunktionen), jedes mit einer verschiedenen Frequenz.
Extrapolation ist immer eine gefährliche Sache, aber Sie sind willkommen, es zu versuchen. Sie sind mit vergangenen Daten die Zukunft vorherzusagen, wenn Sie dies tun: "das morgige Wetter Vorhersagen durch den Blick auf heute." Nur sich der Risiken bewusst sein.
Ich würde empfehlen, das Lesen "Black Swan".
InformationsquelleAutor der Antwort duffymo
können Sie die Bibliothek verwenden, dass @tartakynov geschrieben und, nicht zu wiederholen, genau die gleichen Zeit-Serie in den Vorhersagen (overfitting), können Sie fügen Sie einen neuen parameter an die Funktion, die aufgerufen
n_param
und fix eine untere Grenzeh
für die Amplituden der Frequenzen.in der Regel finden Sie, dass ein signal, es gibt einige Frequenzen, die deutlich höhere amplitude hat als die andere, so dass, wenn Sie wählen Sie diese Frequenzen werden Sie in der Lage zu isolieren, die periodische Natur des Signals
können Sie fügen Sie diese beiden Zeilen, die sind bestimmt indem bestimmte Anzahl
n_param
nur das hinzufügen dieser werden Sie in der Lage zu prognostizieren, schöne und glatte
andere nützliche Artikel über FFt:
Prognose FFt im R
InformationsquelleAutor der Antwort Pablo A