cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Choose Language Hide Translation Bar
View Original Published Thread

How to get Skewness and Kurtosis for grouped columns and plot vs another column data?

Neo
Neo
Level VI

How do I plot the skewness and kurtosis  (on y-axis) for all Processes vs "Wafer ID in lot ID" using the following data?

 

dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");

This data set is similar to my actual data set, so will serve the purpose. 

 

I know how to get the skewness and kurtosis via the distribution platform interactively but cannot get the numbers out against "Wafer ID in lot ID" via "make combined data table". How to do this via JSL?

 

When it's too good to be true, it's neither
1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: How to get Skewness and Kurtosis for grouped columns and plot vs another column data?

You are correct, all that has to be done, is to add a << Make Combined Data Table  statement just like the one used to create the data table for the Summary Statistics, but point it at the Within Sigma Capability report table or at the Overall Sigma Capability table.

Current Report()["Within Sigma Capability", Table Box( 1 )] << Make Combined Data Table;

This of course assumes the script also has been modified to display the Process Capability reports.

Names Default To Here(1);
Clear Log(); 
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cnames = dt << get column names( string, continuous );
// for simplicity, only use 5 of the columns
remove from(cnames,6,nitems(cnames));
//col_names = dt << get column group ("Processes");
cnames = cnames[1::N Items (cnames)];
// Use the invisible element to hide output.  
dist = dt << Distribution(invisible,
            Columns(evalList(cnames)),
		    Summary Statistics(1),
		    Customize Summary Statistics(
			Std Err Mean(0),
			Upper Mean Confidence Interval(0),
			Lower Mean Confidence Interval(0),
			N(0),
			Skewness(1),
			Kurtosis(1),
			CV(1),
			Minimum(1),
			Maximum(1),
			Median(1)
		),
		Process Capability( Use Column Property Specs ),       
		 // Add a By group to get results for each wafer within each lot
		by(lot_id,wafer)
);
current report()["Summary Statistics", Table Box( 1 )] << Make Combined Data Table;
Current Report()["Within Sigma Capability", Table Box( 1 )] << Make Combined Data Table;
Jim

View solution in original post

5 REPLIES 5
jthi
Super User


Re: How to get Skewness and Kurtosis for grouped columns and plot vs another column data?

Make Combined Data table seems to work fine for me. JMP created script

Names Default To Here(1);

dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");

rpt = New Window("Semiconductor Capability - Distribution 2",
	Data Table("Semiconductor Capability") <<
	Distribution(
		Continuous Distribution(
			Column(:NPN1),
			Customize Summary Statistics(Skewness(1), Kurtosis(1)),
			Process Capability(0)
		),
		By(:lot_id)
	)
);
Wait(0);
rpt["Distributions", "lot_id=lot01", "NPN1", "Summary Statistics", Table Box(1)] <<
Make Combined Data Table;
rpt << Close Window;
-Jarmo
Neo
Neo
Level VI


Re: How to get Skewness and Kurtosis for grouped columns and plot vs another column data?

I can get the distribution, skewness and Kurtosis etc. for all processes via JSL but do not know how to get this per "Wafer ID in lot ID" out in a data table and plot. Need some direction here.

Names Default To Here(1);
Clear Log(); 
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cnames = dt << get column names( string, continuous );
//col_names = dt << get column group ("Processes");
cnames = cnames[1::N Items (cnames)];
dist = dt << Distribution(
            Columns(evalList(cnames)),
		    Summary Statistics(1),
		    Customize Summary Statistics(
			Std Err Mean(0),
			Upper Mean Confidence Interval(0),
			Lower Mean Confidence Interval(0),
			N(0),
			Skewness(1),
			Kurtosis(1),
			CV(1),
			Minimum(1),
			Maximum(1),
			Median(1)
		),
);
When it's too good to be true, it's neither
txnelson
Super User


Re: How to get Skewness and Kurtosis for grouped columns and plot vs another column data?

Here is how I would handle this

txnelson_0-1740756922805.png

 

Names Default To Here(1);
Clear Log(); 
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cnames = dt << get column names( string, continuous );
// for simplicity, only use 5 of the columns
remove from(cnames,6,nitems(cnames));
//col_names = dt << get column group ("Processes");
cnames = cnames[1::N Items (cnames)];
// Use the invisible element to hide output.  
dist = dt << Distribution(invisible,
            Columns(evalList(cnames)),
		    Summary Statistics(1),
		    Customize Summary Statistics(
			Std Err Mean(0),
			Upper Mean Confidence Interval(0),
			Lower Mean Confidence Interval(0),
			N(0),
			Skewness(1),
			Kurtosis(1),
			CV(1),
			Minimum(1),
			Maximum(1),
			Median(1)
		),        // Add a By group to get results for each wafer within each lot
		by(lot_id,wafer)
);
current report()["Summary Statistics", Table Box( 1 )] << Make Combined Data Table;
Jim
Neo
Neo
Level VI


Re: How to get Skewness and Kurtosis for grouped columns and plot vs another column data?

@txnelson This works. Thanks. I would like to add Cpk and Ppk by (lot_id, wafer)  into the combined data table. How to update your JSL to achieve this?

(looking at the auto generated JSL for this, it seems that the Outline Box needs to selected for Cpk and Ppk)

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

Re: How to get Skewness and Kurtosis for grouped columns and plot vs another column data?

You are correct, all that has to be done, is to add a << Make Combined Data Table  statement just like the one used to create the data table for the Summary Statistics, but point it at the Within Sigma Capability report table or at the Overall Sigma Capability table.

Current Report()["Within Sigma Capability", Table Box( 1 )] << Make Combined Data Table;

This of course assumes the script also has been modified to display the Process Capability reports.

Names Default To Here(1);
Clear Log(); 
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cnames = dt << get column names( string, continuous );
// for simplicity, only use 5 of the columns
remove from(cnames,6,nitems(cnames));
//col_names = dt << get column group ("Processes");
cnames = cnames[1::N Items (cnames)];
// Use the invisible element to hide output.  
dist = dt << Distribution(invisible,
            Columns(evalList(cnames)),
		    Summary Statistics(1),
		    Customize Summary Statistics(
			Std Err Mean(0),
			Upper Mean Confidence Interval(0),
			Lower Mean Confidence Interval(0),
			N(0),
			Skewness(1),
			Kurtosis(1),
			CV(1),
			Minimum(1),
			Maximum(1),
			Median(1)
		),
		Process Capability( Use Column Property Specs ),       
		 // Add a By group to get results for each wafer within each lot
		by(lot_id,wafer)
);
current report()["Summary Statistics", Table Box( 1 )] << Make Combined Data Table;
Current Report()["Within Sigma Capability", Table Box( 1 )] << Make Combined Data Table;
Jim