cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • DownloadSemiconductor Toolkit: Tools to create wafer maps, add wafer geometry to graphics, explore die defects & compare wafers.
  • Discovery Summit 2026: Early User Edition - September 23-24.Register. It's free.
  • Use JMP Clinical with CDISC-compliant data. Review studies, ID safety and efficacy signals & communicate findings with interactive graphics. Register to see how. Aug. 27, 2 pm US ET.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
Jackie_
Level VII

Determine best fit and re-organize boxes and tables

Hi,

 

Is there a jsl way to identify the best fit for a particular parameter, generate capability analysis tables only for that model fit and then re-organize the display boxes only for the best fit in a new window (pictured below)? Also, can I maintain the functions?

Jackie__0-1708110824208.pngJackie__0-1708110824208.png

 


Here is what I tried: It works to an extend....

 

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dis = Distribution(
	Continuous Distribution(
		Column( :NPN1 ),
		Quantiles( 0 ),
		Vertical( 0 ),
		Outlier Box Plot( 1 ),
		Fit Normal( Show Fit( 0 ), Process Capability( LSL( 104.41 ), Target( . ), USL( 131.89 ), Show as Graph Reference Lines ) ),
		Fit Johnson( Show Fit( 0 ) ),
		Fit Cauchy( Show Fit( 0 ) ),
		Fit Student's t( Show Fit( 0 ) ),
		Fit SHASH( Show Fit( 0 ) ),
		Fit Normal 2 Mixture( Show Fit( 0 ) ),
		Fit Normal 3 Mixture(
			Process Capability( LSL( 104.41 ), Target( . ), USL( 131.89 ), Show as Graph Reference Lines, Show Within Capability( 0 ) )
		),
		Customize Summary Statistics( Std Err Mean( 0 ), Upper Mean Confidence Interval( 0 ), Lower Mean Confidence Interval( 0 ), N Missing( 0 ) )
	)
);


New Window( "",
	Show Menu( 0 ),
	show toolbars( 0 ),
	H List Box(
		Panel Box( , 
			
			Report( dis )["NPN1", List Box( 3 )]
	
		), 
		
		V List Box(
			Spacer Box( size( 0, 10 ) ),
			Report( dis )["NPN1", "Summary Statistics"],
			Spacer Box( size( 0, 10 ) ),
			Report( dis )["NPN1", "Fitted Normal 3 Mixture Distribution", "Process Capability", "NPN1(Mixture of 3 Normals) Capability",
			"Overall Sigma Capability"],
			Spacer Box( size( 0, 10 ) ),
			Report( dis )["NPN1", "Fitted Normal 3 Mixture Distribution", "Process Capability", "NPN1(Mixture of 3 Normals) Capability",
			"Nonconformance"]
			
		)
	),
	Panel Box( ,
		Table Box(
			Report( dis )["NPN1", "Compare Distributions"]

		)
	)
);
dis << close window;

 

 

1 REPLY 1
jthi
Super User

Re: Determine best fit and re-organize boxes and tables

You can get "best fit" by sending message << Fit All to distribution and getting the first row from table box BUT this should be used just for exploratory analysis (good discussion here Scripting - How to select best fit distribution and collect capability parameters? ). You could then either collect those to Associative array where key is the column name and value distribution or set those to Distribution column property. Finally create your final plots using the platform which you wish to use.

Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");

get_best_dist = function({dt, colname}, {Default Local},
	dist = dt << Distribution(
		Continuous Distribution(
			Column(Eval(colname)),
			Process Capability(0)
		),
		Invisible,
		Histograms Only
	);
	dist << Fit All;
	scb = Report(dist)[Outline Box("Compare Distributions"), Table Box(1), StringColBox(1)];
	bestdist = scb[1];
	dist << close window;
	
	return(bestdist);
);

aa_dist = Associative Array();
colrefs = dt << Get Column Group("Processes");
For Each({colref}, colrefs,
	Try(
		colname = colref << get name;
		curdist = get_best_dist(dt, colname);
		aa_dist[colname] = curdist;
		Eval(EvalExpr(Column(dt, colname) << Set Property("Distribution", Expr(curdist))));
	,
		show(colref);
	);
);
-Jarmo

Recommended Articles