Schnelle Fourier-Transformation in R
Ich habe einen Datensatz mit der Anzahl der stündlichen Besuche ein Tier während eines Zeitraums von 12 Monaten. Ich will die Fast-Fourier-Transformation zu untersuchen zyklischen Muster und Periodizität. In der Vergangenheit habe ich verwendet Statistica für diese, aber ich möchte mit den R bekommt man einen plot der spektralen Dichte vs. Zeit. Gibt es einen einfachen Weg, dies zu tun in R? Ich möchte zu identifizieren, 12 und 24 hr peak in der Aktivität, wenn möglich.
InformationsquelleAutor der Frage user1626688 | 2012-12-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist was Sie versuchen können:
periodogram
ausTSA
- Paket, it-sofort-plots eine periodogram.periodogram
ausGeneCycle
gibt es eine Liste von Frequenzen und die geschätzte power spektrale Dichte. Es ist eine wrapper-Funktion fürstats::spectrum
mit einigen speziellen Optionen, die eingestellt werden.spectrum
ausstats
ermöglicht es Ihnen, wählen Sie die Methode zur Schätzung der spektralen Dichte: entweder periodogram oder mit autoregressiven Prozess.cpgram
ausstats
Grundstücke cumulative periodogram zusammen mit einem Konfidenzintervall.fft
siehe Beispiele hier.Sehen
?cpgram
und ähnlich für alle details, und im Kopf behalten, dass es z.B.TSA::periodogram
undGeneCycle::periodogram
wenn die Namen der Funktionen übereinstimmen.Wie Sie wahrscheinlich wissen, die gegebenen Zeitreihen werden muss detrended, so z.B.
diff(x)
stattx
. Und schließlich, die Länge der Zeit, die Serie muss teilbar durch 12 wie erkennen zu können, sind 12-und 24-Stunden-Frequenzen, es kann erreicht werden, indem z.B.x[-(1:(length(x) %% 12))]
, wox
ist detrended Zeitreihen.InformationsquelleAutor der Antwort Julius
Verwenden
spectrum
zu tun, eine spektrale Dichte Analyse; auchfft
für die Basis der schnellen Fourier-Transformation.InformationsquelleAutor der Antwort Hong Ooi