Friday, November 18, 2016

Gleitender Durchschnittsvektor R

So berechnen Sie gleitenden Durchschnitt ohne Filter () Es gibt eine zillion Antworten darauf, denn Ihre Frage ist wirklich: Wie glätte ich eine Zeitreihe So können Sie auf entsprechende Keywords zu suchen. Meine Antwort ist: Verwenden Sie keine gleitenden Durchschnitte - das ist pathetisch alt. Löss ist eine unter den zillions von Alternativen, die Sie betrachten konnten. Post auf CV (stats. stackexchange) für andere statistische Alternativen für die Zeitreihe Glättung. Darüber hinaus ist die quotunderstandingquot Sie oben ist fehlerhaft. Anwendungsähnliche Konstrukte sind (R-Level) - Schleifen. So haben Sie Ihre Hausaufgaben durch Lesen einer Intro zu R (cran. r-project. org/doc/manuals/R-intro. pdf) oder andere Web-Tutorials Wenn nicht, bitte tun Sie dies, bevor Sie hier weiter. Bert Gunter Genentech Nichtklinische Biostatistik (650) 467-7374 quotData ist keine Information. Information ist nicht Wissen. Und Wissen ist sicher nicht Weisheit. zum H. Gilbert Welch Am Mo, 17. Februar 2014 um 10:45 Uhr, C W lthidden E-Mail gt wrote: gt Hi-Liste, gt Wie berechne ich einen gleitenden Durchschnitt ohne Filter (). Filter () scheinen keine gewichteten Durchschnittswerte zu geben. Gt gt Ich schaue in apply (), tapply. Aber nichts quotmovesquot. Gt gt Beispiel: gt gt datlt-c (1:20) gt Mittel (dat1: 3) gt Mittel (dat4: 6) gt Mittel (dat7: 9) gt Mittel (dat10: 12) gt gt etc. gt gt I Verstehen, der Punkt der Anwendung ist es, Schleifen zu vermeiden, wie sollte ich gt diese Idee in eine Anwendung () gt gt Danke, gt Mike gt gt alternative HTML-Version gelöscht gt gt gt versteckte E-Mail-Mailing-Liste gt stat. ethz. ch/mailman / list / r Hilfe gt BITTE die Entsendung Führung www. R-project. org/posting-guide gt und bieten kommentierte, minimal, in sich geschlossene, reproduzierbare Code liest. In Antwort auf dieses Thema von tmrsg11 Am 17. Februar 2014, um 10:45 Uhr, schrieb C W: gt Hallo Liste gt Wie berechne ich einen gleitenden Durchschnitt ohne Filter () verwenden. Filter () scheinen keine gewichteten Durchschnittswerte zu geben. Gt gt Ich schaue in apply (), tapply. Aber nichts quotmovesquot. Gt gt Beispiel: gt gt datlt-c (1:20) gt Mittel (dat1: 3) gt Mittel (dat4: 6) gt Mittel (dat7: 9) gt Mittel (dat10: 12) gt gt etc. gt gt I verstehen der Punkt der Anwendung ist Schleifen zu vermeiden, wie soll ich gt diese Idee in die Verwendung eines apply () integrieren gt ein Vektorkonstrukt für die Gruppierung und verwenden tapply. Modulo-Abteilung ist eine gemeinsame Methode, um dies zu erreichen. Manchmal kann die seq-Funktion verwendet werden, wenn Sie die Länge richtig einstellen. Gt tapply (dat, (0, (Länge (dat) -1)) / 3, Mittelwert) 0 1 2 3 4 5 6 2,0 5,0 8,0 11,0 14,0 17,0 19,5 tapply (dat, round (seq ) / 3), lenlength (dat))), bedeuten) 1 2 3 4 5 6 7 1.5 4.5 8.0 11.0 14.5 18.0 20.0 Der Kommentar über die Gewichtung scheinen dos nicht in Ihrem Beispiel veranschaulicht werden. gt Danke gt Mike gt gt alternative HTML-Version gelöscht gt gt gt versteckte E-Mail-Verteilerliste gt stat. ethz. ch/mailman/listinfo/r-help gt BITTE tun, um die Entsendung Führer lesen www. R-project. org/posting-guide Gt und geben kommentierten, minimalen, in sich geschlossenen, reproduzierbaren Code. David Winsemius Alameda, CA, USA öffnen diesen Beitrag in Baumansicht Bericht Inhalt melden Re: Mittelwert zu berechnen Bewegen ohne Filter verwendet () Als Antwort auf diesen Beitrag von Rui Barradas Für 5-Punkt-Durchschnitt, Filter (x, side2, filterrep (1/5, 5)), im Vergleich zu, Filter (x, side2, filterrep (1, 5) haben sie die gleiche Wirkung haben, da die gesamten Bedürfnisse 1. Gabor amp Rui zu sein: ich bin mir bewusst, der Zoo-Paket, ... ich wollte nicht, ein Paket für eine Funktion Aus demselben Grund für sos-Paket zu installieren David, danke, das ist, was ich suche am Mo, 17. Februar 2014, um 2:07 Uhr, Rui Barradas lthidden E-Mail gt schrieb: Gt gt Hallo, gt gt Viele Pakete haben eine movind durchschnittliche Funktion, z. B. Paket gt Prognose oder gt gt Bibliothek (sos) gt findFn (mittlere quot) gt gt In Ihrem Beispiel, was Sie berechnen ist nicht gerade ein gleitender Durchschnitt, aber in gt kann mit so etwas wie die folgenden berechnet werden gt gt s LT - (seqalong (dat) - 1). / 3 gt sapply (split (dat, s), Mittelwert) gt gt gt Hoffe, dass dies hilft, gt gt Rui Barradas gt gt gt Em 17-02-2014 18.45, CW escreveu: gt gtgt Hallo Liste, gtgt Wie berechne ich einen gleitenden Durchschnitt ohne Filter () verwenden. filter () scheint gtgt nicht gewichteten Mittelwerte zu geben. gtgt gtgt Ich suche in apply (), tapply. Aber nichts quotmovesquot. gtgt gtgt Zum Beispiel gtgt gtgt datlt-c (1:20) gtgt Mittelwert (DAT1: 3) gtgt Mittelwert (DAT4: 6) gtgt Mittelwert (DAT7: 9) gtgt Mittelwert (dat10: 12) gtgt gtgt usw. gtgt gtgt I Verstehen, der Punkt der Anwendung ist es, Schleifen zu vermeiden, wie sollte ich gtgt diese gtgt-gtgt in diesem Fall in eine Anwendung () gtgt gtgt Danke, gtgt Mike gtgt gtgt alternative HTML-Version gelöscht gtgt gtgt gtgt versteckte E-Mail-Mailing-Liste gtgt stat. ethz. ch/ mailman / listinfo / r Hilfe gtgt BITTE tun die Entsendung Führung www. R-project. org/ gtgt Posting-Führer gtgt und bieten kommentierte, minimal, in sich geschlossene, reproduzierbare Code lesen. Gtgt gtgt alternative HTML-Version deletedDocumentation tsmovavg output tsmovavg (tsobj, s, lag) gibt den einfachen gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Verzögerung gibt die Anzahl der vorherigen Datenpunkte an, die beim Berechnen des gleitenden Mittelwerts mit dem aktuellen Datenpunkt verwendet werden. Ausgabe tsmovavg (Vektor, s, lag, dim) gibt den einfachen gleitenden Durchschnitt für einen Vektor zurück. Verzögerung gibt die Anzahl der vorherigen Datenpunkte an, die beim Berechnen des gleitenden Mittelwerts mit dem aktuellen Datenpunkt verwendet werden. Output tsmovavg (tsobj, e, timeperiod) gibt den exponentiellen gewichteten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei die Zeitperiode den Zeitraum angibt. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. Exponentialprozent 2 / (TIMEPER 1) oder 2 / (WINDOWSIZE 1). Output tsmovavg (Vektor, e, timeperiod, dim) gibt den exponentiell gewichteten gleitenden Durchschnitt für einen Vektor zurück. Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei die Zeitperiode den Zeitraum angibt. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. (2 / (Zeitabschnitt 1)). Ausgabe tsmovavg (tsobj, t, numperiod) gibt den dreieckigen gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der dreieckige gleitende Durchschnitt doppelt glättet die Daten. Tsmovavg berechnet den ersten einfachen gleitenden Durchschnitt mit Fensterbreite von ceil (numperiod 1) / 2. Dann berechnet es einen zweiten einfachen gleitenden Durchschnitt auf dem ersten gleitenden Durchschnitt mit der gleichen Fenstergröße. Ausgabe tsmovavg (Vektor, t, numperiod, dim) gibt den dreieckigen gleitenden Durchschnitt für einen Vektor zurück. Der dreieckige gleitende Durchschnitt doppelt glättet die Daten. Tsmovavg berechnet den ersten einfachen gleitenden Durchschnitt mit Fensterbreite von ceil (numperiod 1) / 2. Dann berechnet es einen zweiten einfachen gleitenden Durchschnitt auf dem ersten gleitenden Durchschnitt mit der gleichen Fenstergröße. Ausgabe tsmovavg (tsobj, w, Gewichte) gibt den gewichteten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Indem Gewichte für jedes Element in dem sich bewegenden Fenster bereitgestellt werden. Die Länge des Gewichtsvektors bestimmt die Größe des Fensters. Wenn größere Gewichtungsfaktoren für neuere Preise und kleinere Faktoren für frühere Preise verwendet werden, ist der Trend eher auf die jüngsten Veränderungen ansprechen. Ausgabe tsmovavg (Vektor, w, Gewichte, dim) gibt den gewichteten gleitenden Durchschnitt für den Vektor zurück, indem Gewichte für jedes Element in dem sich bewegenden Fenster geliefert werden. Die Länge des Gewichtsvektors bestimmt die Größe des Fensters. Wenn größere Gewichtungsfaktoren für neuere Preise und kleinere Faktoren für frühere Preise verwendet werden, ist der Trend eher auf die jüngsten Veränderungen ansprechen. Output tsmovavg (tsobj, m, numperiod) gibt den modifizierten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der modifizierte gleitende Durchschnitt ist ähnlich dem einfachen gleitenden Durchschnitt. Betrachten Sie das Argument numperiod als die Verzögerung des einfachen gleitenden Mittelwerts. Der erste modifizierte gleitende Durchschnitt wird wie ein einfacher gleitender Durchschnitt berechnet. Nachfolgende Werte werden durch Addition des neuen Preises und Subtrahieren des letzten Durchschnitts aus der resultierenden Summe berechnet. Ausgabe tsmovavg (Vektor, m, numperiod, dim) gibt den modifizierten gleitenden Durchschnitt für den Vektor zurück. Der modifizierte gleitende Durchschnitt ist ähnlich dem einfachen gleitenden Durchschnitt. Betrachten Sie das Argument numperiod als die Verzögerung des einfachen gleitenden Mittelwerts. Der erste modifizierte gleitende Durchschnitt wird wie ein einfacher gleitender Durchschnitt berechnet. Nachfolgende Werte werden durch Addition des neuen Preises und Subtrahieren des letzten Durchschnitts aus der resultierenden Summe berechnet. Dim 8212 Dimension, um auf positive ganze Zahl mit dem Wert 1 oder 2 arbeiten Dimension zu arbeiten, als eine positive Ganzzahl mit einem Wert von 1 oder 2 angegeben. Dim ist ein optionales Eingabeargument, und wenn es nicht als eine Eingabe enthalten ist, die Standardeinstellung Wert 2 wird angenommen. Der Standardwert von dim 2 gibt eine zeilenorientierte Matrix an, wobei jede Zeile eine Variable ist und jede Spalte eine Beobachtung ist. Wenn dim 1. die Eingabe als Spaltenvektor oder spaltenorientierte Matrix angenommen wird, wobei jede Spalte eine Variable und jede Zeile eine Beobachtung ist. E 8212 Indikator für exponentiell gleitenden durchschnittlichen Charaktervektor Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei der Zeitabschnitt der Zeitraum des exponentiellen gleitenden Durchschnitts ist. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. Exponentialprozent 2 / (TIMEPER 1) oder 2 / (WINDOWSIZE 1) Zeitintervall 8212 Länge der Zeitperiode nichtnegative Ganzzahl Wählen Sie Ihr CountryIm nicht suren der korrekten Lösung aber, da das Summieren des Mittelwerts jeder Probe einen angemessenen Betrag des Rundungsfehlers einführen würde. Hmm Ich frage mich, wenn die Trennung der gebrochenen Teil aus dem ganzen Teil helfen würde. Teilen Sie den ganzen Teil jeder Zahl durch den Zähler. Halten Sie drei laufende Summen: 1) der Durchschnitt der ganzen Teile, 2) der Rest von jeder Division und 3) der Bruchteil einer jeden Zahl. Jedes Mal, wenn der ganze Teil einer Zahl geteilt wird, wird das gesamte Teilergebnis zu der durchschnittlichen laufenden Summe addiert, und der Rest wird zu der verbleibenden laufenden Summe addiert. Wenn die verbleibende laufende Summe einen Wert erhält, der größer oder gleich dem Zählwert ist, wird sein dividiert durch die Zählung mit dem gesamten Teilergebnis zu der durchschnittlichen laufenden Summe addiert, und der Rest wird zu der restlichen laufenden Summe addiert. Auch wird bei jeder Berechnung der Bruchteil zur Bruchlaufsumme addiert. Wenn die Mittelung beendet ist, wird die verbleibende laufende Summe durch die Zählung geteilt, und das Ergebnis wird der durchschnittlichen laufenden Summe als eine fließende Zahl hinzugefügt. Zum Beispiel: Nun, was mit der fraktionalen laufenden Summe zu tun. Die Gefahr des Überlaufs ist hier viel weniger wahrscheinlich, obwohl es immer noch möglich ist, so dass man damit umgehen würde, wäre es, die gebrochene laufende Summe durch den Zähler am Ende zu teilen und es zu unserem Ergebnis hinzuzufügen: Eine Alternative wäre, den fraktionalen Betrieb zu überprüfen Summe bei jeder Berechnung, um zu sehen, ob sie größer oder gleich count ist. Wenn das passiert, tun Sie einfach das Gleiche, was wir mit der restlichen Summe machen. Ausgezeichnet Jomit Vaghela 6-Mar-07 20:00 Ich mochte, was Sie sagten, dass kleine Jobs schnell zu großen Jobs werden. Denken an Optimierung während Codierung ist eine gute Praxis. Vielen Dank Mike DiRenzo 5-Mar-07 15:26 Dies ist das erste Mal, dass ich auf einen Ihrer Artikel geantwortet haben. Ich bin aber ein sehr begeisterter Leser. Während des Studiums musste ich gewichtete gleitende Durchschnitte und einfache auch berechnen. Heck, hatte ich sogar einige meiner eigenen gleitenden durchschnittlichen Algorithmen in einer benutzerdefinierten ERP-Implementierung vor einiger Zeit auf der Grundlage einiger der gleichen Formeln, die ich in Operations 101 gelernt zu schaffen. Aber diese Umsetzung, mit Generika, weit überwiegt alles in Bezug auf die Optimierung, Einfachheit und verdammt richtige Coolness. Vielen Dank dafür. Einer Ihrer vielen Fans, In Ruhe und Stille, die Wahrheit wird klar. Ewma gobgob 5-Mar-07 4:30 Wenn Ihr versuchen, einen einfachen gleitenden Durchschnitt zu berechnen, müssen Sie eine Sammlung, die sehr komplex ist für eine solche einfache Aufgabe zu halten. Wie wäre es mit einem ewma Seine 2 Zeilen Code, viel einfacher. (1-alpha) newValue Re: ewma Marc Clifton 5-Mar-07 4:47 Wie wäre es mit einem ewma Interessante Idee. Für Leser, die nicht wissen, was ein ewma ist, ist es ein exponentiell gewichtet Moving Average. Die Leute sind nur notorisch unmöglich. --DavidCrow Theres Keine Entschuldigung für nicht kommentieren Ihren Code. - John Simmons / outlaw Programmierer Leute, die sagen, dass sie ihren Code später umgestalten, um es gut zu machen nicht verstehen Refactoring, noch die Kunst und Handwerk der Programmierung. - Josh Smith Re: ewma pwasser 5-Mar-07 12:21 Eine Schätzung des gleitenden Mittelwertes, wenn die Behältergröße für den gleitenden Durchschnitt n ist, kann erhalten werden durch: NewAverage (((n-1) OldAverage) newValue) / n Dies funktioniert, sobald der Behälter voll ist (Probennummer n). Der Behälter, der teilweise voll ist, wird häufig behandelt, indem ein Samenwert für den anfänglichen gleitenden Durchschnitt (OldAverage) verwendet wird und dann diese Berechnung verwendet wird. Dies nimmt eine normale Verteilung der Werte etc. Sie waren beschäftigt Colin Angus Mackay 4-Mar-07 11:37 Posting zwei Artikel heute Abend. Große Arbeit Ich weiß nicht, wie Sie es tun. Ive erhielt ungefähr 4 oder 5 Artikel halb fertig und ich scheine nie, die Zeit zu finden, sie zu vollenden. Gut. Vielleicht, wenn ich aus der Lounge Id verwalten. Re: Sie waren beschäftigt Marc Clifton 4-Mar-07 13:25 Colin Angus Mackay hat geschrieben: Posting zwei Artikel heute Abend. Große Arbeit Dank schrieb ich eigentlich den Artikel auf den laufenden Durchschnitt und erkannte, dass die kreisförmige Liste tatsächlich ein wirklich guter Stand-alone-Artikel wäre. Plus, sie sind leichte Artikel. Ich kann sie ziemlich schnell wegdrehen. Sein gerade hartes, an nützliches aber einfaches Material zu denken. Stellt sich heraus, ich brauchte diese beiden Klassen sowieso. Die Leute sind nur notorisch unmöglich. --DavidCrow Theres Keine Entschuldigung für nicht kommentieren Ihren Code. - John Simmons / outlaw Programmierer Leute, die sagen, dass sie ihren Code später umgestalten, um es gut zu machen nicht verstehen Refactoring, noch die Kunst und Handwerk der Programmierung. - Josh Smith Re: Sie waren beschäftigt JeffPClark 8-Mar-07 0:07 Von dem, was Ive von Marc gelesen, hat er wahrscheinlich ein Programm, das ein Stück Code untersuchen und erklären kann, die komplizierten Details, dann veröffentlichen sie direkt zu Code Project . Jeff Clark Systems Architekt JP Clark, INC. Columbus, Ohio Letzte Änderung: 31-Dec-99 18:00 Letzte Aktualisierung: 13-Oct-16 23:36 Allgemeine Nachrichten Vorschlag Frage Bug Antwort Joke Praise Rant Admin Verwenden Sie CtrlLeft / Right zu wechseln CtrlUp / Down, um die Threads zu wechseln, CtrlShiftLeft / Rechts, um Seiten zu wechseln. Durchschnittswerte / Einfacher gleitender Durchschnitt Durchschnittswerte / Einfacher gleitender Durchschnitt Sie werden aufgefordert, diese Aufgabe entsprechend der Aufgabenbeschreibung unter Verwendung einer beliebigen Sprache zu lösen. Berechnen der einfachen gleitenden Durchschnitt einer Reihe von Zahlen. Erstellen Sie eine Stateful-Funktion / Klasse / Instanz, die einen Punkt dauert und gibt eine Routine zurück, die eine Zahl als Argument annimmt und einen einfachen gleitenden Durchschnitt ihrer Argumente zurückgibt. Ein einfacher gleitender Durchschnitt ist ein Verfahren zum Berechnen eines Durchschnitts eines Stroms von Zahlen durch nur Mittelung der letzten 160 P 160-Nummern aus dem Strom 160, wobei 160 P 160 als Periode bekannt ist. Sie kann implementiert werden, indem eine Initialisierungsroutine mit 160 P 160 als Argument 160 I (P) 160 aufgerufen wird, die dann eine Routine zurückgeben sollte, die, wenn sie mit einzelnen aufeinanderfolgenden Elementen eines Stroms von Zahlen aufgerufen wird, den Mittelwert von (up To), die letzten 160 P 160 von ihnen, rufen Sie diese 160 SMA (). Das Wort 160 stateful 160 in der Aufgabenbeschreibung bezieht sich auf die Notwendigkeit für 160 SMA () 160, sich an bestimmte Informationen zwischen Anrufen zu erinnern: 160 Der Zeitraum 160 P 160 Ein geordneter Container von mindestens den letzten 160 P 160 Nummern von jedem von Seine individuellen Anrufe. Stateful 160 bedeutet auch, dass sukzessive Aufrufe von 160 I (), 160 der Initialisierer, 160 separate Routinen zurückgeben sollten, die 160 nicht den gespeicherten Zustand teilen, so dass sie auf zwei unabhängigen Datenströmen verwendet werden können. Pseudocode für eine Implementierung von 160 SMA 160 ist: Diese Version verwendet eine persistente Warteschlange, um die letzten p Werte zu halten. Jede vom init-moving-average zurückgegebene Funktion hat ihren Zustand in einem Atom, das einen Queue-Wert enthält. Diese Implementierung verwendet eine zirkuläre Liste, um die Zahlen in dem Fenster am Anfang jedes Iterationszeigers zu speichern, bezieht sich auf die Listenzelle, die den Wert hält, der sich gerade aus dem Fenster bewegt und durch den gerade addierten Wert ersetzt wird. Verwenden eines Closure-Edit derzeit Diese sma kann nicht nogc, weil es eine Schließung auf dem Heap zugeordnet. Einige Escape-Analyse konnte die Heap-Zuweisung entfernen. Verwenden einer Strukturbearbeitung Diese Version vermeidet die Heapzuweisung des Verschlusses, der die Daten im Stapelrahmen der Hauptfunktion hält. Gleiche Ausgabe: Um zu vermeiden, dass die Gleitkomma-Näherungen aufeinandertreiben und wachsen, kann der Code eine periodische Summe auf dem gesamten kreisförmigen Warteschlangen-Array ausführen. Diese Implementierung erzeugt zwei (Funktions-) Objekte, die den Zustand teilen. Es ist idiomatisch in E, die Eingabe von der Ausgabe (Lesen von Schreiben) zu trennen, anstatt sie zu einem Objekt zu kombinieren. Die Struktur ist die gleiche wie die Implementierung von Standard DeviationE. Das Elixierprogramm unten erzeugt eine anonyme Funktion mit einer eingebetteten Periode p, die als Periode des einfachen gleitenden Durchschnitts verwendet wird. Die run-Funktion liest die numerische Eingabe und übergibt sie an die neu erstellte anonyme Funktion und prüft dann das Ergebnis auf STDOUT. Die Ausgabe ist unten gezeigt, mit dem Durchschnitt, gefolgt von der gruppierten Eingabe, die die Grundlage für jeden gleitenden Durchschnitt bildet. Erlang hat Verschlüsse, aber unveränderliche Variablen. Eine Lösung besteht dann darin, Prozesse und eine einfache Message passing based API zu verwenden. Matrixsprachen haben Routinen, um die Gleitabschnitte für eine gegebene Reihenfolge von Elementen zu berechnen. Es ist weniger effizient Schleife wie in den folgenden Befehlen. Fordert kontinuierlich einen Eingang I auf. Die dem Ende einer Liste L1 hinzugefügt wird. L1 kann durch Drücken von 2ND / 1 gefunden werden, und Mittelwert kann in Liste / OPS gefunden werden. Drücken Sie ON, um das Programm zu beenden. Funktion, die eine Liste mit den gemittelten Daten des bereitgestellten Arguments zurückgibt Programm, das bei jedem Aufruf einen einfachen Wert zurückgibt: list ist die gemittelte Liste: p ist die Periode: 5 gibt die gemittelte Liste zurück: Beispiel 2: Verwenden des Programms movinav2 (i , 5) - Initialisieren der gleitenden Durchschnittsberechnung und Definieren des Zeitraums von 5 movinav2 (3, x): x - neue Daten in der Liste (Wert 3), und das Ergebnis wird auf der Variablen x gespeichert und movinav2 (4, : X - neue Daten (Wert 4), und das neue Ergebnis wird auf Variable x gespeichert und angezeigt (43) / 2. Beschreibung der Funktion movinavg: Variable r - ist das Ergebnis (die gemittelte Liste), die zurückgegeben wird Variable i - ist die Index-Variable, und es zeigt auf das Ende der Unterliste die Liste gemittelt wird. Variable z - eine Helpervariable Die Funktion nutzt die Variable i, um zu bestimmen, welche Werte der Liste bei der nächsten Durchschnittsberechnung berücksichtigt werden. Bei jeder Iteration zeigt die Variable i auf den letzten Wert in der Liste, der in der Durchschnittsberechnung verwendet wird. Also müssen wir nur herausfinden, welcher der erste Wert in der Liste sein wird. Normalerweise müssen p Elemente berücksichtigt werden, also wird das erste Element dasjenige sein, das durch (i-p1) indexiert wird. Jedoch wird bei den ersten Iterationen die Berechnung gewöhnlich negativ sein, so daß die folgende Gleichung negative Indexe vermeiden wird: max (i-p1,1) oder die Anordnung der Gleichung max (i-p, 0) 1. Die Anzahl der Elemente auf den ersten Iterationen ist ebenfalls kleiner, der korrekte Wert (Endindex - Anfangsindex 1) oder die Anordnung der Gleichung (i - (max (ip, 0) 1) 1) , (I-max (ip, 0)). Die Variable z enthält den gemeinsamen Wert (max (ip), 0), so dass der Anfangsindex (z1) ist und die Anzahl der Elemente (iz) mid (Liste, z1, iz) .) Wird addieren Summe (.) / (Iz) ri wird sie mitteln und das Ergebnis an der entsprechenden Stelle in der Ergebnisliste speichern Verwenden eines Verschlusses und Erstellen einer FunktionMoving Average Dieses Beispiel lehrt, wie Sie den gleitenden Durchschnitt einer Zeit berechnen Reihe in Excel. Eine Bewegung wird verwendet, um Unregelmäßigkeiten (Spitzen und Täler) zu glätten, um Trends leicht zu erkennen. 1. Erstens, werfen wir einen Blick auf unsere Zeitreihe. 2. Klicken Sie auf der Registerkarte Daten auf Datenanalyse. Hinweis: Klicken Sie hier, um das Analyse-ToolPak-Add-In zu laden. 3. Wählen Sie Verschiebender Durchschnitt aus, und klicken Sie auf OK. 4. Klicken Sie im Feld Eingabebereich auf den Bereich B2: M2. 5. Klicken Sie in das Feld Intervall und geben Sie 6 ein. 6. Klicken Sie in das Feld Ausgabebereich und wählen Sie Zelle B3 aus. 8. Zeichnen Sie ein Diagramm dieser Werte. Erläuterung: Da wir das Intervall auf 6 setzen, ist der gleitende Durchschnitt der Durchschnitt der letzten 5 Datenpunkte und der aktuelle Datenpunkt. Als Ergebnis werden Spitzen und Täler geglättet. Die Grafik zeigt eine zunehmende Tendenz. Excel kann den gleitenden Durchschnitt für die ersten 5 Datenpunkte nicht berechnen, da nicht genügend frühere Datenpunkte vorhanden sind. 9. Wiederholen Sie die Schritte 2 bis 8 für Intervall 2 und Intervall 4. Fazit: Je größer das Intervall, desto mehr werden die Spitzen und Täler geglättet. Je kleiner das Intervall, desto näher sind die gleitenden Mittelwerte zu den tatsächlichen Datenpunkten. Mögen Sie diese kostenlose Website Bitte teilen Sie diese Seite auf Google


No comments:

Post a Comment