cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
Neo
Neo
Level VI

How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

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
8 REPLIES 8
Neo
Neo
Level VI

Re: How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

For the first (Ppk) part of my question, does swapping 

obj << Exclude Rows(ALL);

by

obj << Change to Missing(ALL);

do the job?

 

When it's too good to be true, it's neither
jthi
Super User

Re: How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

Because you have wide format table, you will have to change them to missing (use missing value codes or modify data) OR stack your data to be able to exclude rows.

 

Have you tried if << Change to missing does what you are looking for?

jthi_0-1721995174830.png

 

-Jarmo
Neo
Neo
Level VI

Re: How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

@jthi I think we crossed. Change to missing gives me negative Ppk for some parameters - is this expected?

Neo_0-1721995598735.png

 

When it's too good to be true, it's neither
jthi
Super User

Re: How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

Create a single column with outliers which you can calculate the Ppk for manually (and with JMP). Change the outliers to missing, repeat calculations. Are they correct?

 

If I just take the first parameter and check what it looks like

jthi_0-1721995873803.png

I would say someone should somehow react to that. You can also pretty easily see why there are negative capability values (mean is outside of the specs).

-Jarmo
Neo
Neo
Level VI

Re: How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

@jthi Thanks. My understanding was that Ppk's cannot be negative while Cpk's can, hence I was doubting my "Change to Missing" step. I will check my understanding. One more thing before I proceed to the second part of my question - am I applying the outlier filtering criteria (i.e. filter outside Q1/Q3 +/- 1.5xIQR) correctly? 

When it's too good to be true, it's neither
jthi
Super User

Re: How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

JMP documentation has best answers to questions like that, if you can just find the correct places. Sometimes it can be fairly difficult.

 

In this case, most likely here Predictive and Specialized Modeling > Explore Outliers > Overview of Explore Outliers > Quantile Ra... or here Predictive and Specialized Modeling > Explore Outliers > The Explore Outliers Report > Quantile Rang... 

jthi_0-1721996996702.png

 

-Jarmo
Neo
Neo
Level VI

Re: How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

@jthi Thanks, Coming to the second part of my question now.

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.

So, this is not the capability of a parameter for all the wafers in a data table but the capability of the parameter for one wafer in a given lot.

How to do this via JSL on the same data set I have here?

When it's too good to be true, it's neither
jthi
Super User

Re: How to get Ppk per parameter and Cpk per wafer per parameter post outlier filtering?

Shouldn't grouping variables get you that table using :lot_id, :wafer and/or :wafer in lot as needed? And then you can create a graph from that table

-Jarmo