Moving Average Standard Deviation Matlab


Ich habe eine Reihe von Daten x, y und ich versuche, den gleitenden Durchschnitt zu finden. Die x-Daten-Zahlen sind ganze Zahlen von 1 bis 100, während die y-Daten Zahlen von 0,01 bis 1 sind und sie haben auch eine Standardabweichung ydev (die wir ableiten, weil das Experiment mehrmals wiederholt wird). Ich versuche, den gleitenden Durchschnitt unter Verwendung der 20 nächsten Nachbarn zu finden (unter Verwendung von Matlab): Der obige Weg leitet den gleitenden Durchschnitt ab, aber ich weiß nicht, wie man die Standardabweichung verwendet, die ich für jeden y Datenpunkt habe, weil einige Datenpunkte viel haben Größere Standardabweichungen als andere, dh sie sind nicht so zuverlässig wie andere (so dass sie wahrscheinlich weniger wiegen). Wie kann ich die Standardabweichung für jeden Datenpunkt in der oben genannten Berechnung gefragt Jul 5 15 am 15:07 Moving durchschnittlichen oder bewegenden Median. Bezüglich der Frage "Wie kann ich die Standardabweichung für jeden Datenpunkt in den obigen Berechnungquot, es hängt davon ab, was Sie tun möchten. Sie sollten zuerst entscheiden, (die keine Programmierfrage ist). Ein Vorschlag: can39t Sie den gesamten Satz von Daten für jede x (statt nur die durchschnittliche und Standardabweichung) und berechnen Mittel / Median aus, dass ndash LuisMendo Ich wollte gleitenden Durchschnitt (i Bearbeitet den Code, um das zu reflektieren). Der Datensatz ist ein Zeitreihen-Experiment und wurde mehrmals wiederholt (das ist, wie ich Standardabweichungen für jeden Punkt habe). Ich möchte die Standardabweichung für jeden Punkt in meiner Berechnung der gleitenden Durchschnitt verwenden, weil ich will, dass die Punkte mit kleiner Standardabweichung mehr als die Punkte mit größerer Standardabweichung wiegen. Ndash AL B Jul 5 15 am 16:50 Sagen Sie haben einen Vektor a. Dann ist eine andere Schreibweise (a) als gewichteter Durchschnitt awts. Wo wts (1, numel (a)) / numel (a). In Ihrem Fall haben Sie ein y (ind1 (i): ind2 (i)). Es klingt wie das, was Sie verwenden möchten, ist ein gewichteter gleitender Durchschnitt, wo Ihre Gewichte wts nicht mehr identisch sind, sondern mit der Standardabweichung der entsprechenden Werte ausgewählt werden. Unter der Annahme, dass der Vektor sd die Standardabweichungen einnimmt, kann man hier einen Weg finden: Hier werden die Werte mit kleineren Standardabweichungen zu größeren Gewichten beitragen. Eine alternative Idee ist, den einfachen gleitenden Durchschnitt von y und Ihren Standardabweichungen sd zu berechnen. Und zeichnen sie dann nebeneinander auf. Dies hat den Vorteil, dass er mehr statistisch interpretierbar ist als Gewichte als Funktion der Standardabweichungen. Mit MATLAB, wie finde ich die 3-Tage gleitenden Durchschnitt einer bestimmten Spalte einer Matrix und hängen Sie den gleitenden Durchschnitt zu dieser Matrix bin ich Um den dreitägigen gleitenden Durchschnitt von unten nach oben der Matrix zu berechnen. Ich habe meinen Code: Angesichts der folgenden Matrix a und Maske: Ich habe versucht Umsetzung der conv Befehl, aber ich erhalte einen Fehler. Hier ist der Befehl conv, den ich versucht habe, auf der 2. Spalte der Matrix a zu verwenden: Die Ausgabe, die ich wünsche, wird in der folgenden Matrix gegeben: Wenn Sie irgendwelche Vorschläge haben, würde ich es sehr schätzen. Vielen Dank für die Spalte 2 der Matrix a, ich bin die Berechnung der 3-Tage gleitenden Durchschnitt wie folgt und platziert das Ergebnis in Spalte 4 der Matrix a (Ich umbenannt Matrix a als 39desiredOutput39 nur für Abbildung). Der 3-tägige Durchschnitt von 17, 14, 11 ist 14 der dreitägige Durchschnitt von 14, 11, 8 ist 11 der 3-tägige Durchschnitt von 11, 8, 5 ist 8 und der 3-Tage-Durchschnitt von 8, 5, 2 ist 5. Es gibt keinen Wert in den unteren 2 Zeilen für die 4. Spalte, da die Berechnung für den dreitägigen gleitenden Durchschnitt am unteren Ende beginnt. Die 39valid39 Ausgabe wird nicht angezeigt, bis mindestens 17, 14 und 11. Hoffentlich macht dies Sinn ndash Aaron 12 12 13 am 1:28 Im Allgemeinen würde es helfen, wenn Sie den Fehler anzeigen würde. In diesem Fall tun Sie zwei Dinge falsch: Zuerst muss Ihre Faltung durch drei (oder die Länge der gleitenden Durchschnitt) geteilt werden Zweitens beachten Sie die Größe von c. Sie können nicht einfach passen c in eine. Der typische Weg, um einen gleitenden Durchschnitt wäre, um die gleiche: aber das sieht nicht wie Sie wollen. Stattdessen sind Sie gezwungen, ein paar Zeilen zu verwenden: Genaues Berechnen der Ausführungsvarianz Die direkteste Art der Berechnung von Stichprobenvarianz oder Standardabweichung kann schwerwiegende numerische Probleme haben. Mathematisch kann die Probenabweichung wie folgt berechnet werden. Der offensichtlichste Weg, um Varianz zu berechnen, wäre dann, zwei Summen zu haben: einen, um die Summe der x 8216s zu akkumulieren und einen anderen, um die Summen der Quadrate der x 8216s zu akkumulieren. Wenn die x 8216s groß sind und die Unterschiede zwischen ihnen klein sind, würde eine direkte Auswertung der obigen Gleichung die Berechnung einer kleinen Zahl als die Differenz zweier großer Zahlen erfordern, eine rote Fahne für die numerische Berechnung. Der Verlust der Genauigkeit kann so schlecht sein, dass der obige Ausdruck eine negative Zahl auswertet, obwohl die Varianz immer positiv ist. Siehe Vergleich von drei Methoden zur Berechnung der Standardabweichung für Beispiele, wie schlecht die obige Formel sein kann. Es gibt eine Möglichkeit, Varianz zu berechnen, die genauer ist und garantiert wird, immer positive Ergebnisse zu liefern. Ferner berechnet das Verfahren eine laufende Varianz. Das heißt, das Verfahren berechnet die Varianz, wenn die x 8216s einzeln ankommen. Die Daten müssen nicht für einen zweiten Durchgang gespeichert werden. Diese bessere Methode, die Varianz zu berechnen, geht auf eine 1962-Arbeit von B. P. Welford zurück und wird in Donald Knuth8217s Art of Computer Programming vorgestellt. Vol. 2, Seite 232, 3. Ausgabe. Obwohl diese Lösung seit Jahrzehnten bekannt ist, wissen nicht genug Leute darüber. Die meisten Menschen sind wahrscheinlich nicht bewusst, dass die Berechnung der Stichproben-Varianz kann schwierig sein, bis zum ersten Mal berechnen sie eine Standardabweichung und erhalten eine Ausnahme für die Aufnahme der Quadratwurzel einer negativen Zahl. Es ist nicht offensichtlich, dass die Methode auch in der exakten Arithmetik korrekt ist. Es ist noch weniger offensichtlich, dass die Methode überlegene numerische Eigenschaften hat, aber es tut. Der Algorithmus ist wie folgt. Für nachfolgende x 8216s verwenden Sie die Rekursionsformeln Die unten aufgeführte C-Klasse RunningStat verwendet diese Methode, um die mittlere Abtastvarianz und die Standardabweichung eines Datenstroms zu berechnen. Dieses Codebeispiel zeigt, wie die Klasse verwendet wird. Wenn neue Werte kommen, sagen wir aus einer Simulation, gelangen sie über die Push-Methode in die RunningStat-Klasse. Um die Mittelwert-, Varianz - oder Standardabweichung jederzeit zu überprüfen, rufen Sie die entsprechenden Methoden auf. Der Quellcode für die RunningStat-Klasse folgt: Hier sind ein paar Verweise auf die Berechnung der Stichproben-Varianz. Chan, Tony F. Golub, Gene H. LeVeque, Randall J. (1983). Algorithmen zur Berechnung der Stichprobenabweichung: Analyse und Empfehlungen. Der amerikanische Statistiker 37, 242-247. Ling, Robert F. (1974). Vergleich von mehreren Algorithmen für die Berechnung von Mustermitteln und Abweichungen. Zeitschrift für anorganische und allgemeine Chemie. 69, Nr. 348, 859-866. Aktualisieren. Siehe diese Seite für eine Erweiterung dieses Codes, der auch die Berechnung von Schiefe und Kurtosis unterstützt. Außerdem unterstützt der neue Code die Kombination von RunningStat-Objekten über die und Operatoren.

Comments