cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Register to attend Discovery Summit 2025 Online: Early Users Edition, Sept. 24-25.
  • New JMP features coming to desktops everywhere this September. Sign up to learn more at jmp.com/launch.
Choose Language Hide Translation Bar
Neo
Neo
Level VI

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

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

Recommended Articles