Tuesday 26 September 2017

Gleitende Durchschnittliche Zeitkonstante


Ich habe einen kontinuierlichen Wert für die Id wie zu berechnen einen exponentiellen gleitenden Durchschnitt. Normalerweise verwendet man nur die Standardformel dafür: wobei S n der neue Durchschnitt ist, Alpha das Alpha ist, Y die Stichprobe ist und S n-1 der vorherige Durchschnitt ist. Leider, aufgrund verschiedener Fragen habe ich nicht eine konsistente Probe Zeit. Ich kann wissen, dass ich höchstens sagen kann, einmal pro Millisekunde, aber aufgrund von Faktoren aus meiner Kontrolle, kann ich nicht in der Lage, eine Probe für mehrere Millisekunden zu einer Zeit zu nehmen. Eine wahrscheinlich häufiger Fall ist jedoch, dass ich einfache Probe ein wenig früh oder spät: anstelle der Probenahme bei 0, 1 und 2 ms. I-Probe bei 0, 0,9 und 2,1 ms. Ich erwarte, dass, ungeachtet der Verzögerungen, meine Abtastfrequenz weit, weit über der Nyquist-Grenze liegen wird, und daher brauche ich mir keine Sorgen um Aliasing. Ich vermute, dass ich dies in einer mehr oder weniger vernünftigen Weise durch die Änderung der alpha passend, basierend auf der Länge der Zeit seit der letzten Probe. Ein Teil meiner Überlegung, dass dies funktionieren wird, ist, dass die EMA linear zwischen dem vorherigen Datenpunkt und dem aktuellen interpoliert. Wenn wir die Berechnung einer EMA der folgenden Liste von Proben in Intervallen t: 0,1,2,3,4 betrachten. Wir sollten das gleiche Ergebnis erhalten, wenn wir das Intervall 2t verwenden, bei dem die Eingänge 0,2,4 werden. Wenn die EMA davon ausgegangen ist, dass bei t 2 der Wert 2 seit t 0 war. Das wäre das gleiche wie das Intervall t Berechnung Berechnung auf 0,2,2,4,4, die ihr nicht tun. Oder macht das überhaupt Sinn Kann mir jemand sagen, wie man das Alpha passend ändert Bitte zeigen Sie Ihre Arbeit. D. h. Zeigen Sie mir die Mathematik, die beweist, dass Ihre Methode wirklich das Richtige tut. Sie sollten nicht erhalten die gleiche EMA für verschiedene Eingabe. Denken Sie an EMA als Filter, ist das Sampling bei 2t äquivalent zu Down-Sampling, und der Filter wird einen anderen Ausgang zu geben. Dies ist mir klar, da 0,2,4 höherfrequente Komponenten als 0,1,2,3,4 enthält. Sofern die Frage ist, wie kann ich ändern Sie den Filter on the fly, damit es die gleiche Ausgabe. Vielleicht fehle ich etwas ndash freespace Aber der Eingang ist nicht anders, it39s nur selten abgetastet. 0,2,4 in Intervallen 2t ist wie 0,, 2,, 4 in Intervallen t, wobei die zeigt, dass die Probe ignoriert wird ndash Curt Sampson Jun 21 09 um 23:45 Diese Antwort auf meinem guten Verständnis von Tiefpass Filter (exponentiellen gleitenden Durchschnitt ist wirklich nur ein einpoliges Tiefpassfilter), aber mein dunstiges Verständnis dessen, was Sie suchen. Ich denke, das folgende ist, was Sie wollen: Erstens können Sie Ihre Gleichung ein wenig zu vereinfachen (sieht komplizierter, aber es ist einfacher in Code). Im gehend, Y für Ausgang und X für Eingang zu verwenden (anstelle von S für Ausgang und Y für Eingang, wie Sie getan haben). Zweitens ist der Wert von alpha hier gleich 1-e - Deltattau, wobei Deltat die Zeit zwischen den Abtastwerten ist und tau die Zeitkonstante des Tiefpaßfilters ist. Ich sage gleich in Anführungszeichen, weil dies gut funktioniert, wenn Deltattau ist klein im Vergleich zu 1, und alpha 1-e - Deltattau asymp Deltattau. (Aber nicht zu klein: youll laufen in Quantisierungsprobleme, und wenn Sie nicht auf einige exotische Techniken zurückgreifen, benötigen Sie normalerweise eine zusätzliche N Bits Auflösung in Ihrer Zustandsvariable S, wo N-Log 2 (alpha).) Für größere Werte von Deltattau Beginnt der Filtereffekt zu verschwinden, bis Sie zu dem Punkt kommen, an dem Alpha in der Nähe von 1 liegt, und Sie haben grundsätzlich nur den Eingang der Ausgabe zugewiesen. Dies sollte ordnungsgemäß mit unterschiedlichen Werten von Deltat funktionieren (die Variation von Deltat ist nicht sehr wichtig, solange alpha klein ist, sonst laufen Sie in einige ziemlich seltsame Nyquist Fragen Aliasing etc.), und wenn Sie arbeiten an einem Prozessor, wo Multiplikation Ist billiger als Division, oder Festkomma-Probleme sind wichtig, vorberechnen Omega-1tau, und erwägen zu versuchen, die Formel für Alpha approximieren. Wenn Sie wirklich wissen wollen, wie Sie die Formel alpha 1-e - Deltattau herleiten, dann betrachten wir ihre Differentialgleichungsquelle: die, wenn X eine Einheitsschrittfunktion ist, die Lösung Y 1 - e - ttau hat. Für kleine Werte von Deltat kann das Derivat durch DeltaYDeltat angenähert werden, was Ytau DeltaYDeltat X DeltaY (XY) (Deltattau) alpha (XY) ergibt und die Extrapolation von alpha 1-e - Deltattau kommt von dem Versuch, Einheit Schritt Funktion Fall. Würden Sie bitte erläutern, auf die Quottrying, um das Verhaltenquot Teil Match Ich verstehe Ihre kontinuierliche Zeit-Lösung Y 1 - exp (-t47) und seine Generalisierung auf eine skalierte Schritt-Funktion mit der Größe x und Anfangszustand y (0). Aber I39m nicht sehen, wie diese Ideen zusammen, um Ihr Ergebnis zu erzielen. Ndash Rhys Ulerich May 4 13 at 22:34 Dies ist keine vollständige Antwort, aber kann der Anfang von einem sein. Seine so weit wie ich mit diesem in einer Stunde oder so zu spielen Im Posting es als ein Beispiel für das, was ich suche, und vielleicht eine Inspiration für andere, die an dem Problem. Ich beginne mit S 0. Was der Mittelwert ist, der sich aus dem vorhergehenden Mittelwert S -1 und dem Abtastwert Y 0 bei t 0 ergibt. (T & sub1; - t & sub0;) ist mein Abtastintervall und & alpha; ist auf das eingestellt, was für dieses Abtastintervall und den Zeitraum, über den ich den Durchschnitt wünsche, geeignet ist. Ich überlegte, was passiert, wenn ich die Probe bei t 1 vermisse und stattdessen mit der mit t 2 getroffenen Probe Y 2 zu tun habe. Nun können wir mit der Erweiterung der Gleichung beginnen, um zu sehen, was passiert wäre, wenn wir gehabt hätten. Y 1: Ich bemerke, dass die Reihe unendlich auf diese Weise zu erweitern scheint, weil wir die S n auf der rechten Seite unendlich ersetzen können: Ok , Also sein nicht wirklich ein Polynom (albernes me), aber, wenn wir den Anfangsbegriff durch eins multiplizieren, sehen wir dann ein Muster: Hm: es ist eine exponentielle Reihe. Quelle Überraschung Stellen Sie sich vor, dass kommen aus der Gleichung für einen exponentiellen gleitenden Durchschnitt Also irgendwie habe ich diese x 0 x 1 x 2 x 3. Ding gehen, und Im sicher Im riechen e oder einen natürlichen Logarithmus treten hier herum, aber ich kann mich nicht erinnern, wo ich als nächstes ging, bevor ich aus der Zeit lief. Jede Antwort auf diese Frage oder ein Korrektheitsnachweis einer solchen Antwort hängt stark von den Daten ab, die Sie messen. Wenn Ihre Proben bei t 0 0ms genommen wurden. T 1 0,9 ms und t 2 2,1 ms. Aber Ihre Alpha-Auswahl basiert auf 1-ms-Intervallen, weshalb Sie ein lokal angepasstes Alpha n wünschen. Der Beweis der Korrektheit der Wahl würde bedeuten, die Probenwerte bei t1ms und t2ms zu kennen. Dies führt zu der Frage: Können Sie Ihre Daten resonable interpolieren, um vernünftige Vermutungen, was in-between Werte haben könnte Oder können Sie sogar den Durchschnitt selbst interpolieren Wenn keiner von diesen möglich ist, dann soweit ich es sehe, die logische Die Wahl eines Zwischenwerts Y (t) ist der zuletzt berechnete Durchschnitt. D. h. Y (t) Asymp S n, wobei n maxmial ist, so dass t n ltt. Diese Wahl hat eine einfache Konsequenz: Lassen Sie alpha allein, egal was der Zeitunterschied war. Wenn auf der anderen Seite ist es möglich, Ihre Werte zu interpolieren, dann geben Sie Ihnen averagable Konstanten-Intervall-Samples. Schließlich, wenn sein sogar möglich ist, den Durchschnitt selbst zu interpolieren, würde das die Frage bedeutungslos machen. Ich glaube, ich kann meine Daten interpolieren: angesichts der Tatsache, dass I39m es in diskreten Intervallen, I39m, die bereits dies mit einem Standard-EMA Anyway, davon ausgehen, dass ich brauche Dass es funktioniert sowie eine Standard-EMA, die auch hat ein falsches Ergebnis zu produzieren, wenn die Werte nicht ändern, ziemlich gleichmäßig zwischen Sample-Perioden. Ndash Curt Sampson Aber das ist, was ich sagen: Wenn Sie die EMA eine Interpolation Ihrer Werte, you39re getan, wenn Sie verlassen Alpha, wie es ist (weil das Einfügen der jüngsten Durchschnitt, wie Y doesn39t ändern den Durchschnitt) . Wenn Sie sagen, dass Sie etwas brauchen, dass Zehnarbeit sowie eine Standard-EMAquot - what39s falsch mit dem Original Wenn Sie nicht mehr Informationen über die Daten, die Sie gemessen haben, werden alle lokalen Anpassungen an Alpha am besten willkürlich sein. Ndash balpha 9830 Jun 21 09 at 15:31 Ich würde den Alpha-Wert allein zu verlassen, und füllen Sie die fehlenden Daten. Da Sie nicht wissen, was während der Zeit geschieht, wenn Sie Probe nicht können, können Sie diese Proben mit 0s füllen, oder halten Sie den vorherigen Wert stabil und verwenden Sie diese Werte für die EMA. Oder eine Rückwärtsinterpolation, sobald Sie ein neues Sample haben, die fehlenden Werte ausfüllen und die EMA neu berechnen. Was ich versuche zu bekommen ist, haben Sie eine Eingabe xn, die Löcher hat. Es gibt keine Möglichkeit, um die Tatsache, dass Sie Daten fehlen. Sie können also einen Halten nullter Ordnung verwenden oder auf null setzen oder eine Art von Interpolation zwischen xn und xnM. Wobei M die Anzahl der fehlenden Proben und n der Beginn der Lücke ist. Eventuell sogar mit Werten vor n. Ich denke, dass nur Variieren der Alpha tatsächlich geben mir die richtige Interpolation zwischen den beiden Punkten, die Sie sprechen, aber in einer Viel einfacher Weg. Darüber hinaus denke ich, dass die Veränderung der Alpha wird auch ordnungsgemäß befassen sich mit Proben, die zwischen den Standard-Probenahme Intervalle. Mit anderen Worten, I39m auf der Suche nach dem, was Sie beschrieben, aber versuchen, Mathematik, um herauszufinden, die einfache Möglichkeit, es zu tun. Ndash Curt Sampson Ich glaube nicht, es gibt so ein Biest wie quotproper Interpolationquot. Sie wissen einfach nicht, was in der Zeit passiert ist, die Sie nicht probieren. Gute und schlechte Interpolation impliziert etwas Wissen, was Sie verpasst haben, da Sie messen müssen, um zu beurteilen, ob eine Interpolation gut oder schlecht ist. Obwohl dies gesagt, können Sie Begrenzungen, dh mit maximaler Beschleunigung, Geschwindigkeit, etc. zu setzen. Ich denke, wenn Sie wissen, wie die fehlenden Daten Modell, dann würden Sie nur Modell die fehlenden Daten, dann wenden Sie den EMA-Algorithmus ohne Veränderung eher Als das Ändern von alpha. Just my 2c :) ndash freespace Das ist genau das, was ich in meinem Bearbeiten auf die Frage vor 15 Minuten: quotYou einfach don39t wissen, was passiert in der Zeit, die Sie nicht Stichproben, aber that39s true Auch wenn Sie in jedem bestimmten Intervall Probe. So meine Nyquist-Kontemplation: Solange Sie wissen, die Wellenform doesn39t Richtungen ändern mehr als jedes Paar von Proben, die tatsächliche Probe-Intervall shouldn39t Angelegenheit, und sollte in der Lage sein zu variieren. Die EMA-Gleichung scheint mir genau so zu berechnen, als ob sich die Wellenform linear vom letzten Abtastwert zum aktuellen verändert hätte. Ndash Curt Sampson Ich glaube nicht, dass das stimmt. Das Nyquist39s-Theorem erfordert mindestens 2 Abtastungen pro Periode, um das Signal eindeutig identifizieren zu können. Wenn Sie das nicht tun, erhalten Sie Aliasing. Es wäre das gleiche wie das Sampling als fs1 für eine Zeit, dann fs2, dann zurück zu fs1, und Sie erhalten Aliasing in die Daten, wenn Sie mit fs2 Probe, wenn fs2 ist unter dem Nyquist-Limit. Ich muss auch gestehen, ich verstehe nicht, was du meinst, durch Quotwellenformänderungen linear vom letzten Sample zum aktuellen onequot. Könnten Sie bitte erklären, Cheers, Steve. Ndash freespace Dies ist ähnlich wie ein offenes Problem auf meiner Todo-Liste. Ich habe ein Schema ausgearbeitet, zu einem gewissen Grad, aber haben keine mathematische Arbeit, um diese Anregung noch zu unterstützen. Update amp summary: Möchte den Glättungsfaktor (alpha) unabhängig vom Kompensationsfaktor behalten (was ich hier als beta beziehe). Jasons ausgezeichnete Antwort bereits akzeptiert hier funktioniert super für mich. Wenn Sie auch die Zeit seit der letzten Abtastung messen können (in gerundeten Vielfachen Ihrer konstanten Abtastzeit - also 7,8 ms, da die letzte Probe 8 Einheiten betragen würde), könnte dies dazu verwendet werden, die Glättung mehrfach anzuwenden. Wenden Sie in diesem Fall die Formel 8 mal an. Sie haben effektiv eine Glättung vorgespannt mehr auf den aktuellen Wert. Um eine bessere Glättung zu erhalten, müssen wir das Alpha zwicken, während wir die Formel 8 mal im vorherigen Fall anwenden. Was wird diese Glättungsnäherung verpassen Es hat bereits 7 Proben im obigen Beispiel verfehlt Das wurde in Schritt 1 mit einer abgeflachten Wiederanwendung des aktuellen Wertes zusätzlich 7 mal angenähert. Wenn wir einen Approximationsfaktor beta definieren, der zusammen mit alpha angewendet wird (Als alphabeta statt nur alpha), gehen wir davon aus, dass sich die 7 verpassten Samples zwischen den vorherigen und den aktuellen Sample-Werten sanft veränderten. Ich habe darüber nachgedacht, aber ein wenig mucking about mit der Mathematik hat mich auf den Punkt, wo ich glaube, dass, anstatt die Anwendung der Formel achtmal mit dem Beispielwert, kann ich eine Berechnung zu tun Von einem neuen Alpha, das mir erlauben wird, die Formel einmal anzuwenden, und geben mir das gleiche Ergebnis. Ferner würde dies automatisch mit der Ausgabe von Proben, die von exakten Abtastzeitpunkten versetzt sind, behandelt. Ndash Curt Sampson Jun 21 09 at 13:47 Die einzige Anwendung ist in Ordnung. Was ich noch nicht sicher bin, ist, wie gut die Annäherung der 7 fehlenden Werte ist. Wenn die kontinuierliche Bewegung macht den Wert Jitter eine Menge über die 8 Millisekunden, die Annäherungen können ganz aus der Realität. Aber, wenn Sie Probenahme bei 1ms (höchste Auflösung ohne die verzögerten Proben) haben Sie bereits dachte der Jitter innerhalb von 1ms ist nicht relevant. Funktioniert diese Argumentation für Sie (ich versuche immer noch, mich zu überzeugen). Ndash nik Jun 21 09 at 14:08 Richtig. Das ist der Faktor Beta aus meiner Beschreibung. Ein Betafaktor würde basierend auf dem Differenzintervall und den aktuellen und vorherigen Abtastwerten berechnet. Das neue Alpha wird (Alphabet), aber es wird nur für diese Probe verwendet werden. Während Sie das Alpha in der Formel 39 zu haben scheinen, neige ich zu konstantem Alpha (Glättungsfaktor) und einem unabhängig berechneten Beta (einem Tuningfaktor), der die gerade ausgefallenen Samples kompensiert. In der Praxis wird der gleitende Durchschnitt eine gute Schätzung des Mittelwerts der Zeitreihe liefern, wenn der Mittelwert konstant ist oder sich langsam ändert. Im Fall eines konstanten Mittelwertes wird der grßte Wert von m die besten Schätzungen des zugrunde liegenden Mittels liefern. Ein längerer Beobachtungszeitraum wird die Effekte der Variabilität ausmachen. Der Zweck der Bereitstellung eines kleineren m ist es, die Prognose auf eine Änderung in dem zugrunde liegenden Prozess zu ermöglichen. Um zu veranschaulichen, schlagen wir einen Datensatz vor, der Änderungen im zugrundeliegenden Mittel der Zeitreihen enthält. Die Abbildung zeigt die Zeitreihen für die Darstellung zusammen mit der mittleren Nachfrage, aus der die Serie erzeugt wurde. Der Mittelwert beginnt als eine Konstante bei 10. Ab dem Zeitpunkt 21 erhöht er sich um eine Einheit in jeder Periode, bis er zum Zeitpunkt 30 den Wert von 20 erreicht. Dann wird er wieder konstant. Die Daten werden simuliert, indem dem Mittelwert ein Zufallsrauschen aus einer Normalverteilung mit Nullmittelwert und Standardabweichung 3 zugeführt wird. Die Ergebnisse der Simulation werden auf die nächste Ganzzahl gerundet. Die Tabelle zeigt die simulierten Beobachtungen für das Beispiel. Wenn wir die Tabelle verwenden, müssen wir bedenken, dass zu einem gegebenen Zeitpunkt nur die letzten Daten bekannt sind. Die Schätzwerte des Modellparameters, für drei verschiedene Werte von m, werden zusammen mit dem Mittelwert der Zeitreihen in der folgenden Abbildung gezeigt. Die Abbildung zeigt die gleitende durchschnittliche Schätzung des Mittelwerts zu jedem Zeitpunkt und nicht die Prognose. Die Prognosen würden die gleitenden Durchschnittskurven nach Perioden nach rechts verschieben. Eine Schlussfolgerung ergibt sich unmittelbar aus der Figur. Für alle drei Schätzungen liegt der gleitende Durchschnitt hinter dem linearen Trend, wobei die Verzögerung mit m zunimmt. Die Verzögerung ist der Abstand zwischen dem Modell und der Schätzung in der Zeitdimension. Wegen der Verzögerung unterschätzt der gleitende Durchschnitt die Beobachtungen, während der Mittelwert zunimmt. Die Vorspannung des Schätzers ist die Differenz zu einer bestimmten Zeit im Mittelwert des Modells und dem Mittelwert, der durch den gleitenden Durchschnitt vorhergesagt wird. Die Vorspannung, wenn der Mittelwert zunimmt, ist negativ. Bei einem abnehmenden Mittelwert ist die Vorspannung positiv. Die Verzögerung in der Zeit und die Bias in der Schätzung eingeführt sind Funktionen von m. Je größer der Wert von m. Desto größer ist die Größe der Verzögerung und der Vorspannung. Für eine stetig wachsende Serie mit Trend. Die Werte der Verzögerung und der Vorspannung des Schätzers des Mittelwerts sind in den folgenden Gleichungen gegeben. Die Beispielkurven stimmen nicht mit diesen Gleichungen überein, weil das Beispielmodell nicht kontinuierlich zunimmt, sondern als Konstante beginnt, sich in einen Trend ändert und dann wieder konstant wird. Auch die Beispielkurven sind vom Rauschen betroffen. Die gleitende Durchschnittsprognose der Perioden in die Zukunft wird durch die Verschiebung der Kurven nach rechts dargestellt. Die Verzögerung und die Vorspannung nehmen proportional zu. Die nachstehenden Gleichungen zeigen die Verzögerung und die Vorspannung von Prognoseperioden in die Zukunft im Vergleich zu den Modellparametern. Diese Formeln sind wiederum für eine Zeitreihe mit einem konstanten linearen Trend. Wir sollten dieses Ergebnis nicht überraschen. Der gleitende Durchschnittsschätzer basiert auf der Annahme eines konstanten Mittelwerts, und das Beispiel hat einen linearen Trend im Mittel während eines Teils des Studienzeitraums. Da Echtzeitreihen den Annahmen eines Modells nur selten genau gehorchen, sollten wir auf solche Ergebnisse vorbereitet sein. Wir können auch aus der Figur schließen, dass die Variabilität des Rauschens den größten Effekt für kleinere m hat. Die Schätzung ist viel volatiler für den gleitenden Durchschnitt von 5 als der gleitende Durchschnitt von 20. Wir haben die widerstrebenden Wünsche, m zu erhöhen, um den Effekt der Variabilität aufgrund des Rauschens zu verringern und um m zu verringern, um die Prognose besser auf Veränderungen anzupassen Im Mittel. Der Fehler ist die Differenz zwischen den tatsächlichen Daten und dem prognostizierten Wert. Wenn die Zeitreihe wirklich ein konstanter Wert ist, ist der erwartete Wert des Fehlers Null und die Varianz des Fehlers besteht aus einem Term, der eine Funktion von und ein zweiter Term ist, der die Varianz des Rauschens ist. Der erste Term ist die Varianz des Mittelwertes mit einer Stichprobe von m Beobachtungen, vorausgesetzt, die Daten stammen aus einer Population mit einem konstanten Mittelwert. Dieser Begriff wird minimiert, indem man m so groß wie möglich macht. Ein großes m macht die Prognose auf eine Änderung der zugrunde liegenden Zeitreihen unempfänglich. Um die Prognose auf Veränderungen anzupassen, wollen wir m so klein wie möglich (1), aber dies erhöht die Fehlerabweichung. Praktische Voraussage erfordert einen Zwischenwert. Prognose mit Excel Das Prognose-Add-In implementiert die gleitenden Durchschnittsformeln. Das folgende Beispiel zeigt die Analyse des Add-In für die Beispieldaten in Spalte B. Die ersten 10 Beobachtungen sind mit -9 bis 0 indexiert. Im Vergleich zur obigen Tabelle werden die Periodenindizes um -10 verschoben. Die ersten zehn Beobachtungen liefern die Startwerte für die Schätzung und werden verwendet, um den gleitenden Durchschnitt für die Periode 0 zu berechnen. Die Spalte MA (10) zeigt die berechneten Bewegungsdurchschnitte. Der gleitende Mittelwert m ist in Zelle C3. Die Fore (1) Spalte (D) zeigt eine Prognose für einen Zeitraum in die Zukunft. Das Prognoseintervall ist in Zelle D3. Wenn das Prognoseintervall auf eine größere Zahl geändert wird, werden die Zahlen in der Spalte Vorwärts verschoben. Die Err (1) - Spalte (E) zeigt die Differenz zwischen der Beobachtung und der Prognose. Zum Beispiel ist die Beobachtung zum Zeitpunkt 1 6. Der prognostizierte Wert, der aus dem gleitenden Durchschnitt zum Zeitpunkt 0 gemacht wird, beträgt 11,1. Der Fehler ist dann -5.1. Die Standardabweichung und mittlere mittlere Abweichung (MAD) werden in den Zellen E6 bzw. E7 berechnet.

No comments:

Post a Comment