Monday, 10 July 2017

Gleitende Durchschnittliche Ausreißer

Ich benutze einen gleitenden Durchschnitt Filter, um Daten für Ausreißer entfernen. Durch die Änderung der Anzahl der durchschnittlichen Punkte, bekomme ich verschiedene Ergebnisse. Meine Daten sind multidimensionale Merkmalsvektoren. Ich wandte den gleitenden Durchschnitt auf die gesamte Matrix und dann auf einzelne Variablen. Sie geben unterschiedliche Ergebnisse. Also, wie man wählen Sie die Anzahl der Punkte, um durchschnittlich über und sollte es auf die gesamte Matrix oder auf einer nach dem anderen angewendet werden? Glenb 9830 156k 9679 20 9679 258 9679 533 Ein Ansatz zur Auswahl eines Glättungsparameter wäre die Optimierung von einstufigen Vorhersagefehlern (wie etwa Summen von Quadraten von Ein-Schritt-Voraus-Vorhersagefehlern). Wenn Sie versuchen zu identifizieren Ausreißer, you39d wollen eine andere Messung der Vorhersage Fehler - ein vernünftigerweise robust, um Ausreißer (und dann gleitende Durchschnittswerte scheinen eine seltsame Wahl - warum nicht etwas robuster zu den Ausreißern) ndash Glenb 9830 Nov 2 13 um 1: 11 Weder. Beide. Alle. Es tut uns leid. Aber ich denke, dies ist ein weiterer Versuch (wenn auch ein kluger) zu automatisieren, was nicht wirklich automatisiert werden kann. Natürlich verschiedene Methoden geben unterschiedliche Ergebnisse das einzige Mal, sie wouldnt ist, wo die Ausreißer so offensichtlich ist, dass Sie nicht brauchen einen Test. Mein Vorschlag ist, eine Vielzahl von Methoden zu verwenden, um mögliche Ausreißer zu identifizieren, dann untersuchen diese Ausreißer auf einer individuellen basis. Ich habe an vielen Stellen gelesen, dass Moving Median ist ein bisschen besser als Moving Durchschnitt für einige Anwendungen, weil es weniger empfindlich auf Ausreißer ist . Ich wollte diese Aussage auf reale Daten testen, aber ich kann diesen Effekt nicht sehen (grün: median, rot: durchschnittlich). Siehe hier: Ich habe mit verschiedenen Werten für Fensterbreite (hier im Code 1000) versucht, und es war immer dasselbe: der bewegliche Median ist nicht besser als gleitender Durchschnitt (d. h. nicht weniger empfindlich auf Ausreißer). Das gleiche mit Fensterbreite 10000 (10000 die Spitzenbreite). Können Sie ein Beispiel, dass bewegende Median ist weniger empfindlich auf Ausreißer als gleitenden Durchschnitt und wenn möglich mit dem Beispiel. WAV-Datei-Daten-Set (Download-Link). D. h. es ist möglich, einen bewegten Median auf diesen Daten zu machen, so daß das Ergebnis wie diese gelbe Kurve ist (d. h. keine Spitze mehr) Dies ist nicht wirklich eine Antwort, aber ich dachte, dass ich berichte, was ich sehe und nach weiteren Informationen frage. Ive geladen Ihre test. wav Akte und ich kann das Signal sehen, das unten gezeichnet wird. So was youre, das in den Diagrammen erhält, die Sie darstellen, ist nicht soviel der Mittelwert, aber ist mehr wie eine Hüllkurve des Signals. Das zweite Problem ist, dass das Signal tatsächlich ein Teil des Signals zu sein scheint. Wenn ich in den Blip zoomen, dann ist dies, was ich sehe: Was sind Sie wirklich versuchen zu erreichen Danke für das Feedback. Unten ist einige R-Code, der die folgenden: Lädt die WAV-Datei. Nimmt den Absolutwert des Signals an (es wird von der waveR-Bibliothek in den linken Kanal geladen). Führt einen 100-stelligen gleitenden Mittelwertfilter auf die Daten durch, um etwas näher an die Hüllkurve zu kommen (rotes Signal). Dann wendet ein Medianfilter der Längen 201, 2001 und 4001 auf das Ergebnis an (blaues Signal). Aus der Handlung unten, die beste Leistung ist die 4001 Länge ein. Andernfalls ist die Wirkung der Störung noch vorhanden. Die einzige Sache, die ich falsch jetzt sehen kann, ist, dass der Umschlag nicht mit dem zutreffenden Umschlag sowie Identifikation wie zusammenbringt. Ein besserer Hüllkurvendetektor könnte dies verbessern (z. B. das analytische Signal oder dergleichen). Unten ist eine Auftragung der berechneten Median-gefilterten Hüllkurve, die auf dem ursprünglichen Signal überlagert ist. Vielen Dank für die Zeit, die Sie für diese Frage verbracht In der Tat, ich den Mittelwert und Mittelwert der absolute Wert des Signals. Und ja, das gibt eine Vorstellung von dem Umschlag, das ist, was ich will. Was ich erwartete (dank Median statt Mittel) war so etwas. Bildschirmfoto. Unabhängig von der Fensterbreite für den Median. Die Spitze ist immer da. Während viele Dokumente sagen quotthe Median hat den Vorteil der Senkung der Wirkung der Ausreißer Wertequot. Ndash Basj Nov 30 15 am 14:01 Richtig, also fragt die Frage I39m: quotoutlier von whatquot. -) Unter direkten Median oder Mittelwert der Daten, die Sie haben, werden unsinnige Ergebnisse liefern. Die mittlere Filterung funktioniert nur dann gut, wenn einige Proben (bezogen auf die Fensterlänge) außerhalb des erwarteten Bereichs liegen. Da die Daten, die Sie haben, schwingt positiv und negativ, ist der Median isn39t wirklich geeignet für sie. Unter dem Median des Umschlags sollte besser funktionieren. Sie können sogar einen einfachen Tiefpassfilter auf den absoluten Wert setzen, um einen stabilen Hüllkurvenwert zu erhalten. Ndash Peter K. 9830 Nov 30 15 am 14: 05 Wir haben einen Dämon, der in Daten von einigen Sensoren liest, und unter den Dingen, die es berechnet (neben einfach nur den Zustand melden) ist die durchschnittliche Zeit, die es braucht, damit sich die Sensoren von einem ändern Wert zu einem anderen. Es hält einen laufenden Durchschnitt von 64 Datenpunkte und nimmt an, dass die Laufzeit relativ konstant ist. Leider, wie das folgende Diagramm zeigt, sind die Eingabedaten nicht die unberührtesten: (Jede Zeile stellt einen anderen Satz von Daten dar, die die X-Achse nicht wirklich etwas anderes als eine vage historische Zeitachse bedeutet). Meine offensichtliche Lösung für den Umgang damit wäre, ein Histogramm der Daten zu erstellen und wählen Sie dann den Modus. Ich frage mich, ob es andere Methoden, die bessere Leistung liefern würde oder wäre besser geeignet für den Betrieb mit einem laufenden Durchschnitt. Einige schnelle Wikipedia-Suchvorschläge Algorithmen für die Erkennung von Ausreißern kann auch geeignet sein. Simplicity ist ein Plus, da der Daemon in C. Edit geschrieben wird. Ich scoped aus Wikipedia und kam mit diesen verschiedenen Techniken: Chauvenets Kriterium: mit dem Mittelwert und Standardabweichung, berechnen die Wahrscheinlichkeit ein bestimmter Datenpunkt würde geschehen, und dann auszuschließen, wenn die Wahrscheinlichkeit ist eigentlich, dass schlecht ist weniger als 50. Während dies scheint Gut geeignet für die Korrektur eines laufenden Mittels on the fly, Im nicht ganz überzeugt von seiner Wirksamkeit: es scheint mit großen Datensätzen würde es nicht wollen, verwerfen datapoints. Grubbs-Test: Eine andere Methode, die die Differenz von der mittleren zur Standardabweichung verwendet, und hat einen Ausdruck für die Ablehnung der Hypothese von Ausreißern. Köcheabstand: Misst den Einfluss, den ein Datenpunkt auf eine Regression der kleinsten Quadrate hat, die unsere Anwendung wahrscheinlich ablehnen würde Überschritten 1 Abgeschnittenes Mittel: Verwerfen Sie das untere Ende und das hohe Ende, und nehmen Sie dann den Mittelwert als normal Jeder hat eine spezifische Erfahrung und kann zu diesen statistischen Techniken kommentieren Auch einige Bemerkungen über die physikalische Situation: waren die Messung der durchschnittlichen Zeit bis zur Fertigstellung Eine mechanische Waschmaschine, so dass seine Laufzeit sollte ziemlich konstant sein. Ich bin nicht sicher, ob es tatsächlich eine normale Verteilung hat. Bearbeiten 2. Eine weitere interessante Frage: Wenn der Daemon bootstrapping, wie in, doesnt haben alle früheren Daten zu analysieren, wie sollte es mit eingehenden Daten Einfach nicht tun keine Ausreißer Beschneiden Edit 3. Eine Sache noch. Wenn sich die Hardware so verändert, dass die Laufzeiten unterschiedlich werden, lohnt es sich, den Algorithmus so robust zu machen, dass er diese neuen Laufzeiten nicht verwerfen wird, sollte ich nur daran denken, den Cache zu spülen, wenn das geschieht, fragte am 12. April 09 um 7 Uhr : 24


No comments:

Post a Comment