Drift- oder Kriecherkennung von ProzessvariablenHallo,
Gibt es in JMP Methoden zur Erkennung der Drift/des Kriechens/des Gefälles für eine große Menge von Prozessvariablen über einen festgelegten Zeitraum? Der Benutzer würde dann den Schwellenwert festlegen, bei dem er den Gradienten als zu hoch oder zu niedrig ansieht und markiert werden muss.
Derzeit ist mir bekannt, dass das Prozess-Screening-Tool über eine Option zur Driftzusammenfassung verfügt, die aktiviert werden kann und die das mittlere Hochschalten, Herunterschalten und absolute Schalten anzeigt. In diesem Fall suche ich nach der Gesamtdrift (ob positiv oder negativ), die absolute Verschiebung (soweit ich sehe) wird jedoch als [Abs(Hochschalten) + Abs(Herunterschalten)] berechnet. Das sagt mir nicht, ob es insgesamt nach oben oder unten gedriftet ist. Technisch gesehen suche ich nach Abs(Upshift + Downshift [negativer Wert]).
Meine aktuelle Problemumgehung besteht darin, einen Bildschirm zu schreiben, der das Prozess-Screening-Ergebnis in eine Datentabelle umwandelt, und die Berechnung erneut durchzuführen. Dies bedeutet jedoch, dass die berechneten Werte von der Processing Screening-Plattform getrennt sind, die über eine Reihe nützlicher Funktionen wie Quick Graph/Quick Control Charts usw. verfügt. Außerdem funktioniert es nicht gut mit dem Local Data Filter.
Ich würde mich wirklich freuen, wenn noch jemand eine Idee hätte, wie ich das angehen kann. Danke!Erweiterte statistische ModellierungBetreff: Drift- oder Kriecherkennung der ProzessvariablenWas das Problem mit der Sortierreihenfolge der angehängten Spalte betrifft, kann ich bestätigen, dass dieses Problem in der nächsten Hauptversion von JMP behoben wird, die im Herbst 2022 verfügbar sein wird. Die akzeptierte Lösung ist vorerst ein guter Workaround.
Betreff: Drift- oder Kriecherkennung der ProzessvariablenIch habe gerade beim JMP-Support bestätigt, dass sie das Grundproblem noch nicht gelöst haben, aber soweit ich weiß, löst die Umgehungslösung in der akzeptierten Lösung das Problem.
Betreff: Drift- oder Kriecherkennung der ProzessvariablenHallo,
Als ich diesen Beitrag durchgesehen habe, habe ich mich gefragt, ob eine Lösung gefunden wurde, um die Reihenfolge der angehängten Spalte (Combined Drift) zu beheben.
Danke schön.
Betreff: Drift- oder Kriecherkennung der ProzessvariablenIch arbeite immer noch mit dem JMP-Support zusammen, um herauszufinden, warum die Tabellensortierung auf aus der Tabelle gelesene Werte angewendet wird, nicht jedoch auf die in die Tabelle geschriebenen Werte.Hier ist zunächst eine grobe Lösung:
names default to here(1);
dt = Open("$Sample_Data/iris.jmp");
//Open Process Screening with drift summaries
ps = dt << Process Screening(
Y( :Sepal length, :Sepal width, :Petal length, :Petal width ),
Control Chart Type( "Indiv and MR" ),
Drift Summaries( 1 )
);
//Add a dummy column and use set values to reset the table order
ncb = (ps << XPath( "//TableBox" )) << Append( newCol = NumberColBox("Delete Me", {}));
newCol << Set Values({});
newCol << Delete Box;
//calculate the combined drift
UpDrift = (ps << XPath( "//NumberColBox[NumberColBoxHeader[text()='Mean Up Drift']]" ))[1] << Get;
DownDrift = (ps << XPath( "//NumberColBox[NumberColBoxHeader[text()='Mean Down Drift']]" ))[1] << Get;
CombinedDrift = Abs( Matrix(UpDrift) + Matrix(DownDrift) );
ncb = (ps << XPath( "//TableBox" )) << Append( newCol = NumberColBox("Combined Drift", CombinedDrift));Betreff: Drift- oder Kriecherkennung der ProzessvariablenSie haben Recht und ich entschuldige mich dafür, dass ich die falsche Reihenfolge nicht früher bemerkt habe.Ich habe diese Methode mehrmals verwendet und bin noch nicht auf dieses Problem gestoßen (ich habe gerade noch einmal ein paar meiner eigenen Skripte überprüft).Aus irgendeinem Grund scheint beim Herausziehen von Daten aus der Tabelle die sortierte Reihenfolge der Tabelle verwendet zu werden, beim Schreiben von Daten werden die Zeilen jedoch in einer anderen Reihenfolge zurückgegeben.Ich werde daran arbeiten, das Problem zu lösen.
Betreff: Drift- oder Kriecherkennung der ProzessvariablenHi,
Was die Diskrepanz betrifft, nehmen wir Ihren Screenshot als Beispiel. Wenn Sie sich die Werte in der Spalte „Kombinierte Drift“ ansehen, werden Sie feststellen, dass die Werte nicht übereinstimmen, als wir den mittleren Auftrieb und den mittleren Abdrift addierten. Ich denke, die Berechnung zwischen den beiden Matrizen ist korrekt, aber wenn die Werte wieder angehängt werden, kann es zu einer Abweichung von der Reihenfolge der Spaltenparameter in der ursprünglichen Prozess-Screening-Tabelle kommen.
Ich hoffe, dass dies Klarheit schafft.Betreff: Drift- oder Kriecherkennung der ProzessvariablenIch bin mir nicht sicher, was Sie damit meinen, dass die berechneten Werte nicht übereinstimmen.Können Sie ein Beispiel für die Diskrepanz nennen?
Ich stimme Ihrer Problemumgehung in Ihrem zweiten Absatz zu. Eine Neuberechnung nach einer Aktualisierung aus einem Datenfilter könnte der einfachste Weg nach vorne sein.
Betreff: Drift- oder Kriecherkennung der ProzessvariablenHallo!
Vielen Dank, dass Sie sich diesbezüglich bei mir gemeldet haben. Ich denke, das ist fast eine vollständige Lösung, aber es scheint, dass die berechneten Werte, die wir an die ursprüngliche Prozess-Screening-Tabelle anhängen, nicht wirklich mit den entsprechenden Parametern/Spalten übereinstimmen. Ich frage mich, ob es eine Möglichkeit gibt, den Spaltennamen an die in diesem Skript generierte Matrix anzuhängen, damit er beim Anhängen der Werte abgeglichen werden kann.
Außerdem frage ich mich, ob es uns möglich ist, die Kolumne dauerhaft zu machen. Wenn wir einen lokalen Datenfilter anwenden und dieser eine Neuberechnung durchführt, verschwindet die Spalte. Eine schnelle Problemumgehung besteht jedoch wahrscheinlich darin, einfach den Datenfilter für die Datentabelle auszuführen und dieses Skript erneut auszuführen.Betreff: Drift- oder Kriecherkennung der ProzessvariablenSie könnten der Tabelle „Prozessüberprüfung“ eine Spalte hinzufügen:
names default to here(1);
dt = Open("$Sample_Data/iris.jmp");
//Open Process Screening with drift summaries
ps = dt << Process Screening(
Y( :Sepal length, :Sepal width, :Petal length, :Petal width ),
Control Chart Type( "Indiv and MR" ),
Drift Summaries( 1 )
);
//calculate the combined drift
UpDrift = (ps << XPath( "//NumberColBox[NumberColBoxHeader[text()='Mean Up Drift']]" ))[1] << Get;
DownDrift = (ps << XPath( "//NumberColBox[NumberColBoxHeader[text()='Mean Down Drift']]" ))[1] << Get;
CombinedDrift = Abs( Matrix(UpDrift) + Matrix(DownDrift) );
//Add column to table with Combined Drift
ncb = (ps << XPath( "//TableBox" )) << Append( NumberColBox("Combined Drift", CombinedDrift) );Auf der rechten Seite sollte eine neue Spalte „Combined Drift“ angezeigt werden:
