Ausreißer-Screening für Automobil-PAT (Teildurchschnittsprüfung)Hallo Team,
Ich verwende das Robust Fit-Ausreißer-Quartil. Das Ergebnis ist sowohl für den hohen als auch für den niedrigen Bildschirm ein Mittelwert von +/- 6 K (Sigma).
Jetzt beobachte ich nur den Leckageteil. Ich brauche nur den Ausreißer für Mittelwert + 6 K (Sigma).
Bitte sagen Sie mir, wie ich es von JSL aus umsetzen kann. Danke.
Explore Outliers(
Y(
:icc_aux10_total_vcc_1.000, :icc_aux10_VCCAUX10_vcc_1.000, :icc_aux18_total_vcc_1.000,
:icc_aux18_VCCAUX18_vcc_1.000, :icc_core_total_vcc_1.050, :icc_core_VCC_vcc_1.050,
:icc_core_lp_total_vcc_1.000, :icc_core_lp_VCC_vcc_1.000, :iccio_b_total_vcc_1.000,
:iccio_b_VCCIOB_vcc_1.000, :iccio_ltr_total_vcc_1.000, :iccio_ltr_VCCIOLTR_vcc_1.000
),
Robust Fit Outliers( K Sigma( 6 ), Huber( 0 ), Quartile( 1 ) ),
SendToReport( Dispatch( {}, "Commands", OutlineBox, {Close( 0 )} ) )
);Qualitäts- und VerfahrenstechnikBetreff: Ausreißer-Bildschirm für Kfz-PAT (Teildurchschnittsprüfung)Oben habe ich darauf geachtet, „diesen Ansatz anpassen“ zu sagen
. Ohne im Namen anderer zu sprechen: Wenn ich JSL-Schnipsel veröffentliche, möchte ich (normalerweise) jemanden dazu ermutigen, den Code herauszufinden und dann selbst weiterzumachen.
Wenn Sie Sigma auf 2 ändern, werden Sie feststellen, dass die Tabelle nur blaue Zellen enthält (Ausreißer auf der unteren Seite) und der Code nicht allgemein genug ist, um damit umzugehen, und den von Ihnen angezeigten Fehler generiert.
Bitte finden Sie ein vollständigeres (ungetestetes ...) Skript, das alle Situationen abdecken sollte:
NamesDefaultToHere(1);
// Sample data
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Explore outliers
eo = dt << Explore Outliers(Y( :height ));
eo << Robust Fit Outliers( K Sigma( 2 ), Huber( 0 ), Quartile( 1 ) );
eo << obj << Color Cells( :height ); // Blue (red) cells are 'low' ('high')
// Get the column script
colScript = :height << getScript;
// Initialise lists (which may or may not be updated by the subsequent code)
redRowList = {};
blueRowList = {};
// Find the location of the sub-expression 'Color Cells'. if there are no outliers, 'colorCellsExist' will be 0
subExpr = {};
for(i=1, i<=NArg(colScript), i++, InsertInto(subExpr, Head(Arg(colScript, i))));
colorCellsExist = Contains(subExpr, Expr(Color Cells));
// Find the row numbwrs of any high (red) cells or low (blue) cells (red is '35', blue is '37'):
// Need to handle situations in which there are only high outliers, only low outliers, both high and low
// outliers, or no outliers
if(
colorCellsExist,
// Get the 'Color Cells' expression in the column script
cs = Arg(colScript, colorCellsExist);
if(
// If 'cs' is a list of lists, we have both high and low outliers . . .
IsList(Arg(cs, 1)[1]),
for(i=1, i<=NItems(Arg(cs, 1)), i++,
if(
(Arg(cs, 1)[i])[1] == 35, redRowList = (Arg(cs, 1)[i])[2];
(Arg(cs, 1)[i])[1] == 37, blueRowList = (Arg(cs, 1)[i])[2];
);
);
,
// . . . or if 'cs' is not a list of lists, we have either high or low outliers (but not both)
if(
Arg(cs, 1)[1] == 35, redRowList = Arg(cs, 1)[2],
Arg(cs, 1)[1] == 37, blueRowList = Arg(cs, 1)[2]
);
);
);
Print("High: "||Char(redRowList)||" Low: "||Char(blueRowList));
Betreff: Ausreißer-Bildschirm für Kfz-PAT (Teildurchschnittsprüfung)Hallo Ian,
Entschuldige die späte Antwort. Jetzt habe ich JMP17, um Ihr Skript auszuführen. Kein Fehler, wie du erwähnt hast. Es zeigt jeweils eine rote/blaue Farbe.
Ich versuche, das Sigma von 1 auf 2,3,4,5,6 zu ändern, dann wurde der gleiche Fehler gefunden.
Irgendeine Idee, wie man das beheben kann?
Danke.
Betreff: Ausreißer-Bildschirm für Kfz-PAT (Teildurchschnittsprüfung)Die Verwendung der roten und blauen Farbgebung ist nur ein indirekter Weg, um die Tatsache zu umgehen, dass es (soweit ich weiß) keine direkte Möglichkeit gibt, JMP zu bitten, ein einseitiges Screening durchzuführen (je nach Bedarf auf der oberen oder unteren Seite). .
Bei mir (mit JMP 17.1 auf einem Mac) erzeugt der oben gepostete Code keinen Fehler. Es wird Folgendes gedruckt:
{25, 27, 30, 37, 39, 40}
zum Protokoll, und dies ist eine Liste der Zeilennummern, die Ausreißer auf der oberen Seite enthalten (die roten Zellen in der Tabelle).
Betreff: Ausreißer-Bildschirm für Kfz-PAT (Teildurchschnittsprüfung)Hallo Ian,
Danke für deine Antwort.
1. Robust Fit-Ausreißer gilt für beide Richtungen. Die folgende Formel dient zur roten Markierung für Zeilen außerhalb von +1 Sigma oder -1 Sigma.
Ich möchte die Zeile nur mit +1 Sigma markieren.
eo << Robust Fit Outliers( K Sigma( 1 ), Huber( 0 ), Quartile( 1 ) );
2. Für Ihre Hilfe beim Drucken der Kolliste, das ist wirklich das, was ich suche.
Der Fehler, den ich erhalten habe, war, dass das Objekt beim Zugriff oder bei der Auswertung von „Arg (cs,1) [n]/*###*/1]“, Arg(cs,1)[n]/*###*/ nicht abonnierbar ist. 1]'
Könnten Sie es bitte noch einmal überprüfen? Danke.
Betreff: Ausreißer-Bildschirm für Kfz-PAT (Teildurchschnittsprüfung)Am Ende habe ich Ausdrücke manipuliert. Wenn es keinen besseren Weg gibt, sollten Sie diesen Ansatz anpassen können:
NamesDefaultToHere(1);
// Sample data
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Explore outliers
eo = dt << Explore Outliers(Y( :height ));
eo << Robust Fit Outliers( K Sigma( 1 ), Huber( 0 ), Quartile( 1 ) );
eo << obj << Color Cells( :height ); // Blue (red) cells are 'low' ('high')
// Get the row numbers of the red cells . . .
// (1) Get the column script
colScript = :height << getScript;
// (2) Find the 'Color Cells' expression in the column script
n = 1;
While(Head(Arg(colScript, n)) != Expr(Color Cells), n++);
cs = Arg(colScript, n);
// (3) Find the row numbwrs of the red cells (red is '35')
n = 1;
While((Arg(cs, 1)[n])[1] != 35, n++);
redRowList = (Arg(cs, 1)[n])[2];
Print(redRowList);Betreff: Ausreißer-Bildschirm für Kfz-PAT (Teildurchschnittsprüfung)Hallo,
Folgen Sie meinem letzten Beitrag, ich verwende die Robust-Fit-Ausreißerfunktion – die Standardfunktion besteht darin, hohe/niedrige Ausreißer zu filtern, Mittelwert +/- 6 Sigma.
Bei einigen Elementen müssen wir nur den Ausreißer aus dem Mittelwert + 6 Sigma herausfiltern (z. B. Leckageelement, niedrig ist gut).
Kann mir jemand sagen, wie man den robusten Fit-Ausreißer nur für Mittelwert + 6 Sigma verwendet?
Danke