Wednesday, 22 November 2017

Perl Moving Average Funktion


Dies ist eine Evergreen Joe Celko Frage. Ich ignoriere, welche DBMS-Plattform verwendet wird. Aber auf jeden Fall Joe war in der Lage, mehr als 10 Jahren mit Standard-SQL zu beantworten. Joe Celko SQL Puzzles und Antworten Zitat: Der letzte Update-Versuch deutet darauf hin, dass wir das Prädikat verwenden könnten, um eine Abfrage, die uns einen gleitenden Durchschnitt geben würde: Ist die zusätzliche Spalte oder die Abfrage Ansatz besser Die Abfrage ist technisch besser, weil die UPDATE-Ansatz wird Denormalisierung der Datenbank. Wenn jedoch die historischen Daten, die aufgezeichnet werden, sich nicht ändern und die Berechnung des gleitenden Durchschnitts kostspielig ist, könnten Sie die Verwendung des Spaltenansatzes in Erwägung ziehen. SQL Puzzle-Abfrage: mit allen Mitteln einheitlich. Sie werfen nur auf den entsprechenden Gewichtskorb je nach Entfernung vom aktuellen Zeitpunkt. Zum Beispiel quottake Gewicht1 für Datenpunkte innerhalb von 24 Stunden von aktuellen Datenpunkt Gewicht0,5 für Datenpunkte innerhalb von 48hrsquot. In diesem Fall ist es wichtig, wieviel aufeinander folgende Datenpunkte (wie 6:12 Uhr und 11:48 Uhr) voneinander entfernt sind. Ein Anwendungsfall, den ich mir vorstellen kann, wäre ein Versuch, das Histogramm dort zu glätten, wo Datenpunkte nicht dicht genug sind ndash msciwoj Mai 27 15 at 22:22 Im nicht sicher, dass Ihr erwarteten Ergebnis (Ausgang) zeigt klassische einfache bewegen (rolling) Durchschnitt für 3 Tage. Denn zum Beispiel gibt das erste Dreibettzimmer von Zahlen per Definition: aber man erwartet 4.360 und seine Verwirrung. Trotzdem schlage ich die folgende Lösung vor, die die Fensterfunktion AVG verwendet. Dieser Ansatz ist viel effizienter (klarer und weniger ressourcenintensiv) als SELF-JOIN in anderen Antworten eingeführt (und ich bin überrascht, dass niemand eine bessere Lösung gegeben hat). Sie sehen, dass AVG wird mit Fall verpackt, wenn rownum gt p. days dann zu zwingen, NULL s in ersten Zeilen, wo 3 Tage Moving Average ist sinnlos. Wir können Joe Celkos dirty linken äußeren Join-Methode (wie zitiert von Diego Scaravaggi) anwenden, um die Frage zu beantworten, wie es gefragt wurde. Generiert die angeforderte Ausgabe: 2016 Stack Exchange, IncWith Gewichtsvektor Ich meine, der Vektor mit Gewichten, die Sie haben, um die Beobachtungen in dem Fenster, das Dias über Ihre Daten mit so, wenn Sie diese Produkte zusammenzufügen multiplizieren Gibt er den Wert der EMA auf der rechten Seite des Fensters zurück. Für einen linear gewichteten gleitenden Durchschnitt ist die Formel für das Finden des Gewichtsvektors: (1: n) Summe (1: n) (im R-Code). Diese Reihe der Länge n addiert sich zu 1. Für n10 wird es 0.01818182 0.03636364 0.05454545 0.07272727 0.09090909 0.10909091 0.12727273 0.14545455 0.16363636 0.18181818 die Zahlen 1 bis 10 55, mit 55 die Summe der Zahlen 1 bis 10. Wie berechnen Sie den Gewichtsvektor Für einen exponentiellen gleitenden Durchschnitt (EMA) der Länge n, wenn n die Länge des Fensters ist, dann ist alphalt-2 (n1) und ilt-1: n EmaWeightVectorlt - ((alpha (1-alpha) (1-i)) ) Ist das richtig, obwohl die EMA ist nicht wirklich auf ein Fenster mit einem Start und ein Ende beschränkt, sollten nicht die Gewichte bis zu 1 genau wie mit dem LWMA Danke Jason, alle Hinweise, wie man den EMA-Filter auf jede gewünschte Genauigkeit zu approximieren Durch die Annäherung mit einem lang genug FIR-Filter There39s ein Perl-Skript auf en. wikipedia. org wiki hellip, dass das Bild der EMA Gewicht Vektor gemacht, aber ich don39t es verstehen: wenn sie die Anzahl der Gewichte auf 15 setzen, warum gibt es 20 rote Balken statt 15 ndash MisterH 19.12 um 22:40 Uhr

No comments:

Post a Comment