Cómo seleccionar la columna para Quantile Range Outlier usando jslHola equipo JMP,
Planeo hacer un análisis de valores atípicos automatizado usando Explorar valores atípicos. El objetivo de esta automatización es obtener una tabla ordenada y fácil de ver para mostrar solo el elemento de la fila y el elemento de la columna con valores atípicos (esto requiere filtrar las columnas y filas que no son atípicos). Tome el tratamiento de agua como ejemplo a continuación para eliminar el elemento de la fila sin valores atípicos.
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;
¿Pregunta cómo filtrar la columna no atípica usando el código jsl?

Saludos,
XH bajo
AnalíticaTabla de datossecuencias de comandosventanasRe: Cómo seleccionar una columna para un valor atípico de rango de cuantiles usando jslHe agregado algunas líneas de código en la parte inferior de su secuencia de comandos, que elimina las columnas que no tienen valores atípicos.

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 )
)
);
Re: Cómo seleccionar una columna para un valor atípico de rango de cuantiles usando jslHola Jim,
Gracias por el código.
Probé el código anterior, mi JMP15 no era compatible con For Each(). Hago algunos cambios en For Each to For loop.
Pero aún no puedo eliminar la columna no atípica.
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 )
)
);
La columna no atípica aún está presente en la tabla de datos a continuación.

¿Me estoy perdiendo de algo?
Re: Cómo seleccionar una columna para un valor atípico de rango de cuantiles usando jslEl resultado de Explore Outliers Platform en JMP 15, de forma predeterminada, solo muestra las columnas que tienen valores atípicos.El script que proporcioné asumió que se mostraban todas las columnas que se especificaron para el análisis.He modificado el código para forzar la visualización de todas las columnas para que "allEvaluatedList" se complete correctamente.Probé el código en JMP 15 y ahora funciona.
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 )
)
);
Re: Cómo seleccionar una columna para un valor atípico de rango de cuantiles usando jsl¡¡Excelente!! Ahora funciona.
gracias jim
