Statistische Ähnlichkeit von Zeitreihen


15

Angenommen, man hat eine Zeitreihe, aus der man verschiedene Messungen wie Periode, Maximum, Minimum, Durchschnitt usw. durchführen und daraus eine Modell-Sinuswelle mit denselben Attributen erstellen kann. Gibt es statistische Ansätze, die man quantifizieren könnte? Wie genau stimmen die tatsächlichen Daten mit dem angenommenen Modell überein? Die Anzahl der Datenpunkte in der Reihe würde zwischen 10 und 50 Punkten liegen.

Ein sehr vereinfachter erster Gedanke war, der Richtungsbewegung der Sinuswelle einen Wert zuzuweisen, dh +1 +1 +1 +1 -1 -1 -1 -1 -1 -1 -1 +1 +1 +1 +1, mache dasselbe mit den tatsächlichen Daten und quantifiziere dann irgendwie den Grad der Ähnlichkeit der Richtungsbewegung.

Bearbeiten: Nachdem ich mir mehr Gedanken darüber gemacht habe, was ich wirklich mit meinen Daten machen möchte, und angesichts der Antworten auf meine ursprüngliche Frage, brauche ich einen Entscheidungsalgorithmus, um zwischen konkurrierenden Annahmen zu wählen: nämlich, dass meine Daten im Grunde linear sind (oder Trending) mit Rauschen, das möglicherweise zyklische Elemente haben könnte; Meine Daten sind im Grunde genommen zyklisch, ohne dass ein richtungsweisender Trend zu nennen wäre. Die Daten sind im Wesentlichen nur Rauschen. oder es wechselt zwischen einem dieser Zustände.

Meine Gedanken sind jetzt, vielleicht irgendeine Form der Bayes'schen Analyse und der euklidischen / LMS-Metrik zu kombinieren. Die Schritte in diesem Ansatz wären

Erstellen Sie die angenommene Sinuswelle aus Datenmessungen

Passen Sie eine LMS-Gerade an die Daten an

Leiten Sie eine euklidische oder LMS-Metrik für Abweichungen von den Originaldaten für jede der oben genannten ab

Erstellen Sie einen Bayesianischen Prior für jeden basierend auf dieser Metrik, dh 60% der kombinierten Abfahrten hängen von der einen, 40% von der anderen ab und bevorzugen daher die 40%.

Schieben Sie ein Fenster um einen Datenpunkt entlang der Daten und wiederholen Sie die obigen Schritte, um neue% -Metriken für diesen leicht geänderten Datensatz zu erhalten. Dies ist der neue Beweis. Führen Sie die Bayes'sche Analyse durch, um einen Posterior zu erstellen und die Wahrscheinlichkeiten zu ändern, die jede Annahme begünstigen

Wiederholen Sie den gesamten Datensatz (3000+ Datenpunkte) mit diesem Schiebefenster (Fensterlänge 10-50 Datenpunkte). Die Hoffnung / Absicht ist es, die vorherrschende / bevorzugte Annahme an jedem Punkt des Datensatzes zu identifizieren und wie sich diese mit der Zeit ändert

Alle Kommentare zu dieser potenziellen Methodik sind willkommen, insbesondere dazu, wie ich den Bayes'schen Analyseteil tatsächlich implementieren könnte.

Antworten:



5

Wenn Sie ein bestimmtes Modell haben, mit dem Sie vergleichen möchten: Ich würde Least-Squares als Metrik empfehlen, um mögliche Parameterwerte für einen bestimmten Datensatz zu minimieren und zu bewerten. Alles, was Sie im Grunde tun müssen, ist, Ihre Parameterschätzungen einzugeben, diese zu verwenden, um vorhergesagte Werte zu generieren und die durchschnittliche quadratische Abweichung von den wahren Werten zu berechnen.

