Wissenschaftler und Ingenieure verwenden Online-Sensoren und Messgeräte, um eine nahezu unendliche Anzahl von Prozessattributen zu überwachen. Bei der Analyse von Zeitreihendaten, die von Historikern und Datenloggern erfasst wurden, tauchen regelmäßig zwei Fragen auf: „Wie kann ich einen gleitenden Durchschnitt berechnen?“ und eine verwandte Frage: "Wie markiere ich Zeilen, nachdem eine Lücke in meinen Zeitreihendaten aufgetreten ist?"
JMP kann beides leicht tun, aber die Antwort erfordert ein wenig Wissen über eine weniger häufig verwendete Spaltenformelfunktion.
Es ist oft zweckmäßig, einen gleitenden Durchschnitt für zeitabgetastete Daten zu berechnen. Dies dämpft sowohl das Rauschen im Datenstrom als auch einen durchschnittlichen Messwert zu einem bestimmten Zeitpunkt. In der Datentabelle in Abbildung 4 habe ich beispielsweise ein Online-pH-Messgerät, das einmal pro Sekunde eine Messung aufzeichnet, aber mein Trübungsmessgerät kann nur alle 10 Sekunden eine Messung aufzeichnen. Ich könnte nur den 10-Sekunden-Trübungswert mit der entsprechenden pH-Messung abgleichen, aber der Trübungswert repräsentiert tatsächlich die vorherigen 10 Sekunden dessen, was das Instrument gesehen hat, und ich möchte ihn mit einer ähnlichen 10-Sekunden-Zeitauflösung des pH-Werts vergleichen. Dazu muss ich den gleitenden Durchschnitt der letzten 10 Sekunden der pH-Messungen berechnen. Die Auflösung von 1 Sekunde und der gleitende Durchschnitt von 10 Sekunden werden im Diagramm des Graph Builder unter der Tabelle in Abbildung 5 verglichen.
Die zweite Frage stellt sich, wenn wir gleitende Durchschnitte verwenden. Eine Annahme, die wir bei einem gleitenden Durchschnitt haben, ist, dass jede Messung gleich beabstandet ist. Dadurch wird der gleitende Durchschnitt über alle Intervalle gleichmäßig gewichtet. In regelmäßigen Abständen (im wirklichen Leben) gibt es jedoch kurze Lücken im Datenstrom, und Lücken, die länger als eine sinnvolle Zeitspanne sind, müssen identifiziert werden, um uns darauf aufmerksam zu machen, dass die Annahme zusammengebrochen ist. Diese Lücken werden durch eine Vielzahl von Problemen verursacht, wie Kurzschlüsse, zeitweise Unterbrechungen oder einfach fehlende Daten von Geräten mit Netzwerkverbindung.
Ein gleitender Durchschnitt kann in einem Schritt mithilfe der Summationsfunktion im Spaltenformel-Editor berechnet werden.
Als Text lautet die Formel in Abbildung 1 Summation (i = 0, 9, Lag (: pH, i)) / 10
Die Summationsfunktion (Abbildung 1) funktioniert wie eine iterative Schleife. In diesem Fall berechnet "i" zwischen 0 und 9 und berechnet die Summe der Werte, die es aus dem Argument rechts erhält. Das Argument rechts wird als Lag (: pH, 0), Lag (: pH, 1), Lag (: pH, 2), Lag (: pH, 3)… Lag (: pH, 9) bewertet. In diesem Fall ist Lag (: pH, 0) der Wert in der aktuellen Zeile der pH-Spalte und Lag (: pH, 9) der Wert 9 Zeilen über der aktuellen Zeile (für insgesamt 10 Zeilen).
Das zweite Problem ist etwas knifflig und lässt sich leichter in zwei Schritte aufteilen. In Schritt eins erstellen wir eine Formelspalte, um die großen Zeitlücken zu kennzeichnen, und in Schritt zwei fügen wir eine zweite Formel hinzu, die einen Zeilenbereich nach der Zeitlücke kennzeichnet.
Der erste Schritt besteht darin, eine neue Spalte mit dem Namen "Zeitlücke" zu erstellen und dann eine Formel hinzuzufügen, um Lücken zu kennzeichnen, wenn sie länger als 5 Sekunden sind.
: Zeitstempel - Verzögerung (: Zeitstempel, 1)> 5
Oder wenn Sie es ein wenig steigern möchten, können Sie die Datumsdifferenzfunktion wie folgt verwenden:
Datumsdifferenz (Verzögerung (: Zeitstempel, 1) ,: Zeitstempel, "Sekunde")> 5
In diesem speziellen Fall wollte ich wissen, wann Zeitlücken von 5 Sekunden oder länger auftraten. In anderen Projekten musste ich wirklich nur wissen, wann längere Lücken auftraten.
Die Funktion Datumsdifferenz berechnet die Differenz zwischen zwei Datumswerten und gibt das Ergebnis in Einheiten zurück, die angegeben werden können (z. B. Stunde, Minute, Tag, Woche, Jahr). In beiden Fällen wird die Formel mit „1“ für wahr und „0“ für falsch bewertet, wenn die Differenz größer als 30 ist.
Im zweiten Schritt erstellen wir einen weiteren neuen Spaltennamen "Gap Flag" und fügen eine Formel hinzu, um 10 Zeilen nach der in der Zeitlückenspalte erkannten Lücke zu markieren.
Als Text lautet die Formel in Abbildung 2 Summation (i = 0, 9, Lag (: Time Gap, i))> 0
Auch hier funktioniert die Summationsfunktion (Abbildung 2) wie eine iterative Schleife. Dieses Mal wird es mit einem bedingten Argument kombiniert. Während "i" zwischen 0 und 9 liegt, wird die Formel als "1" für wahr oder "0" für falsch ausgewertet, wenn die Summe der Werte in der Spalte "Zeitlücke" größer als 0 ist. Wenn die Lückenzeitspalte für die vorherigen 30 Zeilen mindestens eine „1“ enthält, ist der Wert in dieser Flag-Spalte ebenfalls 1.
Mit nur ein paar kleinen Änderungen können wir mit dieser Formel auch die Farbe des Zeilenherstellers festlegen. Um diese Formel zu verwenden, erstellen Sie eine neue Spalte und setzen Sie den Datentyp auf "Zeilenstatus".
Wenn (Summe (i = 0, 9, Verzögerung (: Zeitlücke, i))> 0,
Zeilenstatus () = Farbstatus ("rot"),
Zeilenstatus () = Farbstatus ("blau")
);
Die Summationsfunktion ist ein wichtiges Werkzeug in Ihrer JMP-Toolbox und kann viel Zeit und Mühe sparen. Weitere Informationen zur Syntax und Verwendung der Summierungsfunktion finden Sie unter Verwenden von JMP, in den Skripthandbüchern und im Skriptindex. Alle Informationen finden Sie im Menü Hilfe in JMP.