Welche Methode kann verwendet werden, um Saisonalität in Daten zu erkennen?


56

Ich möchte die Saisonabhängigkeit von Daten erkennen, die ich erhalte. Es gibt einige Methoden, die ich gefunden habe, wie das Diagramm der saisonalen Unterreihen und das Autokorrelationsdiagramm, aber die Sache ist, dass ich nicht verstehe, wie man das Diagramm liest. Kann mir jemand helfen? Die andere Sache ist, gibt es andere Methoden, um die Saisonalität mit oder ohne das Endergebnis in der Grafik zu erkennen?


1
Sie können den tatsächlichen Graphen angeben, den Sie nicht verstehen können.
Karl

Bevorzugter die ursprünglichen Daten, die verwendet werden können, um den "störenden" ACF zu erzeugen.
IrishStat


1
siehe: journals.ametsoc.org/doi/abs/10.1175/JCLI-D-10-05012.1 Qian, C., Z Wu, C Fu und D Wang, 2011: Zum Wechsel von El Niño: Ein Blick aus zeitlicher Perspektive Zyklus, interannuelle Variabilität und mittlerer Zustand. J. Climate, 24 (24), 6486–6500

Antworten:


70

Eine wirklich gute Möglichkeit, die Periodizität in einer regulären Datenreihe zu ermitteln, besteht darin, das Leistungsspektrum zu überprüfen, nachdem ein allgemeiner Trend entfernt wurde . (Dies eignet sich gut für ein automatisiertes Screening, wenn die Gesamtleistung auf einen Standardwert wie z. B. 1 normiert ist.) Das Entfernen des vorläufigen Trends (und das optionale Differenzieren zum Entfernen der seriellen Korrelation) ist wichtig, um zu vermeiden, dass Zeiträume mit anderen Verhaltensweisen verwechselt werden.

Das Leistungsspektrum ist die diskrete Fourier-Transformation der Autokovarianzfunktion einer entsprechend geglätteten Version der Originalserie. Wenn Sie sich die Zeitreihe als Abtastung einer physikalischen Wellenform vorstellen, können Sie abschätzen, wie viel von der Gesamtleistung der Welle in jeder Frequenz übertragen wird. Das Leistungsspektrum (oder Periodogramm ) zeigt die Leistung in Abhängigkeit von der Frequenz. Zyklische (dh sich wiederholende oder saisonale Muster) werden als große Spitzen angezeigt, die sich bei ihren Frequenzen befinden.

Betrachten Sie als Beispiel diese (simulierte) Zeitreihe von Residuen einer täglichen Messung für ein Jahr (365 Werte).

Serie von Residuen

Die Werte schwanken um ohne erkennbare Trends, was zeigt, dass alle wichtigen Trends entfernt wurden. Die Fluktuation erscheint zufällig: Es ist keine Periodizität erkennbar.0

Hier ist eine weitere grafische Darstellung derselben Daten, die uns hilft, mögliche periodische Muster zu erkennen.

Serie von Residuen, gefüllt mit 0

Wenn Sie wirklich genau hinschauen , können Sie möglicherweise ein lautes, aber sich wiederholendes Muster erkennen, das 11 bis 12 Mal auftritt. Die langen Folgen von Werten über und unter Null lassen zumindest auf eine positive Autokorrelation schließen, was zeigt, dass diese Reihe nicht vollständig zufällig ist.

Hier ist das Periodogramm für Frequenzen bis zu 91 (ein Viertel der gesamten Serienlänge). Es wurde mit einem Welch-Fenster konstruiert und auf die Einheitsfläche normiert (für das gesamte Periodogramm, nicht nur den hier gezeigten Teil).

Periodogramm

Die Leistung sieht aus wie "weißes Rauschen" (kleine zufällige Schwankungen) plus zwei hervorstechende Spitzen. Sie sind schwer zu übersehen, nicht wahr? Der größere tritt in einem Zeitraum von 12 und der kleinere in einem Zeitraum von 52 auf. Diese Methode hat dabei einen monatlichen Zyklus und einen wöchentlichen Zyklus in diesen Daten festgestellt . Das ist wirklich alles was dazu gehört. Um die Erkennung von Zyklen ("Saisonalität") zu automatisieren, scannen Sie einfach das Periodogramm (eine Liste von Werten) auf relativ große lokale Maxima.

