탐색 이상값 자세히 알아보기나는 방금 Explore Outliers 플랫폼을 우연히 발견했고 최소한의 말을 하기에는 매우 아찔합니다. 내 질문은 Robust Fit Outliers 아래의 Exclude Rows에 있습니다. 실제로 스크립트가 이 플랫폼 내에서 어떻게 작동하는지, 특히 제외할 행을 결정하는 방법을 확인하려고 합니다. 적절한 선별 제한으로 테이블을 분할한 후 최대 200개 이상의 열이 있습니다.
스크립트 창에 스크립트 저장을 할 수 있지만 실제로는 행 함수가 아닌 매크로 형식으로 스크립트를 작성하는 방법을 보여주는 것 같습니다.
감사해요
Re: 탐색 이상치에 대해 알아보기퍼팅 시도:
Batch Interactive( 1 );
코드 시작 부분에.
Re: 탐색 이상치에 대해 알아보기@ian_jmp
내가 받고있는이 오류 메시지를 도와주세요 .. 이 스크립트를 수동으로 실행하면 정상적으로 작동하고 오류가 발생하지 않습니다(로그 스크린샷 참조). 값이 누락으로 대체되었음을 나타내는 로그의 모든 행. 거기에 Wait()를 넣으려고 했지만 도움이 되지 않았습니다.
감사 데이비드
오류 

