Sunday, 21 May 2017

Gleitende Durchschnittliche Prozess Matlab

Ich habe eine Matrix Zeitreihen-Daten für 8 Variablen mit etwa 2500 Punkten (10 Jahre mon-fri) und möchte den Durchschnitt, Varianz, Schiefe und Kurtosis auf einer gleitenden durchschnittlichen Basis zu berechnen. Lets sagen Frames 100 252 504 756 - Ich möchte die vier Funktionen oben auf über jedem der (Zeit-) Frames, auf einer täglichen Basis zu berechnen, so dass die Rückkehr für Tag 300 in dem Fall mit 100 Tag Frame, wäre Mittelwert Varianz Schiefe Kurtosis aus dem Zeitraum day201-day300 (100 Tage insgesamt). und so weiter. Ich weiß, das bedeutet, ich würde ein Array-Ausgang, und die erste Frame-Anzahl von Tagen wäre NaNs, aber ich kann nicht herausfinden, die erforderliche Indizierung, um diese getan. Jul 23, 2010, 10:31:25 pm »Dies ist eine interessante Frage, weil ich denke, die optimale Lösung ist anders für den Mittelwert, als es für die anderen Beispiel Statistiken ist. Ive lieferte ein Simulationsbeispiel unten, dass Sie durcharbeiten können. Zuerst wählen Sie einige beliebige Parameter und simulieren einige Daten: Für den Mittelwert verwenden Sie Filter, um einen gleitenden Durchschnitt zu erhalten: Ich hatte ursprünglich gedacht, dieses Problem mit conv wie folgt zu lösen: Aber wie PhilGoddard in den Kommentaren darauf hinwies, vermeidet der Filteransatz die Notwendigkeit für die Schleife. Beachten Sie auch, dass Ive gewählt, um die Termine in der Ausgangsmatrix entsprechen die Daten in X so in späteren Arbeit können Sie die gleichen Indizes für beide verwenden. Somit werden die ersten WindowLength-1-Beobachtungen in MeanMA nan sein. Für die Varianz, kann ich nicht sehen, wie man entweder Filter oder conv oder sogar eine laufende Summe verwenden, um die Dinge effizienter zu machen, so dass ich stattdessen die Berechnung manuell bei jeder Iteration: Wir könnten etwas beschleunigen, indem wir die Tatsache, dass wir bereits haben Berechnet den durchschnittlichen gleitenden Durchschnitt. Ersetzen Sie einfach die innerhalb der Schleife Linie in der oben mit: Allerdings bezweifle ich, dies wird viel Unterschied machen. Wenn jemand eine schlaue Weise sehen kann, um Filter oder conv zu verwenden, um die sich bewegende Fensterabweichung zu erhalten, ist sehr interessiert, sie zu sehen. Ich lasse den Fall der Schiefe und Kurtosis auf die OP, da sie im Wesentlichen genau das gleiche wie das Varianzbeispiel sind, aber mit der entsprechenden Funktion. Ein letzter Punkt: Wenn Sie die oben in eine allgemeine Funktion konvertiert wurden, könnten Sie in eine anonyme Funktion als eines der Argumente übergeben, dann hätten Sie eine gleitende durchschnittliche Routine, die für willkürliche Auswahl von Transformationen funktioniert. Endpunkt, Endpunkt: Für eine Sequenz von Fensterlängen, einfach Schleife über den gesamten Code-Block für jede Fensterlänge. Ja, die Filterfunktion ist zwar besser für den Mittelwert - aber das wollte ich für mehrere verschiedene Funktionen tun, nicht nur für den Mittelwert. Nur meine Antwort geschrieben, weil es für mich gearbeitet und ich dachte, es könnte jemand anderem zu helfen. Ndash Dexter Morgan Apr 15 14 um 12: 40Dokumentation Ausgang tsmovavg (tsobj, s, lag) liefert den einfachen gleitenden Durchschnitt für finanziellen Zeitreihen-Objekt, tsobj. 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. Output tsmovavg (tsobj, w, gewichte) liefert den gewichteten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj. 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. Die folgenden Werte werden durch Addition des neuen Preises und Subtrahieren des letzten Durchschnitts aus der resultierenden Summe berechnet. Output 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. Die folgenden 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) timeperiod 8212 Zeitdauer nichtnegative Ganzzahl Wählen Sie Ihr CountryMoving Average Filter (MA Filter) Loading. Der gleitende Mittelwertfilter ist ein einfaches Tiefpassfilter (Finite Impulse Response), das üblicherweise zum Glätten eines Arrays von abgetastetem Datensignal verwendet wird. Es benötigt M Abtastwerte von Eingang zu einem Zeitpunkt und nimmt den Durchschnitt dieser M-Abtastungen und erzeugt einen einzigen Ausgangspunkt. Es ist eine sehr einfache LPF (Low Pass Filter) Struktur, die praktisch für Wissenschaftler und Ingenieure, um unerwünschte laute Komponente aus den beabsichtigten Daten zu filtern kommt. Mit zunehmender Filterlänge (Parameter M) nimmt die Glätte des Ausgangs zu, während die scharfen Übergänge in den Daten zunehmend stumpf werden. Dies impliziert, dass dieses Filter eine ausgezeichnete Zeitbereichsantwort, aber einen schlechten Frequenzgang aufweist. Der MA-Filter erfüllt drei wichtige Funktionen: 1) Es benötigt M Eingangspunkte, berechnet den Mittelwert dieser M-Punkte und erzeugt einen einzelnen Ausgangspunkt 2) Aufgrund der Berechnungsberechnungen. Führt das Filter eine bestimmte Verzögerung ein 3) Das Filter wirkt als ein Tiefpaßfilter (mit einer schlechten Frequenzbereichsantwort und einer guten Zeitbereichsantwort). Matlab-Code: Der folgende Matlab-Code simuliert die Zeitbereichsantwort eines M-Point Moving Average Filters und zeigt auch den Frequenzgang für verschiedene Filterlängen. Time Domain Response: Auf dem ersten Plot haben wir die Eingabe, die in den gleitenden Durchschnitt Filter geht. Der Eingang ist laut und unser Ziel ist es, den Lärm zu reduzieren. Die nächste Abbildung ist die Ausgangsantwort eines 3-Punkt Moving Average Filters. Es kann aus der Figur abgeleitet werden, dass der Filter mit 3-Punkt-Moving-Average bei der Filterung des Rauschens nicht viel getan hat. Wir erhöhen die Filterabgriffe auf 51 Punkte und wir können sehen, dass sich das Rauschen im Ausgang stark reduziert hat, was in der nächsten Abbildung dargestellt ist. Wir erhöhen die Anzapfungen weiter auf 101 und 501, und wir können beobachten, dass auch wenn das Rauschen fast Null ist, die Übergänge drastisch abgebaut werden (beobachten Sie die Steilheit auf beiden Seiten des Signals und vergleichen Sie sie mit dem idealen Ziegelwandübergang Unser Eingang). Frequenzgang: Aus dem Frequenzgang kann behauptet werden, dass der Roll-off sehr langsam ist und die Stopbanddämpfung nicht gut ist. Bei dieser Stoppbanddämpfung kann klar sein, dass der gleitende Durchschnittsfilter kein Frequenzband von einem anderen trennen kann. Wie wir wissen, führt eine gute Leistung im Zeitbereich zu einer schlechten Leistung im Frequenzbereich und umgekehrt. Kurz gesagt, ist der gleitende Durchschnitt ein außergewöhnlich guter Glättungsfilter (die Aktion im Zeitbereich), aber ein außergewöhnlich schlechtes Tiefpaßfilter (die Aktion im Frequenzbereich) Externe Links: Empfohlene Bücher: Primäre Seitenleiste


No comments:

Post a Comment