Thursday 23 February 2017

Plot Moving Durchschnitt Python

Ich spiele in Python noch ein wenig, und ich fand ein ordentliches Buch mit Beispielen. Eines der Beispiele ist die Auftragung einiger Daten. Ich habe eine. txt-Datei mit zwei Spalten und ich habe die Daten. Ich habe die Daten genau dargestellt, aber in der Übung heißt es: Ändern Sie Ihr Programm weiter, um den laufenden Mittelwert der Daten zu berechnen und zu zeichnen, der durch Folgendes definiert ist: wobei r5 in diesem Fall (und yk die zweite Spalte in der Datendatei ist) . Lassen Sie das Programm sowohl die Originaldaten als auch den laufenden Durchschnitt auf demselben Graphen dar. Bisher habe ich dies: So wie berechne ich die Summe In Mathematica seine einfache, da seine symbolische Manipulation (Sumi, zum Beispiel), sondern wie die Summe in python, die alle zehn Punkte in den Daten und mittelt, und es tut Bis zum Ende der Punkte schaute ich das Buch an, fand aber nichts, was das erklären würde: heltonbikers code hat den Trick: D Vielen Dank :) Es gibt ein Problem mit der akzeptierten Antwort. Ich denke, wir müssen gültig anstelle der gleichen hier - return numpy. convolve (Intervall, Fenster, gleiche). Als Beispiel versuchen Sie die MA dieses Datensatzes 1,5,7,2,6,7,8,2,2,7,8,3,7,3,7,3,15,6 - das Ergebnis Sollte 4.2.5.4,6.0,5.0,5.0,5.2,5.4,4.4,5.4,5.6,5.6,4,6,7.0,6.8 sein. Aber mit demselben gibt uns eine falsche Ausgabe von 2.6.3.0,4.2,5.4,6.0,5.0,5.0,5.2,5.4,4.4,5.4,5.6,5.6, 4.6.7.0,6.8,6.2,4.8 Rusty-Code, um dies auszuprobieren -: Versuchen Sie dies mit gültigen amp gleichen und sehen, ob die Mathematik sinnvoll ist. Ich habe versucht, dies aus, aber ich werde es untersuchen, es ist eine Weile seit I39ve codiert in Python. Ndash dingod Warum don39t Sie schnell ausprobieren dies mit dem rostigen Code (und die Beispiel-Datensatz (als einfache Liste), schrieb ich. Für einige faul Personen (wie ich auf den ersten) - seine Masken aus der Tatsache, dass gleitende Durchschnitt ist falsch. Wahrscheinlich sollten Sie erwägen, die Bearbeitung Ihrer ursprünglichen Antwort. Ich versuchte es nur gestern und doppelte Kontrolle rettete mir Gesicht von schauen schlecht bei der Berichterstattung auf Cxo Ebene. Sie müssen nur tun, ist zu versuchen Ihre gleiche gleitende Durchschnitt einmal mit quotvalidquot und anderen Zeit mit quotsamequot - und sobald Sie überzeugt sind, geben Sie mir einige Liebe (aka-up-vote) ndash ekta Oct 29 14 um 7: 16We zuvor eingeführt, wie man gleitende Durchschnitte mit Python zu schaffen. Dieses Tutorial Ist ein Fortsetzung dieses Themas. Ein gleitender Durchschnitt im Rahmen der Statistik, auch rollingrunning Durchschnitt genannt, ist eine Art von endlichen Impulsantwort. In unserem vorherigen Tutorial haben wir die Werte der Arrays x und y: Let8217s plot x aufgetragen Gegen den gleitenden Durchschnitt von y, den wir yMA nennen wollen: Zuerst setzen wir die Länge der beiden Arrays gleich: Und das zeigen wir im Kontext: Der resultierende Graph: Um dies zu verstehen, haben wir zwei verschiedene Beziehungen: x vs y und x vs MAy: Der gleitende Durchschnitt hier ist die grüne Handlung, die bei 3 beginnt: Share this: Gefällt mir: Post navigation Lassen Sie eine Antwort Antworten abbrechen Sehr nützlich Ich möchte den letzten Teil auf großen Datensätzen zu lesen Hoffe, es wird bald kommen8230 d Blogger wie Dies: Vorhersage und Python Teil 1 8211 Moving Averages Ich möchte eine Serie, die verschiedene Prognosemethoden und zeigt sie mit Python nimmt treten. Um die 8216ball rollen8217 Ich möchte mit gleitenden Durchschnitten beginnen und idealer Abschluss der Serie auf die Prognose mit ARIMA-Modelle (AutoRegressive Integrated Moving Average). Mein Ziel ist, diesen Inhalt 8216light8217 auf Theorie und Mathematik zu haben und stattdessen auf Anwendung im Code zu konzentrieren. Ich schreibe diese spät in der Nacht, so fühlen Sie sich frei, ping mich, wenn ich irgendwelche Fehler haben. Ich verweise oft auf die vorhergesagte Y als Y Hut, wenn Sie sich nicht bewusst sind, in der Gleichung das Hut-Symbol befindet sich über dem vorhergesagten Y. Prognose mit Moving Average Moving Durchschnitte sollten ein großartiger Ort, um jedes Lehrbuch, das ich mit dem Bewegen beginnen Mittel, um das Fundament zu legen. Die Formeln sind einfach und macht Spaß. Gleichung 1: Bewegungsdurchschnittsgleichung Das gleitende Mittelwertmodell berechnet den Mittelwert jeder Beobachtung in den Perioden k. In meinem Code und Ergebnisse werde ich mit einem 12-Periode gleitenden Durchschnitt, also k12. Y Hut (t1) ist der Prognosewert für die nächste Periode und Y (t) der Istwert zu Periode t. Eine Periode kann Stunden, Tage, Wochen, Monate, Jahr, etc. sein. Da das Modell das gleiche unabhängig ist, werde ich nicht eine Einheit angeben. Yvalues ​​ist eine Teilmenge aller tatsächlich in den Code eingebrachten Y-Werte. Setzen Sie meine 8216k8217 (Perioden) gleich 12, wie ich einen 12-Periode gleitenden Durchschnitt berechnen werde. Der Code iteriert über die Beobachtungen (n), berechnet den Mittelwert für jeden 12 Periodenbereich (k12) und weist die Berechnung der yhat-Liste zu. Falls Sie bemerkt haben, ist yfull meine vollständige Liste der Y-Werte, wobei yvalues ​​eine Teilmenge ist, die durch k ausgeglichen wurde. Mehr dazu unten in der 8216Offsetting Y Subset List8217 Abschnitt. Plot Ist-und Prognose-Prognose 1. 12 Periodenbewegungsdurchschnitt Measuring Forecast Errors Ich habe meine Prognose, aber ist es irgendwie gut Optisch die Prognose folgt den tatsächlichen Werten eher gut, aber wie kann ich die Qualität dieser Prognose messen und dann vergleichen sie mit Prognosen Abgeleitet mit verschiedenen Methoden. Eine Möglichkeit, eine Prognose zu messen, ist durch Messen der Fehler (a. k.a. Residuen, Y actual 8211 Y Hut) Ich habe gewählt, um die folgenden Verfahren zum Messen von Prognosefehlern in diese Diskussion einzuschließen. Mean Squared Error (MSE), der die Mittelwerte der quadratischen Fehler misst (Differenz von Y und Y Hut). MSE wird in den gleichen Einheiten wie die zu schätzenden Werte (Y) angegeben, so dass man sagen könnte, dass eine Prognose um 821610.000 Einheiten8217 ausgeschaltet ist. Dieser Fehler kann als klein angesehen werden, wenn die tatsächlichen Werte in den Milliarden von Einheiten liegen. Der Fehler konnte als groß angesehen werden, wenn die tatsächlichen Werte nur in den 108217s von Tausenden reichen. Ein häufiges Problem mit dem MSE ist, dass es stark gewichtet große Ausreißer Aufblasen der Fehlermessung. Der Root Mean Squared Error nimmt die Quadratwurzel des MSE auf. RMSE repräsentiert die Standardabweichung der Residuen. Der mittlere absolute Prozentsatzfehler (MAPE) ist eine alternative Methode, die den Fehler als Prozentsatz meldet. Anstatt zu sagen, dass die Prognose 8216x Einheiten8217 ausgeschaltet ist, könnten wir sagen, dass eine Prognose um 4 wegfällt. Ich verwende häufig mehr als eine Methode beim Vergleich von Prognosen, da jeweils Einschränkungen vorliegen, die manchmal zu falschen Messungen durch eine oder zwei Methoden führen können. Gleichung 2 amp 3: MSE und MAPE Gleichung 3: RMSE Prognose 1: Fehlermessungen MSE: 630,649,39 RMSE: 794,13 MAPE: 10.22 Y-Subset-Liste ausgleichen Es ist interessant, dass die obige Prognose (Prognose 1) nicht die tatsächlichen Werte 8211fit8217 effektiver berechnet 8211 Es ist eine einfache Datenreihe, ich würde erwarten, dass die Residuen kleiner werden. Um die Y-Hut-Werte für das 12-Perioden-gleitende Durchschnittsmodell zu berechnen, verwende ich eine Formel, die die Zeit (t) 12 Perioden voran bewegt (siehe Gleichung 1 oben). Dies war, wie ich ursprünglich gelehrt wurde und haben Beispiele für in Lehrbüchern auf meinem Büro Regal. Dieser Code erstellt yfull aus der geladenen Daten-Datei dann erstellt eine Teilmenge Liste ab 12 Perioden in. Warum8230, weil wir die ersten 12 Periode verwenden, um unsere gleitende durchschnittliche Prognose zu starten. Die Prognosewerte, jedoch nicht 8216fit8217 die tatsächlichen Werte so viel wie ich möchte. Sie sind entweder unter Vorhersage oder über Vorhersage. Eine andere Methode für die gleitende durchschnittliche Prognose schlagen vor, dass die Prognose an der Mitte von 8216k8217 beginnt. Prognose 1: Daten mit dem Mittelpunkt von 8216k8217 Prognose 2: 12 Periodenbewegungsdurchschnitt Prognose 2: Fehlermessungen MSE: 7.350,78 RMSE: 85.74 MAPE: 0.86 Der Vergleich der Prognosefehlermessungen von Prognose 1 mit Prognose 2 zeigt, dass die zweite Methode besser geeignet ist Unsere Daten. Allerdings gibt es eine Menge von Inhalten auf Centered Moving Averages, die detaillierte Informationen zur Berechnung der Mittelwerte für evenodd Perioden geben wird. Ich bin nicht die Quelle, die ich bin lediglich zu zeigen, wie die Verringerung der Verzögerung der Mittelwerte besser richtet unsere Y Hüte auf die tatsächlichen und verbessert die Fehler-Maßnahmen. Der Code ist fast identisch, mit Ausnahme der Untermenge-Liste (yvalues) erstellt 6 Perioden in und stoppt 6 Perioden kurz. Die Mittelung der Daten ab dem Mittelpunkt reduzierte den Betrag der übertriebenen Vorhersage, wie sie in Prognose 1 durchgeführt wurde. Prognose 2: Daten, wenn der Mitteldurchschnitt weniger geeignet ist Die gleitende durchschnittliche Prognose beginnt wirklich zu scheitern, wenn die Datenreihe eine zyklische Komponente oder Saisonalität aufweist. Unten ist die gleiche 12-Periode gleitenden Durchschnitt Python-Code gegen eine zyklische Datenreihe. Prognose 3: 12 Periodenbewegungsdurchschnitte Prognose 3: Fehlermessungen MSE: 5.386.003.002,91 RMSE: 73.389,39 MAPE: 48.79 Die Kurve und die berechneten Fehlermessungen belegen, dass sich die gleitenden Durchschnittswerte nicht gut für diese Serie eignen. Ich werde diese gleiche Serie mit anderen Prognose-Modelle verwenden, um Techniken, die Pick-up-Zyklen in den Daten zu demonstrieren.


No comments:

Post a Comment