Re: 탐색 이상치에 대해 알아보기이 정도면 감사하지 않을 수 없습니다... 믿을 수 없어! 이상값 문제는 내가 이 모든 데이터의 플로팅을 담당했기 때문에 (웨이퍼 맵 생성과 함께) 내 존재의 핵심이었습니다. txnelson 씨는 비교를 위한 사양 제한이 있을 때 좋은 범위 확인 방법에 대해 알려 주었지만 확인을 사용할 수 없는 원시 데이터를 플로팅하는 것은 나에게 어려웠습니다.
Re: 탐색 이상치에 대해 알아보기이전에 'Explore Outliers' 스크립트를 시도한 적이 없으므로 더 나은 방법이 있을 수 있습니다. 아래 코드는 내가 시도할 수 있는 유일한 경우에 작동했기 때문에 시작할 수 있습니다.
NamesDefaultToHere(1);
// Example data
dt1 = Open( "$SAMPLE_DATA/Probe.jmp" );
// Copy the data to a new table
dt2 = Eval(dt1 << getScript);
dt2 << setName((dt1 << getName||" Screened"));
// List of columns to screen
colsToScreen = {:VDP_M1, :VDP_M2, :VDP_NBASE};
// Screen for outliers using your favourite method
eo = dt2 << Explore Outliers(Y(Eval(colsToScreen)), Quantile Range Outliers( 1 ), Show Only Columns With Outliers(1), Invisible);
// Using the report, find the columns that have outliers
eoRep = Report(eo);
table = eoRep[TableBox(1)];
colList = eoRep[StringColBox(1)];
// Loop over these columns . . .
nCols = NItems(colList << get);
for(c=1, c<=nCols, c++,
// Select this column (described by a row)
CMD = Expr( table << setSelectedRows({colTBD}) );
SubstituteInto(CMD, Expr(colTBD), Eval(c));
CMD;
// Update dt2 for this column: Cells that were considered outliers are coloured red
eo << ColorCells(1);
eo << ChangeToMissing(1);
);
eoRep << closeWindow;
셀을 누락으로 설정하는 대신 누락 값 코드 사용을 고려할 수 있습니다.
Re: 탐색 이상치에 대해 알아보기답장을 보내 주셔서 감사합니다. 귀하가 언급한 링크를 찾았고 모든 정보를 검토하여 내 데이터에 가장 적합한 방법을 결정하기 위해 노력하고 있습니다.
첫 번째 게시물에서 더 구체적이지 않은 점에 대해 사과드립니다. 제가 하고 싶은 것은 이상치 탐색 플랫폼을 제가 만들고 있는 다양한 플로팅 기능으로 자동화하는 것입니다. 예를 들어 내 데이터 테이블을 로드하고 열을 분할한 다음 이상값으로 간주되는 행을 선택한 다음 제외할 수 있는 이상값 탐색을 수행합니다. 행이 제외되고 오류가 표시되는 것을 확인했습니다. 다음 열로 이동하려면 어떻게든 무시할 수 있어야 합니다. 데이터 테이블을 첨부하고 스크립트 실행을 논리적으로 보는 방법에 대한 JSL을 포함했습니다. 그것은 아직 작동하지 않으며 그것이 여기에 있는 이유입니다.일부 테스트에는 300개 이상의 Split By( :SPEC_COL_NAMES )가 있습니다.
미리 감사드립니다.
----- 루프 시작
----- cols[1]에서 탐색 이상치 실행
----- 행 제외
----- 플롯 분포
----- 행 상태 지우기
----- cols[2]에서 탐색 이상치 실행
----- 행 제외
----- 플롯 분포
----- 행 상태 지우기
----- cols[i] 이후 루프 종료
dt = Current Data Table();
// Split Data Table by SPEC_COL_NAMES :
// This is used for a variety of things, specifically Spec Limits and Range Checks
dtsplitmeas = dt << Split(
Invisible,
Split By( :SPEC_COL_NAMES ),
Split( :Output_1 ),
Group( :wafer_number, :rownum, :colnum, :subrow, :subcol, :RowCol ),
Remaining Columns( Drop All )
);
cols = dtsplitmeas << Get Column Names( Numeric );
dtsum = dt << Summary(
Invisible,
Group( :wafer_number )
);
jjrn1 = New Window( "Distribution - Output_1 ", << Journal );
// I am taking a shot at the syntax and the way I think it should be coded.
// By all means, correct me if i am wrong and make any modifications you see fit
// I don't actually know how to address the different wafers #'s and the
// SPEC_COL_NAMES at the same time. This is why i figured 2 For() loops.
For( i = 1, i <= N Items( cols ), i++,
For( j = 1, j <= N Items( dtsum ), j++,
test = cols[i];
wfr = dtsum:wafer_number[j];
eo = Explore Outliers(
SendToByGroup( Bygroup Default ),
Y( As Column( test ) ),
Robust Fit Outliers,
Where( :wafer_number == wfr )
);
//------------------------------------------------------------ -/
// < Insert Script to Exclude Rows for col[1] in dtsplitmeas> /
// This is what my original question was /
// referring to /
//----------------------------------------------------------/
// Step into Control Chart, Control Chart Builder, Distributions, Fit Y by X plots
// Control Chart Builder is just an example
gb = Control Chart Builder(
Size( 847, 990 ),
Show Control Panel( 0 ),
Variables( Y( As Column( test ) ) ),
Chart( Position( 1 ), Limits( Sigma( "Levey Jennings" ) ) ),
Chart( Position( 2 ), Limits( Sigma( "Moving Range" ) ) )
);
// Create Control Chart for all SPEC_COL_NAMES place it into a report / journal
(gb << top Report)[Text Edit Box( 1 )] << delete; //delete the where statement
Report( gb )[Outline Box( 1 )] << Set Title( cols[i] );
jjrn2 << Append( Report( gb ) );
gb << Close Window;
// Clear Row States because when you exclude a row for a given column, it extends
// to all other colums on that row
dtsplitmeas << Clear Row States();
// Rise and Repeat for all SPEC_COL_NAMES
);
);
Re: 탐색 이상치에 대해 알아보기에 관하여 ' 특히 제외할 행을 결정하는 방법 ', 살펴보셨나요? 필요한 도움 페이지?
Re: Explore Outliers에 대한 탐구저는 JMP를 처음 사용합니다.
아래 코드의 3개 열은 숫자형인 듯합니다! 각 열에 대한 이상치 화면.
colsToScreen = {:VDP_M1, :VDP_M2, :VDP_NBASE};스크립트는 4개 열이 있는 내 데이터에서는 작동하지 않습니다.
colsToScreen = {:테스트 이름, :온도, :VDD, :측정}
어디:
테스트 이름: test1, test2, test3,....ect.
온도: -40c, 25c, 85c, 125c
전압: 1.8V, 2.0V, 2.5V, 3.0V
Testname+Temperature+VDD의 각 조합에 대해 Measurements 열에 대해 OUTLIERS를 실행하고 싶습니다.
P.S. 여기서 "그룹"을 사용하는 방법에 대한 게시물을 많이 읽었지만 성공한 적이 없습니다.
도움을 주시면 감사하겠습니다.
감사합니다.
Re: Explore Outliers에 대한 탐구왜 스크립트를 쓰시나요? 그냥 가셔도 됩니다.
분석 => 스크리닝 => 이상치 탐색
그리고 대화형으로 실행하세요. 스크립팅이 필요 없습니다.
Re: Explore Outliers에 대한 탐구스크립트는 알고리즘을 제공하지 않습니다. 스크립트는 Explore Outliers 플랫폼을 호출할 뿐입니다. 도움말 시스템으로 이동하여 Explore Outliers 플랫폼에 대한 통계적 세부 정보를 찾아야 합니다.