jsl을 사용하여 Quantile Range Outlier에 대한 열을 선택하는 방법안녕하세요 JMP 팀,
이상값 탐색을 사용하여 자동 이상값 분석을 수행할 계획입니다. 이 자동화의 목표는 이상값이 있는 행 항목과 열 항목만 표시하는 깔끔하고 보기 쉬운 테이블을 만드는 것입니다(이상값이 아닌 열과 행을 필터링해야 함). 이상치 없이 행 항목을 제거하려면 아래 예와 같이 물 처리를 사용하십시오.
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;
jsl 코드를 사용하여 이상값이 아닌 열을 필터링하는 방법에 대해 질문이 있으십니까?

문안 인사,
XH 낮음
해석학데이터 테이블스크립팅윈도우Re: jsl을 사용하여 Quantile Range Outlier에 대한 열을 선택하는 방법이상값이 없는 열을 삭제하는 몇 줄의 코드를 스크립트 하단에 추가했습니다.

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: jsl을 사용하여 Quantile Range Outlier에 대한 열을 선택하는 방법안녕 짐,
코드 주셔서 감사합니다.
위의 코드를 시도했지만 JMP15는 For Each()를 지원하지 않았습니다. For Each에서 For 루프로 몇 가지를 변경합니다.
그러나 여전히 비이상치 열을 삭제할 수 없습니다.
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 )
)
);
아래의 데이터 테이블에 이상값이 아닌 열이 여전히 존재합니다.

내가 뭔가를 놓치고 있습니까?
Re: jsl을 사용하여 Quantile Range Outlier에 대한 열을 선택하는 방법기본적으로 JMP 15의 이상값 탐색 플랫폼 출력에는 이상값이 있는 열만 표시됩니다.내가 제공한 스크립트는 분석을 위해 지정된 모든 열이 표시된다고 가정했습니다."allEvaluatedList"가 제대로 채워지도록 모든 열을 강제로 표시하도록 코드를 수정했습니다.JMP 15에서 코드를 테스트했는데 이제 작동합니다.
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: jsl을 사용하여 Quantile Range Outlier에 대한 열을 선택하는 방법엄청난!! 이제 작동합니다.
고마워 짐.
