Tuesday 20 June 2017

Moving Average Glättung Von Python

Ich habe eine Reihe von Daten und eine Messung an jedem dieser Termine. Id wie zu berechnen einen exponentiellen gleitenden Durchschnitt für jeden der Termine. Weiß jemand, wie dies zu tun Im neu zu python. Es scheint nicht, dass Durchschnittswerte in die Standard-Python-Bibliothek, die mich als ein wenig seltsam schlägt gebaut werden. Vielleicht Im nicht auf der Suche nach der richtigen Stelle. Also, angesichts der folgenden Code, wie könnte ich berechnen die bewegten gewichteten Durchschnitt der IQ-Punkte für Kalendertermine (theres vermutlich eine bessere Art und Weise, die Daten zu strukturieren, würde jeder Rat geschätzt werden) Ask Jan 28 09 at 18:01 My python is a Etwas rostig (jedermann kann fühlen frei, diesen Code zu redigieren, um Korrekturen vorzunehmen, wenn Ive die Syntax irgendwie verwirrte), aber hier geht. Diese Funktion bewegt sich von dem Ende der Liste an den Anfang rückwärts, wobei der exponentielle gleitende Durchschnitt für jeden Wert durch Rückwärtsarbeiten berechnet wird, bis der Gewichtungskoeffizient für ein Element kleiner als der gegebene Wert ist. Am Ende der Funktion kehrt es die Werte um, bevor die Liste zurückgegeben wird (so dass sie in der richtigen Reihenfolge für den Aufrufer liegen). (SEITE HINWEIS: wenn ich eine andere Sprache als Python verwendet, erstellen Id eine vollständige Größe leere Array zuerst und dann füllen sie rückwärts-Reihenfolge, so dass ich wouldnt haben, um es am Ende umzukehren. Aber ich glaube nicht, können Sie erklären Eine große leere Array in python. And in Python-Listen, Anhängen ist viel weniger teuer als vorangestellt, weshalb ich baute die Liste in umgekehrter Reihenfolge. Korrigieren Sie mich, wenn Im falsch.) Das Alpha-Argument ist der Zerfallsfaktor auf jeder Iteration. Zum Beispiel, wenn Sie ein Alpha von 0,5 verwendet haben, würde der heutige gleitende Durchschnittswert aus den folgenden gewichteten Werten bestehen: Natürlich, wenn Sie eine riesige Palette von Werten erhalten haben, werden die Werte von zehn oder fünfzehn Tagen nicht viel dazu beitragen Heute gewichteter Durchschnitt. Mit dem Argument epsilon können Sie einen Grenzwert festlegen, unterhalb dessen Sie nicht mehr auf alte Werte achten (da ihr Beitrag zum heutigen Wert unbedeutend ist). Youd rufen die Funktion so etwas wie folgt auf: Ich weiß nicht, Python, aber für die Mittelung Teil, meinst du, ein exponentiell verfallenden Tiefpass des Formulars, wo alpha dt / tau, dt der Zeitstep von Der Filter, tau die Zeitkonstante des Filters (die variable-timestep Form von diesem ist wie folgt, nur Clip dt / tau nicht mehr als 1,0) Wenn Sie etwas wie ein Datum filtern möchten, stellen Sie sicher, dass Sie in eine Gleitkomma-Menge wie von Sekunden seit 1. Januar 1970.Smoothing Daten entfernt zufällige Variation und zeigt Trends und zyklische Komponenten Inhärent in der Sammlung von Daten im Laufe der Zeit übernommen wird, ist eine Form der zufälligen Variation. Es gibt Methoden zur Verringerung der Annullierung der Wirkung aufgrund zufälliger Variation. Eine häufig verwendete Technik in der Industrie ist Glättung. Diese Technik zeigt, wenn sie richtig angewendet wird, deutlicher den zugrunde liegenden Trend, saisonale und zyklische Komponenten. Es gibt zwei verschiedene Gruppen von Glättungsmethoden Mittelungsmethoden Exponentielle Glättungsmethoden Mittelwertbildung ist der einfachste Weg, um Daten zu glätten Wir werden zunächst einige Mittelungsmethoden untersuchen, z. B. den einfachen Mittelwert aller vergangenen Daten. Ein Manager eines Lagers möchte wissen, wie viel ein typischer Lieferant in 1000-Dollar-Einheiten liefert. Er / sie nimmt eine Stichprobe von 12 Lieferanten, die zufällig die folgenden Ergebnisse erhalten: Der berechnete Mittelwert oder Durchschnitt der Daten 10. Der Manager beschließt, dies als Schätzung der Ausgaben eines typischen Lieferanten zu verwenden. Ist dies eine gute oder schlechte Schätzung Mittel quadratischen Fehler ist ein Weg, um zu beurteilen, wie gut ein Modell ist Wir berechnen die mittlere quadratische Fehler. Der Fehler true Betrag verbraucht minus die geschätzte Menge. Der Fehler quadriert ist der Fehler oben, quadriert. Die SSE ist die Summe der quadratischen Fehler. Die MSE ist der Mittelwert der quadratischen Fehler. MSE Ergebnisse zum Beispiel Die Ergebnisse sind: Fehler und quadratische Fehler Die Schätzung 10 Die Frage stellt sich: Können wir das Mittel verwenden, um Einkommen zu prognostizieren, wenn wir einen Trend vermuten Ein Blick auf die Grafik unten zeigt deutlich, dass wir dies nicht tun sollten. Durchschnittliche Gewichtungen alle früheren Beobachtungen gleich In Zusammenfassung, wir sagen, dass die einfachen Mittelwert oder Mittelwert aller vergangenen Beobachtungen ist nur eine nützliche Schätzung für die Prognose, wenn es keine Trends. Wenn es Trends, verwenden Sie verschiedene Schätzungen, die den Trend berücksichtigen. Der Durchschnitt wiegt alle früheren Beobachtungen gleichermaßen. Zum Beispiel ist der Durchschnitt der Werte 3, 4, 5 4. Wir wissen natürlich, dass ein Durchschnitt berechnet wird, indem alle Werte addiert werden und die Summe durch die Anzahl der Werte dividiert wird. Eine andere Methode, den Durchschnitt zu berechnen, ist die Addition jedes Wertes durch die Anzahl der Werte oder 3/3 4/3 5/3 1 1.3333 1.6667 4. Der Multiplikator 1/3 wird als Gewicht bezeichnet. Allgemein: bar frac sum links (frac rechts) x1 links (frac rechts) x2,. ,, Links (frac rechts) xn. Die (linke (frac rechts)) sind die Gewichte und summieren sich natürlich auf 1.Schleifen mit exponentiell gewichteten Bewegungsdurchschnitten Ein gleitender Durchschnitt nimmt eine laute Zeitreihe an und ersetzt jeden Wert mit dem Mittelwert einer Nachbarschaft um den gegebenen Wert . Diese Nachbarschaft kann aus rein historischen Daten bestehen oder um den gegebenen Wert zentriert sein. Ferner können die Werte in der Nachbarschaft mit verschiedenen Sätzen von Gewichtungen gewichtet werden. Hier ist ein Beispiel eines gleich gewichteten Dreipunkt-Gleitendurchschnitts, wobei historische Daten verwendet werden: Hier steht das geglättete Signal und stellt die verrauschten Zeitreihen dar. Im Gegensatz zu einfachen gleitenden Durchschnitten passt ein exponentiell gewichteter gleitender Durchschnitt (EWMA) einen Wert gemäß einer exponentiell gewichteten Summe aller vorherigen Werte an. Dies ist die Grundidee, Dies ist schön, weil Sie don.. 17 17 t haben, um über ein Drei-Punkt-Fenster, im Vergleich zu einem Fünf-Punkte-Fenster Sorge oder Sorgen über die Angemessenheit Ihrer Gewichtung. Bei der EWMA vergingen vorherige Störungen 8220, 8221 und 8220l vergessen, 8221 durch den Ausdruck in der letzten Gleichung, wohingegen bei einem Fenster oder einer Nachbarschaft mit diskreten Grenzen eine Störung vergessen wird, sobald sie aus dem Fenster austritt. Mittelung der EWMA, um Trends aufzuspüren Nach dem Lesen über EWMAs in einem Datenanalyse-Buch, war ich glücklich gegangen mit diesem Tool auf jede einzelne Glättung Anwendung, die ich stieß. Erst später erfuhr ich, dass die EWMA-Funktion wirklich nur für stationäre Daten geeignet ist, d. H. Daten ohne Trends oder Saisonalität. Insbesondere die EWMA-Funktion widersteht Trends weg von der aktuellen Mittelwert, dass es8217s bereits 8220seen8221. Wenn Sie also eine laute Hutfunktion haben, die von 0, 1 und dann wieder 0 zurückkehrt, gibt die EWMA-Funktion niedrige Werte auf der Aufstiegsseite und hohe Werte auf der Abwärtsseite wieder. Eine Möglichkeit, dies zu umgehen, besteht darin, das Signal in beide Richtungen zu glätten, nach vorn zu marschieren und dann rückwärts zu marschieren, und dann die beiden durchschnittlich zu vergleichen. Hier verwenden wir die EWMA-Funktion des pandas-Moduls. Holt-Winters Zweite Ordnung EWMA Und hier ist ein Python-Code implementiert die Holt-Winters zweite Ordnung Methode auf eine andere laute Hut Funktion, wie zuvor. Post navigation Aktuelle Beiträge ArchiveMoving durchschnittliche und exponentielle Glättungsmodelle Als ein erster Schritt, um über Mittel-Modelle, zufällige gehen Modelle und lineare Trend-Modelle, nicht saisonale Muster und Trends können mit einem gleitenden Durchschnitt oder Glättung Modell extrapoliert werden. Die grundlegende Annahme hinter Mittelwertbildung und Glättungsmodellen ist, dass die Zeitreihe lokal stationär mit einem sich langsam verändernden Mittelwert ist. Daher nehmen wir einen bewegten (lokalen) Durchschnitt, um den aktuellen Wert des Mittelwerts abzuschätzen und dann als die Prognose für die nahe Zukunft zu verwenden. Dies kann als Kompromiss zwischen dem mittleren Modell und dem random-walk-ohne-Drift-Modell betrachtet werden. Die gleiche Strategie kann verwendet werden, um einen lokalen Trend abzuschätzen und zu extrapolieren. Ein gleitender Durchschnitt wird oft als "quotsmoothedquot" - Version der ursprünglichen Serie bezeichnet, da die kurzzeitige Mittelung die Wirkung hat, die Stöße in der ursprünglichen Reihe zu glätten. Durch Anpassen des Glättungsgrades (die Breite des gleitenden Durchschnitts) können wir hoffen, eine Art von optimaler Balance zwischen der Leistung des Mittelwerts und der zufälligen Wandermodelle zu erreichen. Die einfachste Art der Mittelung Modell ist die. Einfache (gleichgewichtige) Moving Average: Die Prognose für den Wert von Y zum Zeitpunkt t1, der zum Zeitpunkt t gemacht wird, entspricht dem einfachen Mittelwert der letzten m Beobachtungen: (Hier und anderswo werde ich das Symbol 8220Y-hat8221 stehen lassen Für eine Prognose der Zeitreihe Y, die am frühestmöglichen früheren Zeitpunkt durch ein gegebenes Modell durchgeführt wird.) Dieser Mittelwert wird in der Periode t (m1) / 2 zentriert, was bedeutet, daß die Schätzung des lokalen Mittels dazu tendiert, hinter dem Wert zu liegen Wahren Wert des lokalen Mittels um etwa (m1) / 2 Perioden. Das durchschnittliche Alter der Daten im einfachen gleitenden Durchschnitt ist also (m1) / 2 relativ zu der Periode, für die die Prognose berechnet wird: dies ist die Zeitspanne, in der die Prognosen dazu tendieren, hinter den Wendepunkten in der Daten. Wenn Sie z. B. die letzten 5 Werte mitteln, werden die Prognosen etwa 3 Perioden spät sein, wenn sie auf Wendepunkte reagieren. Beachten Sie, dass, wenn m1, die einfache gleitende Durchschnitt (SMA) - Modell ist gleichbedeutend mit der random walk-Modell (ohne Wachstum). Wenn m sehr groß ist (vergleichbar der Länge des Schätzzeitraums), entspricht das SMA-Modell dem mittleren Modell. Wie bei jedem Parameter eines Prognosemodells ist es üblich, den Wert von k anzupassen, um den besten Quotienten der Daten zu erhalten, d. H. Die kleinsten Prognosefehler im Durchschnitt. Hier ist ein Beispiel einer Reihe, die zufällige Fluktuationen um ein sich langsam veränderndes Mittel zu zeigen scheint. Erstens können wir versuchen, es mit einem zufälligen Fußmodell, das entspricht einem einfachen gleitenden Durchschnitt von 1 Begriff entspricht: Das zufällige Fußmodell reagiert sehr schnell auf Änderungen in der Serie, aber dabei nimmt er viel von der quotnoisequot in der Daten (die zufälligen Fluktuationen) sowie das Quotsignalquot (das lokale Mittel). Wenn wir stattdessen einen einfachen gleitenden Durchschnitt von 5 Begriffen anwenden, erhalten wir einen glatteren Satz von Prognosen: Der 5-Term-einfache gleitende Durchschnitt liefert in diesem Fall deutlich kleinere Fehler als das zufällige Wegmodell. Das durchschnittliche Alter der Daten in dieser Prognose beträgt 3 ((51) / 2), so dass es dazu neigt, hinter den Wendepunkten um etwa drei Perioden zu liegen. (Zum Beispiel scheint ein Abschwung in Periode 21 aufgetreten zu sein, aber die Prognosen drehen sich erst nach mehreren Perioden später.) Beachten Sie, dass die Langzeitprognosen des SMA-Modells eine horizontale Gerade sind, genau wie beim zufälligen Weg Modell. Somit geht das SMA-Modell davon aus, dass es keinen Trend in den Daten gibt. Während jedoch die Prognosen aus dem Zufallswegmodell einfach dem letzten beobachteten Wert entsprechen, sind die Prognosen des SMA-Modells gleich einem gewichteten Mittelwert der neueren Werte. Die von Statgraphics berechneten Konfidenzgrenzen für die Langzeitprognosen des einfachen gleitenden Durchschnitts werden nicht breiter, wenn der Prognosehorizont zunimmt. Dies ist offensichtlich nicht richtig Leider gibt es keine zugrunde liegende statistische Theorie, die uns sagt, wie sich die Vertrauensintervalle für dieses Modell erweitern sollten. Allerdings ist es nicht zu schwer, empirische Schätzungen der Konfidenzgrenzen für die längerfristigen Prognosen zu berechnen. Beispielsweise können Sie eine Tabellenkalkulation einrichten, in der das SMA-Modell für die Vorhersage von 2 Schritten im Voraus, 3 Schritten voraus usw. innerhalb der historischen Datenprobe verwendet wird. Sie könnten dann die Stichproben-Standardabweichungen der Fehler bei jedem Prognosehorizont berechnen und dann Konfidenzintervalle für längerfristige Prognosen durch Addieren und Subtrahieren von Vielfachen der geeigneten Standardabweichung konstruieren. Wenn wir einen 9-term einfachen gleitenden Durchschnitt ausprobieren, erhalten wir sogar noch bessere Prognosen und mehr eine nacheilende Wirkung: Das Durchschnittsalter beträgt jetzt 5 Perioden ((91) / 2). Wenn wir einen 19-term gleitenden Durchschnitt nehmen, steigt das Durchschnittsalter auf 10 an: Beachten Sie, dass die Prognosen tatsächlich hinter den Wendepunkten um etwa 10 Perioden zurückbleiben. Welches Maß an Glättung ist am besten für diese Serie Hier ist eine Tabelle, die ihre Fehlerstatistiken vergleicht, darunter auch einen 3-Term-Durchschnitt: Modell C, der 5-term gleitende Durchschnitt, ergibt den niedrigsten Wert von RMSE mit einer kleinen Marge über die 3 - term und 9-Term-Mittelwerte, und ihre anderen Statistiken sind fast identisch. So können wir bei Modellen mit sehr ähnlichen Fehlerstatistiken wählen, ob wir ein wenig mehr Reaktionsfähigkeit oder ein wenig mehr Glätte in den Prognosen bevorzugen würden. (Rückkehr nach oben.) Browns Einfache Exponentialglättung (exponentiell gewichteter gleitender Durchschnitt) Das oben beschriebene einfache gleitende Durchschnittsmodell hat die unerwünschte Eigenschaft, daß es die letzten k-Beobachtungen gleich und vollständig ignoriert. Intuitiv sollten vergangene Daten in einer allmählicheren Weise diskontiert werden - zum Beispiel sollte die jüngste Beobachtung ein wenig mehr Gewicht als die zweitletzte erhalten, und die 2. jüngsten sollten ein wenig mehr Gewicht als die 3. jüngsten erhalten, und bald. Das einfache exponentielle Glättungsmodell (SES) erfüllt dies. 945 bezeichnen eine quotsmoothing constantquot (eine Zahl zwischen 0 und 1). Eine Möglichkeit, das Modell zu schreiben, besteht darin, eine Reihe L zu definieren, die den gegenwärtigen Pegel (d. H. Den lokalen Mittelwert) der Serie, wie er aus Daten bis zu der Zeit geschätzt wird, darstellt. Der Wert von L zur Zeit t wird rekursiv von seinem eigenen vorherigen Wert wie folgt berechnet: Somit ist der aktuelle geglättete Wert eine Interpolation zwischen dem vorher geglätteten Wert und der aktuellen Beobachtung, wobei 945 die Nähe des interpolierten Wertes auf die neueste steuert Überwachung. Die Prognose für die nächste Periode ist einfach der aktuelle geglättete Wert: Äquivalent können wir die nächste Prognose direkt in Form früherer Prognosen und früherer Beobachtungen in einer der folgenden gleichwertigen Versionen ausdrücken. In der ersten Version ist die Prognose eine Interpolation zwischen vorheriger Prognose und vorheriger Beobachtung: In der zweiten Version wird die nächste Prognose durch Anpassung der bisherigen Prognose in Richtung des bisherigen Fehlers um einen Bruchteil 945 erhalten Zeit t. In der dritten Version ist die Prognose ein exponentiell gewichteter (dh diskontierter) gleitender Durchschnitt mit Abzinsungsfaktor 1-945: Die Interpolationsversion der Prognoseformel ist am einfachsten zu verwenden, wenn Sie das Modell in einer Tabellenkalkulation implementieren Einzelne Zelle und enthält Zellverweise, die auf die vorhergehende Prognose, die vorherige Beobachtung und die Zelle mit dem Wert von 945 zeigen. Beachten Sie, dass, wenn 945 1, das SES-Modell entspricht einem zufälligen Weg-Modell (ohne Wachstum). Wenn 945 0 ist, entspricht das SES-Modell dem mittleren Modell, wobei angenommen wird, dass der erste geglättete Wert gleich dem Mittelwert gesetzt ist. (Zurück zum Seitenanfang) Das Durchschnittsalter der Daten in der Simple-Exponential-Glättungsprognose beträgt 1/945 relativ zu dem Zeitraum, für den die Prognose berechnet wird. (Dies sollte nicht offensichtlich sein, kann aber leicht durch die Auswertung einer unendlichen Reihe gezeigt werden.) Die einfache gleitende Durchschnittsprognose neigt daher zu Verzögerungen hinter den Wendepunkten um etwa 1/945 Perioden. Wenn beispielsweise 945 0,5 die Verzögerung 2 Perioden beträgt, wenn 945 0,2 die Verzögerung 5 Perioden beträgt, wenn 945 0,1 die Verzögerung 10 Perioden und so weiter ist. Für ein gegebenes Durchschnittsalter (d. H. Eine Verzögerung) ist die einfache exponentielle Glättungsprognose (SES) der simplen gleitenden Durchschnittsprognose (SMA) etwas überlegen, weil sie relativ viel mehr Gewicht auf die jüngste Beobachtung - i. e stellt. Es ist etwas mehr quresponsivequot zu Änderungen, die sich in der jüngsten Vergangenheit. Zum Beispiel haben ein SMA - Modell mit 9 Terminen und ein SES - Modell mit 945 0,2 beide ein durchschnittliches Alter von 5 Jahren für die Daten in ihren Prognosen, aber das SES - Modell legt mehr Gewicht auf die letzten 3 Werte als das SMA - Modell und am Gleiches gilt für die Werte von mehr als 9 Perioden, wie in dieser Tabelle gezeigt: 822forget8221. Ein weiterer wichtiger Vorteil des SES-Modells gegenüber dem SMA-Modell ist, dass das SES-Modell einen Glättungsparameter verwendet, der kontinuierlich variabel ist und somit leicht optimiert werden kann Indem ein Quotsolverquot-Algorithmus verwendet wird, um den mittleren quadratischen Fehler zu minimieren. Der optimale Wert von 945 im SES-Modell für diese Serie ergibt sich wie folgt: Das Durchschnittsalter der Daten in dieser Prognose beträgt 1 / 0,2961 3,4 Perioden, was ähnlich wie bei einem 6-Term-Simple Moving ist durchschnittlich. Die Langzeitprognosen aus dem SES-Modell sind eine horizontale Gerade. Wie im SMA-Modell und dem Random-Walk-Modell ohne Wachstum. Es ist jedoch anzumerken, dass die von Statgraphics berechneten Konfidenzintervalle nun in einer vernünftigen Weise abweichen und dass sie wesentlich schmaler sind als die Konfidenzintervalle für das Zufallswegmodell. Das SES-Modell geht davon aus, dass die Serie etwas vorhersehbarer ist als das Zufallswandermodell. Ein SES-Modell ist eigentlich ein Spezialfall eines ARIMA-Modells. So dass die statistische Theorie der ARIMA-Modelle eine solide Grundlage für die Berechnung der Konfidenzintervalle für das SES-Modell bildet. Insbesondere ist ein SES-Modell ein ARIMA-Modell mit einer nicht sonderbaren Differenz, einem MA (1) - Term und kein konstanter Term. Ansonsten als quotARIMA (0,1,1) - Modell ohne Konstantquot bekannt. Der MA (1) - Koeffizient im ARIMA-Modell entspricht der Größe 1 - 945 im SES-Modell. Wenn Sie zum Beispiel ein ARIMA-Modell (0,1,1) ohne Konstante an die hier analysierte Serie anpassen, ergibt sich der geschätzte MA (1) - Koeffizient auf 0,7029, was fast genau ein Minus von 0,2961 ist. Es ist möglich, die Annahme eines von Null verschiedenen konstanten linearen Trends zu einem SES-Modell hinzuzufügen. Dazu wird ein ARIMA-Modell mit einer nicht sonderbaren Differenz und einem MA (1) - Term mit konstantem, d. H. Einem ARIMA-Modell (0,1,1) mit konstantem Wert angegeben. Die langfristigen Prognosen haben dann einen Trend, der dem durchschnittlichen Trend über den gesamten Schätzungszeitraum entspricht. Sie können dies nicht in Verbindung mit saisonalen Anpassungen tun, da die saisonalen Anpassungsoptionen deaktiviert sind, wenn der Modelltyp auf ARIMA gesetzt ist. Sie können jedoch einen konstanten langfristigen exponentiellen Trend zu einem einfachen exponentiellen Glättungsmodell (mit oder ohne saisonale Anpassung) hinzufügen, indem Sie die Inflationsanpassungsoption im Prognoseverfahren verwenden. Die prozentuale Zinssatzquote (prozentuale Wachstumsrate) pro Periode kann als der Steigungskoeffizient in einem linearen Trendmodell geschätzt werden, das an die Daten in Verbindung mit einer natürlichen Logarithmuswandlung angepasst ist, oder es kann auf anderen unabhängigen Informationen bezüglich der langfristigen Wachstumsperspektiven beruhen . (Rückkehr nach oben.) Browns Linear (dh doppelt) Exponentielle Glättung Die SMA-Modelle und SES-Modelle gehen davon aus, dass es in den Daten keine Tendenzen gibt (die in der Regel in Ordnung sind oder zumindest nicht zu schlecht für 1- Wenn die Daten relativ verrauscht sind), und sie können modifiziert werden, um einen konstanten linearen Trend, wie oben gezeigt, zu integrieren. Was ist mit kurzfristigen Trends Wenn eine Serie eine unterschiedliche Wachstumsrate oder ein zyklisches Muster zeigt, das sich deutlich gegen das Rauschen auszeichnet, und wenn es notwendig ist, mehr als eine Periode vorher zu prognostizieren, könnte die Schätzung eines lokalen Trends auch sein Ein Problem. Das einfache exponentielle Glättungsmodell kann verallgemeinert werden, um ein lineares exponentielles Glättungsmodell (LES) zu erhalten, das lokale Schätzungen sowohl des Niveaus als auch des Trends berechnet. Das einfachste zeitvariable Trendmodell ist Browns lineares exponentielles Glättungsmodell, das zwei verschiedene geglättete Serien verwendet, die zu verschiedenen Zeitpunkten zentriert sind. Die Prognoseformel basiert auf einer Extrapolation einer Linie durch die beiden Zentren. (Eine weiterentwickelte Version dieses Modells, Holt8217s, wird unten diskutiert.) Die algebraische Form des Brown8217s linearen exponentiellen Glättungsmodells, wie die des einfachen exponentiellen Glättungsmodells, kann in einer Anzahl von unterschiedlichen, aber äquivalenten Formen ausgedrückt werden. Die quadratische quadratische Form dieses Modells wird gewöhnlich wie folgt ausgedrückt: Sei S die einfach geglättete Reihe, die durch Anwendung einfacher exponentieller Glättung auf Reihe Y erhalten wird. Das heißt, der Wert von S in der Periode t ist gegeben durch: (Erinnern wir uns, Exponentielle Glättung, dies wäre die Prognose für Y in der Periode t1.) Dann sei Squot die doppelt geglättete Reihe, die man erhält, indem man eine einfache exponentielle Glättung (unter Verwendung desselben 945) auf die Reihe S anwendet: Schließlich die Prognose für Ytk. Für jedes kgt1 ist gegeben durch: Dies ergibt e & sub1; & sub0; (d. h. Cheat ein Bit, und die erste Prognose ist gleich der tatsächlichen ersten Beobachtung) und e & sub2; Y & sub2; 8211 Y & sub1; Nach denen die Prognosen unter Verwendung der obigen Gleichung erzeugt werden. Dies ergibt die gleichen Anpassungswerte wie die Formel auf der Basis von S und S, wenn diese mit S 1 S 1 Y 1 gestartet wurden. Diese Version des Modells wird auf der nächsten Seite verwendet, die eine Kombination von exponentieller Glättung mit saisonaler Anpassung veranschaulicht. Holt8217s Lineares Exponentialglättung Brown8217s LES-Modell berechnet lokale Schätzungen von Pegel und Trend durch Glätten der letzten Daten, aber die Tatsache, dass dies mit einem einzigen Glättungsparameter erfolgt, legt eine Einschränkung für die Datenmuster fest, die er anpassen kann: den Pegel und den Trend Dürfen nicht zu unabhängigen Preisen variieren. Holt8217s LES-Modell adressiert dieses Problem durch zwei Glättungskonstanten, eine für die Ebene und eine für den Trend. Zu jedem Zeitpunkt t, wie in Brown8217s-Modell, gibt es eine Schätzung L t der lokalen Ebene und eine Schätzung T t der lokalen Trend. Hier werden sie rekursiv aus dem zum Zeitpunkt t beobachteten Wert von Y und den vorherigen Schätzungen von Pegel und Trend durch zwei Gleichungen berechnet, die exponentielle Glättung separat anwenden. Wenn der geschätzte Pegel und der Trend zum Zeitpunkt t-1 L t82091 und T t-1 sind. Dann ist die Prognose für Y tshy, die zum Zeitpunkt t-1 gemacht worden wäre, gleich L t-1 T t-1. Wenn der tatsächliche Wert beobachtet wird, wird die aktualisierte Schätzung des Pegels rekursiv berechnet, indem zwischen Y tshy und seiner Prognose L t-1 T t-1 unter Verwendung von Gewichten von 945 und 1- 945 interpoliert wird. Die Änderung des geschätzten Pegels, Nämlich L t 8209 L t82091. Kann als eine verrauschte Messung des Trends zum Zeitpunkt t interpretiert werden. Die aktualisierte Schätzung des Trends wird dann rekursiv berechnet, indem zwischen L t 8209 L t82091 und der vorherigen Schätzung des Trends T t-1 interpoliert wird. Unter Verwendung der Gewichte von 946 und 1-946: Die Interpretation der Trendglättungskonstante 946 ist analog zu der Pegelglättungskonstante 945. Modelle mit kleinen Werten von 946 nehmen an, dass sich der Trend mit der Zeit nur sehr langsam ändert, während Modelle mit Größere 946 nehmen an, dass sie sich schneller ändert. Ein Modell mit einem großen 946 glaubt, dass die ferne Zukunft sehr unsicher ist, da Fehler in der Trendschätzung bei der Prognose von mehr als einer Periode ganz wichtig werden. (Rückkehr nach oben) Die Glättungskonstanten 945 und 946 können auf übliche Weise geschätzt werden, indem der mittlere quadratische Fehler der 1-Schritt-Voraus-Prognosen minimiert wird. Wenn dies in Statgraphics getan wird, erweisen sich die Schätzungen als 945 0.3048 und 946 0,008. Der sehr geringe Wert von 946 bedeutet, dass das Modell eine sehr geringe Veränderung im Trend von einer Periode zur nächsten annimmt, so dass dieses Modell im Grunde versucht, einen langfristigen Trend abzuschätzen. In Analogie zum Durchschnittsalter der Daten, die für die Schätzung der lokalen Ebene der Serie verwendet werden, ist das Durchschnittsalter der Daten, die bei der Schätzung des lokalen Trends verwendet werden, proportional zu 1/946, wenn auch nicht exakt gleich es. In diesem Falle ergibt sich 1 / 0,006 125. Dies ist eine sehr genaue Zahl, da die Genauigkeit der Schätzung von 946 nicht wirklich 3 Dezimalstellen beträgt, sondern dieselbe von der gleichen Größenordnung wie die Stichprobengröße von 100 ist , So dass dieses Modell ist im Durchschnitt über eine ganze Menge Geschichte bei der Schätzung der Trend. Das Prognose-Diagramm unten zeigt, dass das LES-Modell einen etwas größeren lokalen Trend am Ende der Serie schätzt als der im SEStrend-Modell geschätzte konstante Trend. Außerdem ist der Schätzwert von 945 fast identisch mit dem, der durch Anpassen des SES-Modells mit oder ohne Trend erhalten wird, so dass dies fast das gleiche Modell ist. Nun, sehen diese aussehen wie vernünftige Prognosen für ein Modell, das soll Schätzung einer lokalen Tendenz Wenn Sie 8220eyeball8221 dieser Handlung, sieht es so aus, als ob der lokale Trend nach unten am Ende der Serie gedreht hat Was ist passiert Die Parameter dieses Modells Wurden durch Minimierung des quadratischen Fehlers von 1-Schritt-Voraus-Prognosen, nicht längerfristigen Prognosen, abgeschätzt, wobei der Trend keinen großen Unterschied macht. Wenn alles, was Sie suchen, 1-Schritt-vor-Fehler sind, sehen Sie nicht das größere Bild der Trends über (sagen) 10 oder 20 Perioden. Um dieses Modell im Einklang mit unserer Augapfel-Extrapolation der Daten zu erhalten, können wir die Trendglättungskonstante manuell anpassen, so dass sie eine kürzere Basislinie für die Trendschätzung verwendet. Wenn wir beispielsweise 946 0,1 setzen, beträgt das durchschnittliche Alter der Daten, die bei der Schätzung des lokalen Trends verwendet werden, 10 Perioden, was bedeutet, dass wir den Trend über die letzten 20 Perioden oder so mitteln. Here8217s, was das Prognose-Plot aussieht, wenn wir 946 0,1 setzen, während 945 0,3 halten. Dies scheint intuitiv vernünftig für diese Serie, obwohl es wahrscheinlich gefährlich, diesen Trend mehr als 10 Perioden in der Zukunft zu extrapolieren. Was ist mit den Fehlerstatistiken Hier ist ein Modellvergleich für die beiden oben gezeigten Modelle sowie drei SES-Modelle. Der optimale Wert von 945 für das SES-Modell beträgt etwa 0,3, aber ähnliche Ergebnisse (mit etwas mehr oder weniger Reaktionsfähigkeit) werden mit 0,5 und 0,2 erhalten. (A) Holts linearer Exp. Glättung mit alpha 0.3048 und beta 0,008 (B) Holts linear exp. Glättung mit alpha 0,3 (E) Einfache exponentielle Glättung mit alpha 0,3 (E) Einfache exponentielle Glättung mit alpha 0,2 Ihre Stats sind nahezu identisch, so dass wir wirklich die Wahl auf der Basis machen können Von 1-Schritt-Vorhersagefehlern innerhalb der Datenprobe. Wir müssen auf andere Überlegungen zurückgreifen. Wenn wir glauben, dass es sinnvoll ist, die aktuelle Trendschätzung auf das, was in den letzten 20 Perioden passiert ist, zugrunde zu legen, können wir für das LES-Modell mit 945 0,3 und 946 0,1 einen Fall machen. Wenn wir agnostisch sein wollen, ob es einen lokalen Trend gibt, dann könnte eines der SES-Modelle leichter zu erklären sein, und würde auch für die nächsten 5 oder 10 Perioden mehr Mittelprognosen geben. (Rückkehr nach oben.) Welche Art von Trend-Extrapolation am besten ist: horizontal oder linear Empirische Evidenz deutet darauf hin, dass es, wenn die Daten bereits für die Inflation angepasst wurden (wenn nötig), unprätent ist, kurzfristige lineare Werte zu extrapolieren Trends sehr weit in die Zukunft. Die heutigen Trends können sich in Zukunft aufgrund unterschiedlicher Ursachen wie Produktveralterung, verstärkte Konkurrenz und konjunkturelle Abschwünge oder Aufschwünge in einer Branche abschwächen. Aus diesem Grund führt eine einfache exponentielle Glättung oft zu einer besseren Out-of-Probe, als ansonsten erwartet werden könnte, trotz ihrer quotnaivequot horizontalen Trend-Extrapolation. Damped Trendmodifikationen des linearen exponentiellen Glättungsmodells werden in der Praxis häufig auch eingesetzt, um in seinen Trendprojektionen eine Note des Konservatismus einzuführen. Das Dämpfungs-Trend-LES-Modell kann als Spezialfall eines ARIMA-Modells, insbesondere eines ARIMA-Modells (1,1,2), implementiert werden. Es ist möglich, Konfidenzintervalle um langfristige Prognosen zu berechnen, die durch exponentielle Glättungsmodelle erzeugt werden, indem man sie als Spezialfälle von ARIMA-Modellen betrachtet. (Achtung: Nicht alle Software berechnet die Konfidenzintervalle für diese Modelle korrekt.) Die Breite der Konfidenzintervalle hängt ab von (i) dem RMS-Fehler des Modells, (ii) der Art der Glättung (einfach oder linear) (iii) dem Wert (S) der Glättungskonstante (n) und (iv) die Anzahl der Perioden vor der Prognose. Im Allgemeinen breiten sich die Intervalle schneller aus, da 945 im SES-Modell größer wird und sich viel schneller ausbreiten, wenn lineare statt einfache Glättung verwendet wird. Dieses Thema wird im Abschnitt "ARIMA-Modelle" weiter erläutert. (Zurück zum Seitenanfang.) Eine Einführung in das Glätten von Zeitreihen in Python. Teil I: Filterung Theorie Let8217s sagen, Sie haben eine Reihe von Zeitreihen-Daten mit einigen Rauschen auf der Oberseite und wollen eine vernünftig saubere Signal aus, dass zu bekommen. Intuition sagt uns, der einfachste Weg, um aus dieser Situation ist, um das Rauschen in irgendeiner Weise zu glätten. Aus diesem Grund wird das Problem der Wiederherstellung eines Signals aus einem Satz von Zeitreihendaten als Glättung bezeichnet, wenn Daten von allen zur Verfügung stehenden Zeitpunkten verfügbar sind. Das heißt, wir kennen xt für alle tin0, T. Wenn wir nur xt bis zum gegenwärtigen Zeitpunkt tn, d. h. tin0, tn, kennen, dann wird das Problem als Filterung bezeichnet, und wenn wir nur Daten für tin0 haben, wird das Problem Vorhersage genannt. Diese drei Probleme sind eng verwandt und die Algorithmen, die diskutiert werden, sind auf alle Probleme mit geringfügigen Modifikationen anwendbar. I8217ll Ansatz das Problem von der Glättung Perspektive, da das ist, was ich für meine eigene Forschung brauche. Let8217s beginnen mit der Erzeugung eines Signals s und einer Messung y mit zufälligem Rauschen n: plt. Plot (x. Y ls keine Marker.) Das einfachste, was man tun könnte, wäre, die Punkte innerhalb eines kleinen Intervall Durchschnitt. Dies wird als gleitender Durchschnitt bezeichnet. Es funktioniert OK, wenn Sie eine Menge Daten und wenig Lärm haben, aber that8217s nicht Spaß überhaupt. Wenn Sie ein bisschen cleverer sein möchten, können Sie das Fenster auf ein größeres Zeitintervall erweitern, um mehr Informationen zu nutzen, aber die Punkte, die weiter weg von dem aktuellen Zeitpunkt liegen, zu wiegen, da es vielleicht anders sein könnte Werte nicht wegen des Rauschens, sondern weil das Signal zu diesem Zeitpunkt unterschiedlich ist. Let8217s nennen das Signal s und seine Schätzung Hut. Dann ist der exponentielle gleitende Durchschnitt Hut t r yt (1-r) Hut Dieses Fenster verwendet nur Punkte aus der Vergangenheit mit einem Gewicht, das exponentiell abnimmt: (1-r) k, wenn sie k Schritte entfernt sind. Eine bessere Sache zu tun wäre, auch Punkte aus der Zukunft. Das schlägt vor, eine Gewichtfunktion zu verwenden, die um den gegenwärtigen Punkt zentriert ist, der zerfällt, während wir weiter fortschreiten. Eine allgemeine Formel dafür wäre: sum fk y wobei die Wägefunktion f mit der Messung innerhalb eines Fensters der Größe N gefaltet wird. Dieser Vorgang wird als Filter bezeichnet, da er einige Frequenzen im Signal herausfiltert, während andere intakt bleiben (we8217ll Untersuchen Sie das Frequenzspektrum in einem Bit). Hinweis Filter lösen auch das Problem, das ich als Filterung mit einigen Verzögerung beschrieben, weil wir nur die Punkte bis zu Zeit tN brauchen, um die Antwort für t kennen. Die Funktion f-Funktion ist in der Physik als Green-Funktion oder in der Signalverarbeitungs-Literatur als Impulsantwort-Funktion bekannt. Eine gängige, auch exponentiell abnehmende Wahl ist eine Gaußfunktion. Let8217s versuchen: Wir haben einen Fehler von 0.0036. Nicht schlecht. Das Gaußsche Fenster, das wir benutzten, hatte nur N39-Werte, obwohl theoretisch das Gauss'sche in Unendlichkeit reicht. Da es jedoch exponentiell abfällt, erhalten wir gute Ergebnisse, wenn wir es nach einigen Werten abschneiden. Wir können auch Filter mit einer unendlichen Unterstützung implementieren. Historisch wurden diese Arten von Filtern in einer analogen Schaltung implementiert, bei der Rückkopplung und somit alle Punkte miteinander interagieren (was die unendliche Unterstützung erklärt). Die Impulsantwortfunktion beschreibt das Verhalten des Systems, wenn es mit einem einzigen Impuls (also dem Namen) dargestellt wird. Wir können dann das Verhalten des Systems unter jedem Eingang y durch die Faltung des Eingangs mit dem IRF beschreiben. Heutzutage wird zwischen endlichen und unendlichen Impulsantwortfiltern unterschieden. Die finite Filter sind ziemlich einfach zu bedienen, da alles, was Sie tun müssen, ist eine diskrete Faltung mit dem Signal. Die unendlichen Antwort-Filter haben in der Regel bessere Qualität, sind aber schwieriger auf einem Computer zu implementieren. Um sie zu implementieren, müssen wir die Laplace-Transformation verwenden, um die Übertragungsfunktion zu bestimmen. Jeder Filter ist eindeutig durch seine Koeffizienten a und b bestimmt. Beachten Sie, dass ein FIR-Filter nur aj0 für alle jgt0 hat, so dass diese Darstellung universell ist. Um das auszuprobieren, wählte ich den Butterworth-Filter: Für unsere einfachen Testdaten ist der Fehler ungefähr der gleiche wie im Gaußschen Fensterfall. Beachten Sie, dass die Filter-Design-Funktion in scipy die Cuttoff-Frequenz geteilt durch die Nyquist-Rate. Beachten Sie auch die Verwendung der Filtfilt, die den Filter einmal nach vorne und einmal nach hinten, um die Verzögerung zu beseitigen aufgrund der Tatsache, dass die Faltung muss 8220buffer8221 einige Anfangspunkte am Anfang. Auf diese Weise wird die Vorwärtsverzögerung durch die Rückwärtsverzögerung kompensiert (einige automatische Auffüllung wird angewendet, um eine Schätzung für alle t zu erhalten). Ich könnte diese Funktion auch für den Gaußfilter verwendet haben und 1.0 für den Parameter a übergeben. Um zu verstehen, wie sich diese Filter unterscheiden, ist es nützlich, ihren Frequenzgang zu betrachten. Im Fourierraum wird Faltung zu einer Multiplikation, und wir können verstehen, was ein Filter tut, indem er betrachtet, welchen Frequenzen er durchlaufen kann. Ein idealer Filter sollte eine Reihe von Frequenzen durchlaufen lassen und die anderen vollständig aufheben. Allerdings gibt es in der Regel einige Regime, wo es einige Dämpfung, deren Breite hängt von der Reihenfolge filter8217s. Sie don8217t wollen einen Filter mit zu hoher Ordnung aber, weil Instabilitäten auftreten, in der Nähe der Cutoff-Frequenz. In unserem einfachen Fall wollen wir nur eine Frequenz durchlassen und alle anderen abschneiden lassen. Wir sehen, dass die Signalfrequenz ein scharfer Peak ist und dann die Leistung aller anderen Frequenzen schnell abbricht. Andererseits hat das gemessene Rauschsignal eine gewisse konstante Leistung für alle Frequenzen (hier kommt der Begriff weißes Rauschen für einen Gaußscher, da alle Frequenzen gleich stark sind). Unsere Filter filtern im wesentlichen alle Frequenzen über einer bestimmten Frequenz heraus. Sie werden Tiefpaßfilter genannt. Wir könnten auch Hochpass - oder Bandpassfilter entwerfen, wenn sich die Frequenz in einem anderen Bereich des Spektrums befindet. In allen Fällen müssen wir vorher die Frequenz des Signals, nach dem wir suchen, vorher wissen. Wenn wir wissen, dass wir anspruchsvoller werden müssen. Full Code unten (mit einigen Sachen in den nächsten Beitrag zu abgedeckt werden):


No comments:

Post a Comment