So wählen Sie mit jsl eine Spalte für den Quantilbereichsausreißer ausHallo JMP-Team,
Ich plane eine automatisierte Ausreißeranalyse mit Explore Outliers. Das Ziel dieser Automatisierung besteht darin, eine übersichtliche, einfach anzuzeigende Tabelle zu erhalten, in der nur Zeilenelemente und Spaltenelemente mit Ausreißern angezeigt werden (dafür müssen die Spalten und Zeilen ohne Ausreißer herausgefiltert werden). Nehmen Sie als Beispiel unten die Wasseraufbereitung, um Zeilenelemente ohne Ausreißer zu entfernen.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Water Treatment.jmp" );
obj = dt << Explore Outliers(
Y( dt << Get Column Group( "Sensor Measurements" ) )
);
obj << Show only columns with outliers(1);
obj << Tail Quantile( 0.1 );
obj << Q(3);
obj << Quantile Range Outliers;
obj << ColorCells(dt << Get Column Group( "Sensor Measurements" ));
obj << SelectRows(dt << Get Column Group( "Sensor Measurements" ));
obj << ExcludeRows(dt << Get Column Group( "Sensor Measurements" ));
dt << select where( Excluded(Row State()) != 1 );
dt << Delete rows;
Frage, wie man Nicht-Ausreißer-Spalten mithilfe von JSL-Code herausfiltert?

Grüße,
XH Niedrig
Automatisierung und SkripterstellungWindowsBetreff: So wählen Sie eine Spalte für Quantilbereichsausreißer mithilfe von JSL ausGroßartig!! Es funktioniert jetzt.
Danke, Jim.

Betreff: So wählen Sie eine Spalte für Quantilbereichsausreißer mithilfe von JSL ausDie Ausgabe der Explore Outliers Platform in JMP 15 zeigt standardmäßig nur die Spalten an, die Ausreißer aufweisen.Das von mir bereitgestellte Skript ging davon aus, dass alle für die Analyse angegebenen Spalten angezeigt wurden.Ich habe den Code geändert, um die Anzeige aller Spalten zu erzwingen, damit die „allEvaluatedList“ ordnungsgemäß gefüllt wird.Ich habe den Code in JMP 15 getestet und er funktioniert jetzt.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Water Treatment.jmp" );
obj = dt << Explore Outliers( Y( dt << Get Column Group( "Sensor Measurements" ) ) );
obj << Show only columns with outliers( 1 );
obj << Tail Quantile( 0.1 );
obj << Q( 3 );
obj << Quantile Range Outliers;
obj << ColorCells( dt << Get Column Group( "Sensor Measurements" ) );
obj << SelectRows( dt << Get Column Group( "Sensor Measurements" ) );
obj << ExcludeRows( dt << Get Column Group( "Sensor Measurements" ) );
dt << select where( Excluded( Row State() ) != 1 );
dt << Delete rows;
obj << Show only columns with outliers( 0 );
allEvaluatedList = Report( obj )["Quantile Range Outliers", String Col Box( "Column" )] << get;
obj << Show only columns with outliers( 1 );
colList = Report( obj )["Quantile Range Outliers", String Col Box( "Column" )] << get;
For( i=1, i <= N Items(allEvaluatedList), i++, col=allEvaluatedList[i];
If( Contains( colList, col ) == 0 ,
dt << delete columns( col )
)
);
Betreff: So wählen Sie eine Spalte für Quantilbereichsausreißer mithilfe von JSL ausHallo Jim,
Danke für den Code.
Ich habe den obigen Code ausprobiert, mein JMP15 unterstützte For Each() nicht. Ich nehme einige Änderungen an der For Each-zu-For-Schleife vor.
Die Nicht-Ausreißer-Spalte kann jedoch immer noch nicht gelöscht werden.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Water Treatment.jmp" );
obj = dt << Explore Outliers( Y( dt << Get Column Group( "Sensor Measurements" ) ) );
obj << Show only columns with outliers( 1 );
obj << Tail Quantile( 0.1 );
obj << Q( 3 );
obj << Quantile Range Outliers;
obj << ColorCells( dt << Get Column Group( "Sensor Measurements" ) );
obj << SelectRows( dt << Get Column Group( "Sensor Measurements" ) );
obj << ExcludeRows( dt << Get Column Group( "Sensor Measurements" ) );
dt << select where( Excluded( Row State() ) != 1 );
dt << Delete rows;
allEvaluatedList = Report( obj )["Quantile Range Outliers", String Col Box( "Column" )] << get;
obj << Show only columns with outliers( 1 );
colList = Report( obj )["Quantile Range Outliers", String Col Box( "Column" )] << get;
For( i=1, i <= N Items(allEvaluatedList), i++, col=allEvaluatedList[i];
If( Contains( colList, col ) == 0 ,
dt << delete columns( col )
)
);
Die Nicht-Ausreißer-Spalte ist in der Datentabelle unten immer noch vorhanden.

Vermisse ich etwas?
Betreff: So wählen Sie eine Spalte für Quantilbereichsausreißer mithilfe von JSL ausIch habe am Ende Ihres Skripts ein paar Codezeilen hinzugefügt, die die Spalten löschen, die keine Ausreißer enthalten.

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Water Treatment.jmp" );
obj = dt << Explore Outliers( Y( dt << Get Column Group( "Sensor Measurements" ) ) );
obj << Show only columns with outliers( 1 );
obj << Tail Quantile( 0.1 );
obj << Q( 3 );
obj << Quantile Range Outliers;
obj << ColorCells( dt << Get Column Group( "Sensor Measurements" ) );
obj << SelectRows( dt << Get Column Group( "Sensor Measurements" ) );
obj << ExcludeRows( dt << Get Column Group( "Sensor Measurements" ) );
dt << select where( Excluded( Row State() ) != 1 );
dt << Delete rows;
allEvaluatedList = Report( obj )["Quantile Range Outliers", String Col Box( "Column" )] << get;
obj << Show only columns with outliers( 1 );
colList = Report( obj )["Quantile Range Outliers", String Col Box( "Column" )] << get;
For Each( {col, i}, allEvaluatedList,
If( Contains( colList, col ) == 0,
dt << delete columns( col )
)
);