I have put together the following JSL to first filter the outliers in the data and then get the Ppk, but I note that my script is incorrect as when I filter the outliers by excluding all rows, I exclude non-outliers data points for other process parameters.
For defining outliers, my preferred criteria is anything outside Q1/Q3 +/- 1.5xIQR is an outlier, which is what (I think) I use below.
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" );
I can colour outlier cells per parameter but do not know how to exclude them for Capability Analysis. I need some help here.
Secondly, for each wafer in a lot, I would like to calculate the Cpk for each process parameter after outlier filtering, to get a Cpk trend plot by wafer for each process parameter. How to do this via JSL (using the example data set I have got in my script)?
When it's too good to be true, it's neither