Es ist Zeit zu enthüllen, wie diese Daten erstellt wurden.

Daten zerlegt in Signal plus Rauschen

Die Werte werden aus einer Summe von zwei Sinuswellen erzeugt, eine mit der Frequenz 12 (mit der quadratischen Amplitude 3/4) und eine mit der Frequenz 52 (mit der quadratischen Amplitude 1/4). Dies sind die Spitzen, die im Periodogramm festgestellt werden. Ihre Summe wird als dicke schwarze Kurve dargestellt. Dann wurde normales Rauschen der Varianz 2 hinzugefügt, wie durch die hellgrauen Balken gezeigt, die sich von der schwarzen Kurve zu den roten Punkten erstrecken. Dieses Rauschen verursachte die leisen Wackelbewegungen am unteren Rand des Periodogramms, die andernfalls nur eine flache 0 wären. Zwei Drittel der gesamten Variation der Werte sind nicht periodisch und zufällig, was sehr verrauscht ist. Deshalb ist es so Es ist so schwierig, die Periodizität nur durch Betrachten der Punkte zu erkennen. Nichtsdestotrotz (zum Teil, weil es so viele Daten gibt) ist es einfach, die Frequenzen mit dem Periodogramm zu finden und das Ergebnis ist klar.

Anweisungen und Ratschläge zum Berechnen von Periodogrammen finden Sie auf der Website " Numerical Recipes" (Numerische Rezepte). Lesen Sie den Abschnitt "Schätzung des Leistungsspektrums mithilfe der FFT". Rhat Code für die Periodogrammschätzung . Diese Illustrationen wurden in Mathematica 8 erstellt; Das Periodogramm wurde mit seiner "Fourier" -Funktion berechnet.


2
Die Annahme "nach dem Entfernen eines Gesamttrends" ist die Achillesferse, da es viele Zeittrends geben kann, von denen in Ihrem Beispiel viele Pegelverschiebungen ausgeschlossen wurden. Die Vorstellung, dass die Eingabeserien deterministisch sind, widerspricht dem Möglichen Vorhandensein einer saisonalen und regelmäßigen ARIMA-Struktur. Unbehandelte Ungewöhnliche One-Time Werte werden jedes Periodogramm-basiertes Identifikationsschema aufgrund einer abwärts gerichteten Vorspannung auf die Periodogramm Schätzungen verzerren nicht significance.If Nachgeben wöchentliche und / oder monatliche Effekte zu einem bestimmten Zeitpunkt in der Vergangenheit veränderten die Periodogramm-basierten Verfahren scheitern würden
IrishStat

@Irish Ich denke, Ihr Kommentar kann etwas übertreiben. Das Suchen und Behandeln von "Ungewöhnlichen Einmalwerten" (auch als Ausreißer bezeichnet) ist am grundlegendsten. Daher sollte hier nur betont werden, dass einige Zeitreihenschätzer möglicherweise empfindlich gegenüber Ausreißern sind. "Deterministisch in der Natur" stellt die Grundideen falsch dar: Niemand nimmt an, dass es Determinismus gibt (was durch die enorme Menge an Geräuschen in der Simulation belegt wird). Die Simulation enthält ein bestimmtes periodisches Signal als Modell - in der Realität immer ungefähr -, um nur den Zusammenhang zwischen Periodogramm und Saisonalität zu veranschaulichen. (Fortsetzung ...)
whuber

2
Ja, Änderungen der Saisonalität können das Periodogramm (und das ACF usw.) verdecken, insbesondere Änderungen der Frequenz (unwahrscheinlich) oder Phase (möglich). Die Referenzen in meinem Beitrag bieten eine Lösung dafür: Sie empfehlen die Verwendung eines sich bewegenden Fensters für die Periodogrammschätzung. Das hat eine Kunst, und natürlich gibt es Fallstricke, so dass viele Zeitreihenanalysen von einer fachmännischen Behandlung profitieren, wie Sie befürworten. Es stellt sich jedoch die Frage, ob es "andere Methoden zum Erkennen der Saisonalität" gibt, und das Periodogramm ist zweifellos eine statistisch leistungsfähige, rechnerisch effiziente und leicht interpretierbare Option.
Whuber