Sie könnten jedoch in Betracht ziehen, Ihre Frage ein wenig zu drehen: "Welches Modell passt am besten zu meinen Daten?" In diesem Fall würde ich vorschlagen, eine Annahme eines normalverteilten Fehlerausdrucks zu treffen - etwas, das man argumentieren könnte, ist mit der Annahme der kleinsten Quadrate vergleichbar. Dann je nach Wahl des Modells, könnten Sie eine Annahme machen , wie denken Sie , die anderen Modellparameter verteilt sind ( die Zuweisung einen Bayes vor) und die Verwendung so etwas wie das MCMC - Paket von R Probe aus der Verteilung der Parameter. Dann können Sie sich die hinteren Mittelwerte und Varianzen ansehen, um eine Vorstellung davon zu bekommen, welches Modell am besten passt.


Wenn ich zwei mögliche Modelle zur Anpassung an meine Daten hätte, die in meiner ursprünglichen Frage beschriebene Sinuswelle und eine LMS-Geradenanpassung, könnte ich einfach die durchschnittliche quadratische Abweichung von den wahren Datenwerten der Sinuswelle mit den Residuen der vergleichen LMS-Anpassungslinie und wählen Sie dann das Modell mit dem niedrigeren Gesamtwert aus, da dieses Modell eine genauere Anpassung an die Daten aufweist. Wenn ja, wäre es auch sinnvoll, die Daten in zwei Hälften aufzuteilen und dies mit jeder Hälfte separat zu tun. Verwenden Sie dabei die gleichen Sinuswellen- / LMS-Anpassungen, um zu sehen, wie sich jedes Modell mit der Zeit verbessern bzw. verschlechtern kann.
babelproofreader

Ich bin mir nicht sicher. Mein Vorschlag war, eine Kennzahl für die kleinsten Quadrate zu verwenden, aber ich wollte keine lineare Regression ausführen. Möglicherweise überprüfen Sie die Option " Periodische Regression" .
M. Tibbits

Bei Ihrer anderen Frage, könnten Sie die Daten halbieren, wäre ich sehr vorsichtig, da dies die doppelte Mindesthäufigkeit bedeuten würde, die Sie in Betracht ziehen könnten. Möglicherweise müssen Sie sich die Fourier-Koeffizienten ansehen (nehmen Sie eine FFT oder eine DCT und gehen Sie auf sie zurück?!? - Sie sind sich nicht sicher ). Oder vielleicht periodische Regression wie oben erwähnt.
M. Tibbits

3

Ihr "simplistischer erster Gedanke", nur die Richtungsbewegung qualitativ darzustellen, ähnelt im Geiste Keoghs SAX-Algorithmus zum Vergleichen von Zeitreihen. Ich würde Ihnen empfehlen, einen Blick darauf zu werfen: Eamonn Keogh & Jessica Lin: SAX .

Nach Ihrer Bearbeitung klingt es, als würden Sie das Problem jetzt anders angehen, aber Sie werden vielleicht feststellen, dass SAX ein Teil des Puzzles ist.


0

Ich bin zwar etwas zu spät zur Party, aber wenn Sie an etwas Sinusförmiges denken, sind Wavelet-Transformationen ein gutes Werkzeug, das Sie auch in Ihrer Tasche haben sollten. Theoretisch können Sie Wavelet-Transformationen verwenden, um eine Sequenz in verschiedene "Teile" zu zerlegen (z. B. Wellen unterschiedlicher Formen / Frequenzen, Nicht-Wellenkomponenten wie Trends usw.). Eine spezielle Form der Wellentransformation, die pro Tonne verwendet wird, ist die Fouriertransformation, aber in diesem Bereich gibt es viel Arbeit. Ich würde gerne ein aktuelles Paket empfehlen können, aber ich habe seit einiger Zeit keine Signalanalyse durchgeführt. Ich erinnere mich jedoch an einige Matlab-Pakete, die Funktionen in diesem Sinne unterstützen.

Eine andere Richtung, wenn Sie nur versuchen, Trends in zyklischen Daten zu finden, ist der Mann-Kendall-Trend-Test. Es wird häufig zum Erkennen von Änderungen des Wetters oder der Wasserqualität verwendet, die starke saisonale Einflüsse haben. Es hat nicht die Glocken und Pfeifen einiger fortgeschrittener Ansätze, aber da es ein erfahrener statistischer Test ist, ist es ziemlich einfach zu interpretieren und zu berichten.

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.