Ich habe viele Zeitreihendaten - Wasserstände und Geschwindigkeiten gegen die Zeit. Es ist die Ausgabe einer hydraulischen Modellsimulation. Als Teil des Überprüfungsprozesses, um zu bestätigen, dass das Modell die erwartete Leistung erbringt, muss ich jede Zeitreihe zeichnen, um sicherzustellen, dass die Daten keine "Wackelbewegungen" enthalten (siehe Beispiel für geringfügiges Wackeln unten). Die Verwendung der Benutzeroberfläche der Modellierungssoftware ist eine ziemlich langsame und mühsame Methode, um diese Daten zu überprüfen. Ich habe daher ein kurzes VBA-Makro geschrieben, um verschiedene Datenbits aus dem Modell einschließlich der Ergebnisse in Excel zu importieren und alle gleichzeitig zu zeichnen. Ich hoffe, ein weiteres kurzes VBA-Makro schreiben zu können, um die Zeitreihendaten zu analysieren und verdächtige Abschnitte hervorzuheben.
Mein einziger Gedanke ist bisher, dass ich eine Analyse der Steigung der Daten durchführen könnte. Überall dort, wo sich die Steigung innerhalb eines bestimmten Suchfensters schnell schnell von positiv zu negativ ändert, kann sie als instabil eingestuft werden. Vermisse ich einfachere Tricks? Im Wesentlichen sollte eine "stabile" Simulation eine sehr glatte Kurve liefern. Jegliche plötzlichen Änderungen sind wahrscheinlich auf eine Instabilität der Berechnungen zurückzuführen.
quelle
Antworten:
Die Details des Glatten spielen keine Rolle. In diesem Beispiel wurde eine Lössglättung (implementiert
R
wieloess
beispan=0.05
der Lokalisierung) verwendet, aber selbst ein Mittelwert mit Fenster hätte gut funktioniert. Um die absoluten Residuen zu glätten, habe ich einen Fenstermittelwert der Breite 17 (ca. 24 Minuten) gefolgt von einem Fenstermedian ausgeführt. Diese Fensterglättungen sind relativ einfach in Excel zu implementieren. Eine effiziente VBA-Implementierung (für ältere Versionen von Excel, aber der Quellcode sollte auch in neuen Versionen funktionieren) ist unter http://www.quantdec.com/Excel/smoothing.htm verfügbar .R
Codequelle