In meiner Welt sind Sinus / Cosinus "deterministische Effekte", ähnlich wie Indikatoren für den Monat des Jahres. Durch das Anpassen eines vordefinierten Modells werden die angepassten Werte auf ein benutzerdefiniertes Muster beschränkt, das häufig unter dem Standard liegt. Die Daten sollten "abgehört" werden, um dem Analysten / der fortgeschrittenen Computersoftware zu helfen, zwischen festen und stochastischen Eingaben effektiv zu unterscheiden der Serie. Meiner Meinung nach "überkauft" die Verwendung des Periodogramms die einfache statistische Modellierung
IrishStat

2
@whuber Dasselbe zu wiederholen ist möglicherweise nicht sinnvoll. Es kann jedoch auch hilfreich sein, den Absatz unter dem Periodogramm zu korrigieren, um zu sagen, dass die Spitzen mit einer "Häufigkeit" von 12 und 52 Mal pro Jahr und nicht mit einer "Häufigkeit von" lokalisiert sind. Es kann auch hilfreich sein, die Handlung so zu korrigieren, dass "Frequenz" anstelle von "Punkt" angezeigt wird, wenn Sie der Meinung sind, dass dies nicht zu ärgerlich ist.
Celelibi

19

Hier ist ein Beispiel mit monatlichen Daten zu Arbeitslosenanträgen aus einer Stadt in New Jersey (aus Stata, nur weil ich diese Daten ursprünglich darin analysiert habe). Saisonalität ACF

Die Höhen der Linien geben die Korrelation zwischen einer Variablen und ihrer Verzögerung an. Der graue Bereich gibt Ihnen einen Eindruck davon, ob diese Korrelation signifikant ist (dieser Bereich dient nur als Richtlinie und ist nicht die zuverlässigste Methode, um die Signifikanz zu testen). Wenn diese Korrelation hoch ist, gibt es Hinweise auf eine serielle Korrelation. Beachten Sie die Buckel, die um die Zeiträume 12, 24 und 36 auftreten. Da dies monatliche Daten sind, deutet dies darauf hin, dass die Korrelation stärker wird, wenn Sie sich Zeiträume genau 1, 2 oder 3 Jahre zuvor ansehen. Dies ist ein Beweis für die monatliche Saisonalität.

Sie können diese Beziehungen statistisch testen, indem Sie die Variable auf Dummy-Variablen zurückführen, die die Saisonalitätskomponente angeben - hier Monats-Dummies. Sie können die gemeinsame Bedeutung dieser Dummies testen, um die Saisonalität zu testen.

Diese Vorgehensweise ist nicht ganz richtig, da der Test erfordert, dass die Fehlerausdrücke nicht seriell korreliert werden. Bevor wir diese Saisonalitätsattrappen testen, müssen wir die verbleibende serielle Korrelation entfernen (normalerweise durch Einbeziehen von Verzögerungen der Variablen). Möglicherweise gibt es Impulse, Unterbrechungen und alle anderen Zeitreihenprobleme, die Sie ebenfalls beheben müssen, um die entsprechenden Testergebnisse zu erhalten. Sie haben nicht danach gefragt, deshalb werde ich nicht ins Detail gehen (außerdem gibt es viele Fragen zum Lebenslauf zu diesen Themen). (Um Ihre Neugier zu stillen, sind für diese Serie die Monats-Dummies, eine einzelne Verzögerung und eine Shift-Komponente erforderlich, um die serielle Korrelation zu beseitigen.)


4

