Wednesday 20 September 2017

R Gleitender Durchschnitt


Die Breite des sich bewegenden Fensters muss eine ganze Zahl zwischen 1 und n sein, um verschiedene Algorithmen zu wählen. C - eine Version ist in C geschrieben. Sie kann nicht-endliche Zahlen wie NaNs und Infs behandeln (wie Mittelwert (x, na. rm TRUE)) . Es funktioniert am schnellsten für endrulemean. Schnell - zweite, noch schnellere, C-Version. Dieser Algorithmus funktioniert nicht mit nicht-endlichen Zahlen. Es funktioniert auch die am schnellsten für endrule andere als Mittel. R - viel langsamer Code in R geschrieben. Nützlich für das Debuggen und als Dokumentation. Genau wie bei C. mit der Ausnahme, daß alle Additionen unter Verwendung eines Algorithmus durchgeführt werden, der eine zusätzliche Zeichenfolge mit Hinzufügungsfehlern verfolgt und korrigiert, die angibt, wie die Werte am Anfang und Ende der Daten behandelt werden sollen. Es werden nur die ersten und letzten k2-Werte an beiden Enden beeinflusst, wobei k2 die Halbbandbreite k2 k / 2. mean ist - wendet die zugrundeliegende Funktion auf kleinere und kleinere Abschnitte des Arrays an. Entspricht: für (i in 1: k2) outi Mittel (x1: (ik2)). Diese Option ist in C implementiert, wenn algC. Andernfalls wird in R. trim - trim die Endausgabe - Array - Länge gleich der Länge (x) - 2k2 (out out (k21): (n - k2)) durchgeführt. Diese Option imitiert die Ausgabe von apply (embed (x, k), 1, mean) und andere verwandte Funktionen. (En1: k2 x1: k2) Konstante - füllen Sie die Enden mit dem ersten und dem letzten berechneten Wert im Ausgabefeld aus (out1: k2 outk21) NA - füllen Sie die Enden mit NAs (out1: k2 NA ) Func - gleichbedeutend mit Mittelwert, aber impliziert in R. Diese Option kann sehr langsam sein und wird zumeist zum Testen mit einbezogen. Ähnlich wie Endrule in runmed-Funktion, die die folgenden Optionen hat: ldquo c (median, keep, constant) rdquo. specifies ob result Sollte zentriert (Standard), linksbündig oder rechtsbündig sein. Wenn endrule mean dann die Einstellung align nach links oder rechts wird auf die langsamere Umsetzung gleichbedeutend mit endrule func fallen. Abgesehen von den Endwerten ist das Ergebnis von y runmean (x, k) dasselbe wie ldquo für (j (1k2): (n - k2)) yjmean (x (j - k2): (jk2)) rdquo. Der Hauptanreiz, diesen Satz von Funktionen zu schreiben, war relative Langsamkeit der Mehrheit der beweglichen Fensterfunktionen, die in R und seinen Paketen verfügbar sind. Mit Ausnahme von Runmed. Eine laufende Fenster-Median-Funktion, sind alle Funktionen in siehe auch Abschnitt sind langsamer als sehr ineffizient ldquo gelten (embed (x, k), 1, FUN) rdquo Ansatz. Die Relativgeschwindigkeit der Runmean-Funktion ist O (n). Funktion EndRule wendet eine der fünf Methoden an (siehe Endrule-Argument), um Endpunkte des Eingangsarrays x zu verarbeiten. In der aktuellen Version des Codes wird die Default-Endruhe-Option im C-Code berechnet. Das geschieht, um die Geschwindigkeit bei großen bewegten Fenstern zu verbessern. Bei runmean (. Algexact) wird ein spezieller Algorithmus verwendet (siehe Referenzen), um sicherzustellen, dass keine Rundungsfehler auftreten. Daher ist runmean genauer als Filter (x, rep (1 / k, k)) und runmean (.algC) - Funktionen. Gibt einen numerischen Vektor oder eine Matrix mit der gleichen Größe wie x zurück. Nur im Fall von Endruxtrim werden die Ausgangsvektoren kürzer und die Ausgangsmatrizen haben weniger Zeilen. Die Funktion runmean (.algexact) basiert auf dem Code von Vadim Ogranovich, der auf dem Python-Code basiert (siehe letzte Referenz), auf den Gabor Grothendieck hingewiesen hat. Referenzen Über Round-Off-Fehlerkorrektur in runmean verwendet. Shewchuk, Jonathan Adaptive Präzisions-Gleitkomma-Arithmetik und schnelle, robuste geometrische Prädikate. Www-2.cs. cmu. edu/afs/cs/project/quake/public/papers/robust-arithmetic. ps Mehr über die Rundungsfehlerkorrektur finden Sie unter: aspn. activestate / ASPN / Kochbuch / Python / Rezept / 393090 Verknüpfungen zu: moving mean - mean. Kernapply. Filter. zersetzen. Stl. Rollmean aus Zoo-Bibliothek, subsums aus Magic-Bibliothek, Andere bewegliche Fenster-Funktionen aus diesem Paket: runmin. Runmax. Runquantile Runmad und rund runzed generische laufende Fenster-Funktionen: anwenden (embed (x, k), 1, FUN) (am schnellsten), läuft aus gtools Paket (extrem langsam für diesen Zweck), subsums aus Magic Library können laufende Fenster Operationen auf Daten mit Beliebige Abmessungen. Paket caTools Version 1.12 IndexMoving-Mittelwerte in R Nach meinem besten Wissen hat R keine integrierte Funktion zur Berechnung der gleitenden Mittelwerte. Mit der Filterfunktion können wir jedoch eine kurze Funktion für gleitende Mittelwerte schreiben: Wir können die Funktion auf beliebigen Daten verwenden: mav (data) oder mav (data, 11), wenn wir eine andere Anzahl von Datenpunkten angeben wollen Als die Standard-5-Plotterarbeiten wie erwartet: plot (mav (data)). Zusätzlich zu der Anzahl der Datenpunkte, über die gemittelt wird, können wir auch das Seitenargument der Filterfunktionen ändern: sides2 verwendet beide Seiten, Seiten1 verwendet nur vergangene Werte. Teilen Sie diese:

No comments:

Post a Comment