이상치 필터링 이후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?먼저 데이터의 이상값을 필터링한 다음 Ppk를 얻기 위해 다음 JSL을 구성했지만 모든 행을 제외하여 이상값을 필터링할 때 다른 프로세스의 이상값이 아닌 데이터 포인트를 제외하므로 내 스크립트가 올바르지 않다는 점을 확인했습니다. 매개변수.
이상치를 정의할 때 제가 선호하는 기준은 Q1/Q3 이외의 모든 것입니다 . +/- 1.5xIQR은 이상치이며, 이것이 제가 아래에서 사용하는 것입니다.
Names Default To Here (1);
Clear Log ();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group("Processes"); // Column Group should pre-exist.
obj = Explore Outliers(Y(Eval( col_names ) )); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q (1.5) ); // select Q3/Q1 +/- 1.5 x IQR
obj << Exclude Rows(ALL); // exclude OL rows
// Run capability analysis
platform = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
Overall Sigma Summary Report( 1 ),
//Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Select Out of Spec Values( 1 ),
Goal Plot(0 ),
Capability Index Plot( 1 ),
Process Performance Plot( 0 ),
Order By( "Within Sigma Ppk Ascending" )
);
Wait( 0 );
Report( platform )[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Into Data Table;
dt_curr = Current Data Table();
dt_curr << Set Name( "Capability Report" );매개변수별로 이상치 셀에 색상을 지정할 수 있지만 공정 능력 분석에서 이를 제외하는 방법을 모르겠습니다. 여기에는 도움이 필요합니다.
둘째, 로트의 각 웨이퍼에 대해 이상값 필터링 후 각 공정 매개변수에 대한 Cpk를 계산하여 각 공정 매개변수에 대한 웨이퍼별 Cpk 추세 플롯을 얻고 싶습니다. JSL을 통해 이를 수행하는 방법(내 스크립트에 있는 예제 데이터 세트 사용)?
자동화 및 스크립팅윈도우Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?내 질문의 첫 번째 (Ppk) 부분에 대해
obj << Exclude Rows(ALL);
~에 의해
obj << Change to Missing(ALL);
일을 해?
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?넓은 형식의 테이블이 있으므로 행을 제외하려면 테이블을 누락으로 변경하거나(누락된 값 코드 사용 또는 데이터 수정) 데이터를 쌓아야 합니다.
<< 누락으로 변경이 원하는 내용인지 시도해 보셨나요?

Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jth 우리가 건넜던 것 같아요. 누락으로 변경하면 일부 매개변수에 대해 음수 Ppk가 제공됩니다. 이것이 예상된 것입니까?

Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?수동으로(및 JMP를 사용하여) Ppk를 계산할 수 있는 이상값이 포함된 단일 열을 만듭니다. 이상값을 누락으로 변경하고 계산을 반복합니다. 그 말이 맞나요?
첫 번째 매개변수를 가져와서 어떻게 보이는지 확인하면

나는 누군가가 그것에 대해 어떻게든 반응해야 한다고 말하고 싶습니다. 또한 음수 기능 값(평균이 사양을 벗어남)이 있는 이유를 쉽게 확인할 수 있습니다.
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi 감사합니다. 내 이해는 Ppk는 음수일 수 없지만 Cpk는 음수일 수 있다는 것이므로 "누락으로 변경" 단계를 의심하고 있었습니다. 이해한 내용을 확인하겠습니다. 질문의 두 번째 부분으로 진행하기 전에 한 가지 더 - 이상치 필터링 기준(예: Q1/Q3 +/- 1.5xIQR 외부 필터)을 올바르게 적용하고 있습니까?
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?올바른 위치를 찾을 수 있다면 JMP 문서에는 이와 같은 질문에 대한 최상의 답변이 있습니다. 때로는 상당히 어려울 수도 있습니다.
이 경우 예측 및 특수 모델링 > 이상값 탐색 > 이상값 탐색 개요 > 분위수 범위 이상값 또는 여기 예측 및 특수 모델링 > 이상값 탐색 > 이상값 탐색 보고서 > 분위수 범위 이상값 보고서일 가능성이 높습니다.

Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi 감사합니다. 이제 질문의 두 번째 부분으로 넘어갑니다.
로트의 각 웨이퍼에 대해 각 공정 매개변수에 대한 Cpk를 계산하고 싶습니다.이상값 필터링 후, 각 공정 매개변수에 대한 웨이퍼별 Cpk 추세 플롯을 얻습니다.
따라서 이는 데이터 테이블의 모든 웨이퍼에 대한 매개변수의 기능이 아니라 특정 로트의 하나의 웨이퍼에 대한 매개변수의 기능입니다.
여기에 있는 것과 동일한 데이터 세트에 대해 JSL을 통해 이 작업을 수행하는 방법은 무엇입니까?
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?변수를 그룹화하면 필요에 따라 :lot_id, :wafer 및/또는 :wafer를 사용하여 해당 테이블을 얻을 수 없나요? 그런 다음 해당 테이블에서 그래프를 만들 수 있습니다.
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi 감사합니다. 내가 사용한다면
Names Default To Here (1);
Clear Log ();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group("Processes"); // Column Group should pre-exist.
obj = Explore Outliers(Y(Eval( col_names )),By( :Wafer ID in lot ID)); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q (1.5) ); // select Q3/Q1 +/- 1.5 x IQR<BR />웨이퍼를 개별적으로 처리하는 Explore Outliers Platform 창이 나타납니다. 그러면 어떻게 사용하나요?
obj << Change to Missing(ALL);
다음 단계, 즉 "로트 ID의 웨이퍼 ID"별 성능 분석으로 이동하시겠습니까?
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?제 생각엔 그게 잘 작동할 것 같아요. 데이터에 이상치가 있는 것이 확실합니까?
- 훨씬 더 작은 데이터 세트를 사용합니다(로트 ID에 웨이퍼 ID가 거의 없음).
- 하나의 열에 일부 이상값 생성
- 스크립트 실행
- 작동하는지 확인하세요
- 더 큰 데이터로 반복
Tail Quantile을 변경했음을 확인하세요.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
eo = dt << Explore Outliers(Y(Column Group("Processes")), By(:Wafer ID in lot ID), Invisible);
eo << Quantile Range Outliers(Tail Quantile(0.4), Q(1.5));
dt << Begin Data Update;
// eo << Color Cells(All);
Log Capture(eo << Change to Missing(ALL));
dt << End Data Update;
eo[1] << Close Window;Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi 감사합니다. 이제 분석을 위해 더 작은 데이터 세트를 사용했습니다(아래 JSL). 이상값 셀이 어떤 식으로든 누락되어 렌더링되므로 로트 ID 기준으로 웨이퍼 ID 의 이상값을 필터링할 필요가 없다고 생각합니다. 나에게 필요한 것은 이상치 필터링 데이터 세트에 대한 공정 능력 분석입니다.
Names Default To Here( 1 );
Clear Log();
dt_full = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt = Data Table( "Semiconductor Capability" ) << Subset(
All rows,
columns( :lot_id, :wafer, :Wafer ID in lot ID, :SITE, :NPN1, :PNP2, :PNP3, :FNM1, :RES3, RSP2 )
);
Wait( 1 );
Close( dt_full, no save );
col_names = dt << Get Column Group( "Processes" ); // Column Group should pre-exist.
obj = Explore Outliers( Y( Eval( col_names ) ) );//,By( :Wafer ID in lot ID)); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q( 1.5 ) ); // select Q3/Q1 +/- 1.5 x IQR
obj << Color Cells( ALL ); //check
Wait( 1 );
obj << Change to Missing( ALL );
Wait( 1 );
obj << Close Window;
// Run capability analysis
platform = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
//Within Sigma Summary Report( 0),
Overall Sigma Summary Report( 1 ),
Select Out of Spec Values( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Capability Box Plots( 0 ),
Process Performance Plot( 0 ),
Order By( "Overall Sigma Ppk Ascending" )
);
Wait( 0 );
Report( platform )[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Into Data Table;
dt_curr = Current Data Table();
dt_curr << Set Name( "Capability Report" );
platform << close window;
dt << Clear Select;
// Run capability analysis by wafer in a lot
platform2 = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
//Within Sigma Summary Report( 0),
Overall Sigma Summary Report(1),
Select Out of Spec Values( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Capability Box Plots( 0 ),
Process Performance Plot( 0 ),
Order By( "Overall Sigma Ppk Ascending" ),
By( :Wafer ID in lot ID )
);
dt << Clear Select;
여기서는 전체 데이터 세트에 대한 매개변수당 Ppk 와 로트 ID 기반의 웨이퍼 ID 에 대한 동일한 매개변수의 기능을 비교하고 싶습니다. 이를 위해 두 번째 공정 능력 분석에서 결합된 데이터 테이블(대화식으로 수행 가능)을 만드는 데 어려움을 겪어 아래 스크립트를 구성했습니다.
Report( platform2)[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Combined Data Table;
platform2 << close window;
마지막으로 내가 원하는 것은 페이지(그래프 빌더)의 매개변수 이름과 결합된 데이터 테이블에서 생성된 로트 ID(x축)의 성능(y축)과 웨이퍼 ID 의 플롯입니다. 또한 각 매개변수에 대해 수평선으로 표시하려면 첫 번째 공정 능력 분석에서 계산된 Ppk가 필요합니다. 여기서 도움을 좀 받을 수 있을까요?
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?결합된 데이터 테이블을 생성하려고 할 때 어떤 문제가 있나요? platform2에 어떤 내용이 포함되어 있는지 확인하셨나요?
Names Default To Here(1);
dt_full = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
dt = Data Table("Semiconductor Capability") << Subset(All rows, Columns(:lot_id, :wafer, :Wafer ID in lot ID, :SITE, :NPN1, :PNP2, :PNP3, :FNM1, :RES3, RSP2));
Close(dt_full, no save);
col_names = dt << Get Column Group("Processes");
obj = dt << Explore Outliers(Y(Eval(col_names)));
obj << Quantile Range Outliers(Tail Quantile(0.25), Q(1.5));
obj << Change to Missing(ALL);
obj << Close Window;
// Run capability analysis
pc = dt << Process Capability(
Process Variables(Eval(col_names)),
Spec Limits Dialog("No (skip columns with no spec limits)"),
Moving Range Method(Average of Moving Ranges),
Overall Sigma Summary Report(1),
Select Out of Spec Values(1),
Goal Plot(0),
Capability Index Plot(0),
Capability Box Plots(0),
Process Performance Plot(0),
Order By("Overall Sigma Ppk Ascending"),
Invisible
);
dt_nogroup = Report(pc)[Outline Box("Process Capability")][Outline Box("Overall Sigma Capability Summary Report")][Table Box(1)] << Make Into Data Table;
dt_nogroup << Set Name("Capability Report");
pc << close window;
// Run capability analysis by wafer in a lot
pc = dt << Process Capability(
Process Variables(Eval(col_names)),
Spec Limits Dialog("No (skip columns with no spec limits)"),
Moving Range Method(Average of Moving Ranges),
Overall Sigma Summary Report(1),
Goal Plot(0),
Capability Index Plot(0),
Capability Box Plots(0),
Process Performance Plot(0),
Order By("Overall Sigma Ppk Ascending"),
By(:Wafer ID in lot ID),
Invisible
);
dt << Clear Select;
dt_wafer = (Report(pc[1]) << top parent)[Outline Box("Process Capability")][Outline Box("Overall Sigma Capability Summary Report")][Table Box(1)] << Make Combined Data Table;
pc << close window;
Write();
먼저 그래프를 직접 만들어야 합니다. "참조" Ppk 값을 "데이터"에 결합하고 이를 다른 플롯 위에 추가 선 플롯으로 사용하는 것이 좋습니다.
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi 감사합니다. 저는 JMP 16.2를 사용하고 있습니다. 귀하의 스크립트를 사용하여 결합된 데이터 테이블을 얻으려고 할 때 다음과 같은 결과가 나타납니다. (저도 마찬가지입니다.)

Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?더 이상 JMP16에 접근할 수 없으므로 스스로 알아내거나 다른 사람이 개입해야 합니다. 제 기억이 맞다면 JMP16은 By를 사용할 때 객체 목록을 생성하지 않고 오히려 하나의 객체를 생성합니다 . 거기에서 올바른 테이블 상자를 찾아야 하며(올바른 정보로 먼저 선택) << Make Combined Data Table(결합된 데이터 테이블 만들기)을 해당 상자로 보낼 수 있어야 합니다.
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?이 방법이 효과가 있을까요?
(pc << XPath( "//OutlineBox[text()='Process Capability']//TableBox" ))[1]
<< Make Combined Data Table;
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi 감사합니다.
@Mark_Bailey 이것은 작동합니다
dt_wafer = Report( pc[1] )[Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<MAKE combined="" data="https://community.jmp.com/" table=""></MAKE>
Next I would like to produce a chart similar to the one below (or even better with Parameters in the Page option of Graph Builder) with the overall Ppk calculated (in table Capability Report) from the first part of the script as horizontal dashed line on y-axis for each parameter. I do not know how to get y-axis values from one table and use it on a chart produced from a different table so need some help on the JSL here.
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><span class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><img src="https://us.v-cdn.net/6038925/uploads/images/66723i4C71FBE8A07B4359/Neo_0-1722527733886.png" width="721" height="351" role="button" title="Neo_0-1722527733886.png" alt="Neo_0-1722527733886.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?참조 데이터의 값을 결합합니다. 먼저 "Ppk" 열의 이름을 "Ppk Ref"로 바꾼 다음 업데이트를 사용하고 프로세스와 일치시킵니다.

그런 다음 그래프를 만들고 Y축에 두 개의 열(Ppk 및 Ppk ref)을 추가합니다. 포인트의 Ppk 참조 및 라인의 Ppk 비활성화

Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi 감사합니다. 이것은 작동합니다. 마지막으로 수평선에 인접한 y축에 각 프로세스의 Ppk Ref 값을 어떻게 표시합니까?
또한 JSL을 통해 모든 차트의 y축 제목을 일반적인 것(예: "기능")으로 변경하는 방법은 무엇입니까?
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?최신 JMP 버전에서는 매우 쉽게 해당 라인에 대한 레이블을 활성화할 수 있습니다(JMP16에 이미 있는지는 확실하지 않음).


JMP16에 존재하지 않는 경우 참조선을 사용하고 다른 테이블의 참조 Ppk에서 업데이트하는 작업을 건너뜁니다. 대신 연관 배열에 저장하고 참조 값을 설정할 때 이를 사용합니다.
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi 네, 감사합니다. 내 JMP 16에서 활성화 라벨 설정을 찾았습니다.
두 번째 질문은 JSL을 통해 모든 차트의 y축 제목("페이지"를 통해)을 일반적인 항목("기능"이라고 함)으로 변경하는 방법입니다.
Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?나는 XPath를 사용하여 올바른 참조를 찾으려고 노력할 것입니다. 모든 경우에 작동하지 않을 수 있으며 약간의 조정이 필요할 수 있습니다.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 2954),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(Points(X, Y, Legend(15)), Smoother(X, Y, Legend(16)))
);
tebs = Report(gb) << XPath("//TextEditBox");
tebs[4::N Items(tebs)::2] << Set Text("Capability");Re: 이상값 필터링 후 매개변수당 Ppk와 매개변수당 웨이퍼당 Cpk를 얻는 방법은 무엇입니까?@jthi . 감사해요. 대신 차트가 필요한 작업에 적합한 Wrap을 선택했습니다. 이 경우에는 JSL에서 처리할 수 있는 y축이 하나만 걱정됩니다.