Die Saisonalität kann und wird häufig im Laufe der Zeit geändert, sodass summarische Maßnahmen zur Erkennung von Strukturen möglicherweise nicht ausreichend sind. Man muss prüfen, ob die ARIMA-Koeffizienten vergänglich sind und ob sich die „saisonalen Dummies“ häufig ändern. In einem 10-Jahres-Zeithorizont gab es beispielsweise in den ersten k Jahren möglicherweise keinen Juni-Effekt, in den letzten 10-k Jahren jedoch Hinweise auf einen Juni-Effekt. Ein einfacher zusammengesetzter Juni-Effekt ist möglicherweise nicht signifikant, da der Effekt über die Zeit nicht konstant war. In ähnlicher Weise kann sich auch eine saisonale ARIMA-Komponente geändert haben. Es sollte darauf geachtet werden, Verschiebungen und / oder lokale Zeittrends auf lokaler Ebene zu berücksichtigen und gleichzeitig sicherzustellen, dass die Varianz der Fehler über die Zeit konstant bleibt. Man sollte Transformationen wie GLS / Weighted Least Squares oder Potenztransformationen wie Logs / Square Roots usw. nicht bewerten. auf die ursprünglichen Daten, aber auf die Fehler aus einem vorläufigen Modell. Die Gaußschen Annahmen haben nichts mit den beobachteten Daten zu tun, sondern allesamt mit den Fehlern aus dem Modell. Dies ist auf die Grundlagen der statistischen Tests zurückzuführen, die das Verhältnis einer nicht zentralen Chi-Quadrat-Variablen zu einer zentralen Chi-Quadrat-Variablen verwenden.

Wenn Sie eine Beispielserie aus Ihrer Welt veröffentlichen möchten, würde ich Ihnen und der Liste gerne eine gründliche Analyse zur Verfügung stellen, die zur Erkennung der saisonalen Struktur führt.


1

Charlies Antwort ist gut, und hier würde ich anfangen. Wenn Sie keine ACF-Diagramme verwenden möchten, können Sie k-1-Dummy-Variablen für die vorhandenen k Zeiträume erstellen. Dann können Sie sehen, ob die Dummy-Variablen in einer Regression mit den Dummy-Variablen (und wahrscheinlich einem Trendbegriff) signifikant sind.

Wenn Ihre Daten vierteljährlich sind: Dummy Q2 ist 1, wenn dies das zweite Quartal ist, sonst 0 Dummy Q3 ist 1, wenn dies das dritte Quartal ist, sonst 0 Dummy Q4 ist 1, wenn dies das vierte Quartal ist, sonst 0 Grundfall (alle 3 Dummies Null)

Vielleicht möchten Sie auch "Zeitreihenzerlegung" in Minitab überprüfen - häufig als "klassische Zerlegung" bezeichnet. Am Ende möchten Sie vielleicht etwas Moderneres verwenden, aber dies ist ein einfacher Anfang.


0

Ich möchte das Hilfeangebot eines IrishStat-Benutzers oder eines anderen Benutzers in meiner realen Beispielserie annehmen. Ich versuche einen saisonalen Index zu erstellen, der auf den letzten 5 Jahren der Rohöl-Futures-Preise basiert. Ich habe es geschafft, eine einfache durchschnittliche Saison zu erstellen, die hier angezeigt werden kann .

Ich möchte jedoch eine fortlaufende jährliche saisonale Grafik reproduzieren (ich vermute, dass fortlaufend bedeutet, dass Start und Ende des Jahres derselbe Wert sind) und auf einer Skala von Null bis 100 liegen, wie im folgenden Bild gezeigt: Bildbeschreibung hier eingeben

Es gibt 15 Jahre tägliche Preisdaten in der Tabelle, die heruntergeladen werden können. Über ein Beispiel oder einen Hinweis, wie das oben genannte erreicht werden kann, würde ich mich sehr freuen.


-1

Ich bin ein bisschen neu in R, aber mein Verständnis der ACF-Funktion ist, dass, wenn die vertikale Linie über der oberen gestrichelten Linie oder unter der unteren gestrichelten Linie verläuft, eine gewisse Autoregression (einschließlich Saisonalität) vorliegt. Versuchen Sie, einen Sinusvektor zu erstellen


Das Anpassen von Sinus / Cosinus usw. kann für einige physikalische / elektrische Zeitreihen nützlich sein, Sie müssen jedoch das MSB (Model Specification Bias) berücksichtigen.
IrishStat

1
Autoregression bedeutet keine Saisonalität.
Jens
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.