Ich habe eine große Anzahl von Dateien (1200), die jeweils eine große timeserie mit Daten über die Höhe des Grundwassers enthält. Das Startdatum und die Länge der Serie ist für jede Datei unterschiedlich. Es gibt große Datenlücken zwischen Daten, zum Beispiel (kleiner Teil einer solchen Datei): Ich möchte die durchschnittliche Höhe über 5 Jahre berechnen. Also, im Falle des Beispiels 14-1-1980 5 Jahre, 14-1-1985 5 Jahre. Die Anzahl der Datenpunkte ist für jede Berechnung des Durchschnitts unterschiedlich. Es ist sehr wahrscheinlich, dass das Datum 5 Jahre später nicht in der Datenmenge als Datenpunkt sein wird. Daher denke ich, muss ich sagen, R irgendwie, um einen Durchschnitt in einer bestimmten Zeitspanne zu nehmen. Ich suchte im Internet, aber nicht etwas, das meine Bedürfnisse passt. Viele nützliche Pakete wie uts, Zoo, lubridate und die Funktion aggregate vorbei. Statt der Lösung näher zu kommen, werde ich immer mehr verwirrt, welchen Ansatz das beste für mein Problem ist. Vielen Dank im Voraus im Voraus gefragt 5. November um 17: 41Exponential Moving Averages für irreguläre Zeitreihe Bei der Zeitreihenanalyse gibt es oft einen Bedarf an Glättungsfunktionen, die schnell auf Veränderungen im Signal reagieren. In der typischen Anwendung können Sie ein Eingangssignal in Echtzeit verarbeiten und so etwas wie den aktuellen Durchschnittswert berechnen oder eine momentane Steilheit erhalten. Aber reale Welt Signale sind oft laut. Bei einigen verrauschten Abtastungen wird der aktuelle Wert des Signals oder seine Steigung stark variieren. Moving Averages Die einfachste Glättungsfunktion ist ein gleitender Durchschnitt. Als Muster kommen Sie in einen Durchschnitt der neuesten N-Werte. Dies führt zu einer Verzögerung 8211 oder Latenz. Ihr Durchschnitt wird immer um die Breite des gleitenden Durchschnitts verzögert. Das obige Beispiel ist relativ teuer zu berechnen. Für jede Probe müssen Sie über die gesamte Größe des Fensters iterieren. Aber es gibt billigere Möglichkeiten 8211 die Summe aller Samples im Fenster in einem Puffer zu halten und die Summe einzustellen, wenn neue Samples kommen: Ein anderer Typ von gleitendem Durchschnitt ist der 8220gewichtete gleitende Durchschnitt8221, der für jede Position im Sample-Fenster gewichtet wird. Vor dem Mitteln multiplizieren Sie jede Probe mit dem Gewicht dieser Fensterposition. Technisch wird dies als 8220convolution8221 bezeichnet. Eine typische Gewichtungsfunktion wendet eine Glockenkurve auf das Probenfenster an. Dies ergibt ein Signal, das stärker auf die Mitte des Fensters abgestimmt ist und noch etwas tolerant gegenüber verrauschten Abtastwerten ist. In der Finanzanalyse verwenden Sie häufig eine Gewichtungsfunktion, die die jüngsten Stichproben mehr bewertet, um einen gleitenden Durchschnitt zu geben, der die jüngsten Stichproben genauer verfolgt. Ältere Proben erhalten zunehmend weniger Gewicht. Dadurch werden die Effekte der Latenz etwas etwas gemildert und dennoch eine gute Glättung gegeben: Mit einem gewichteten Mittelwert müssen Sie immer über die gesamte Fenstergröße für jede Probe iterieren (es sei denn, Sie können die zulässigen Gewichte auf bestimmte Funktionen beschränken). Der exponentielle gleitende Durchschnitt Eine andere Art von Durchschnitt ist der exponentielle gleitende Durchschnitt oder EMA. Dies ist oft verwendet, wo Latenz ist kritisch, wie in Echtzeit Finanzanalyse. In diesem Durchschnitt nehmen die Gewichte exponentiell ab. Jede Probe wird um einige Prozent kleiner bewertet als die nächstfolgende Probe. Mit dieser Einschränkung können Sie den gleitenden Durchschnitt sehr effizient berechnen. Wo alpha eine Konstante ist, die beschreibt, wie die Fenstergewichte im Laufe der Zeit abnehmen. Zum Beispiel, wenn jede Probe mit 80 des Wertes des vorherigen Samples gewichtet werden sollte, würden Sie Alpha 0.2 setzen. Je kleiner das Alpha wird, desto länger ist der gleitende Durchschnitt. (Z. B. wird es glatter, aber weniger reaktiv gegenüber neuen Proben). Die Gewichte für eine EMA mit alpha0.20 Wie Sie sehen können, müssen Sie für jede neue Stichprobe nur den Durchschnitt des vorherigen Mittelwertes berechnen. Also ist die Berechnung sehr sehr schnell. In der Theorie tragen alle vorhergehenden Proben zum gegenwärtigen Durchschnitt bei, aber ihr Beitrag wird mit der Zeit exponentiell kleiner. Dies ist eine sehr leistungsfähige Technik, und wahrscheinlich die beste, wenn Sie einen gleitenden Durchschnitt, der schnell auf neue Proben reagieren wollen, hat gute Glättungseigenschaften und ist schnell zu berechnen. Der Code ist trivial: EMA für irreguläre Zeitreihen Die Standard-EMA ist in Ordnung, wenn das Signal in regelmäßigen Zeitabständen abgetastet wird. Aber was ist, wenn Ihre Proben in unregelmäßigen Intervallen kommen Stellen Sie sich ein kontinuierliches Signal, das in unregelmäßigen Abständen abgetastet wird. Dies ist die übliche Situation in der Finanzanalyse. In der Theorie gibt es eine kontinuierliche Funktion für den Wert eines Finanzinstruments, aber Sie können nur dieses Signal Probe, wenn jemand tatsächlich führt einen Handel. So besteht Ihr Datenstrom aus einem Wert, plus die Zeit, zu der es beobachtet wurde. Eine Möglichkeit, dies zu bewältigen, besteht darin, das irreguläre Signal in ein reguläres Signal umzuwandeln, indem Interpolation zwischen Beobachtungen und Resampling durchgeführt wird. Aber das verliert Daten, und es führt wieder Latenz. Es ist möglich, eine EMA für eine unregelmäßige Zeitreihe direkt zu berechnen: In dieser Funktion geben Sie die aktuelle Stichprobe aus Ihrem Signal und dem vorherigen Sample sowie die Zeit zwischen den beiden und den vorherigen Wert zurück Funktion. So wie gut funktioniert diese Arbeit Um zu zeigen, I8217ve erzeugt eine Sinuswelle, dann probiert es in unregelmäßigen Abständen, und führte etwa 20 Lärm. Das ist das Signal wird zufällig variieren - 20 aus dem ursprünglichen 8220true8221 Sinus-Signal. Wie gut der irreguläre exponentielle gleitende Durchschnitt das Signal wiederherstellt. Die rote Linie ist die ursprüngliche Sinuswelle 8211, die in unregelmäßigen Intervallen abgetastet wird. Die blaue Linie ist das Signal mit dem Rauschen hinzugefügt. Die blaue Linie ist das einzige Signal, das die EMA sieht. Die grüne Linie ist die geglättete EMA. Sie sehen, dass es das Signal ziemlich gut erholt. Ein wenig wackelig, aber was kann man von solch einem verrauschten Quellsignal erwarten Es ist um 15 nach rechts verschoben, da die EMA etwas Latenz einführt. Je mehr Sie wollen, desto mehr Latenz werden Sie sehen. Aber von diesem können Sie zB eine augenblickliche Steigung für ein lautes unregelmäßiges Signal berechnen. Was können Sie mit dem Hmm8230 tun. Ressourcen:
No comments:
Post a Comment