cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Don’t miss your chance to experience Discovery Summit Europe at our best available rate! Early bird registration through 31 Oct.
  • Image to Table JMP extension imports single or batch images as data tables. Useful to extract curves from pictures or convert image data to curve data to use in analyses like Functional Data Explorer. Download and install the extension.

Discussions

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

Steepest ascent search

How to implement PSA (Steepest ascent search) analysis in JMP DOE mode?

2 REPLIES 2
ian_jmp
Level X

Re: Steepest ascent search

I'm not completely sure, but I think you are talking about a sequential approach to experimentation in which  (by exploiting the results from a first design) you augment that design by picking new points along the line of steepest ascent. I think that there are many who would suggest that there are better ways to augment a design, though 'better' will depend on your particular situation.

 

In spite of this, if you want to use the approach this script might get you started. Do 'File > New > New Script', copy the JSL, then 'Edit > Run Script':

 

// [email protected]: 18Sep2010
// Quick demo of design augmentation by steepest ascent

// Make some random data from a main effects model with no interaction
dt1 = New Table("Original Design",
					Add Rows( 10 ),
					New Column( "x1", Numeric, Continuous, Formula( Random Uniform(-1, 1) ) ),
					New Column( "x2", Numeric, Continuous, Formula( Random Uniform(-1, 1) ) ),
					New Column( "y", Numeric, Continuous, Formula( (2 * :x1 + 3 * :x2) + 0.1 * Random Normal() ) )
				);
// Fit the model
fmd = dt1 << Fit Model(
					Y( :y ),
					Effects( :x1, :x2 ),
					Personality( Standard Least Squares ),
					Emphasis( Effect Leverage ),
					Invisible
					);
fmo = fmd << Run;
// Get what we need
fmr = fmo << Report;
pn = fmo << GetParameterNames;
pe = fmo << GetEstimates;
ps = fmo << GetStdErrors;
Print(pn, pe, ps);
// Close the (invisible) report
fmr << CloseWindow;
// Take x1 to be the base factor
X2OverX1 = pe[3]/pe[2];
// Specify number of steps to take and x1 step size for each
n = 6;
delX1 = 0.3;
// Get points on the path of steepest ascent into a new 'design' table
x1pts = J(n, 1, .);
x2pts = J(n, 1, .);
for (p=1, p<=n, p++,
	x1pts[p] = delX1 * p;
	x2pts[p] = x1pts[p] * X2OverX1;
);
dt2 = AsTable(x1pts||x2pts);
dt2 << SetName("Path of Steepest Ascent from Fit of "||(dt1 << GetName));
x1Col = Column(dt2, "Col1") << SetName("x1");
x2Col = Column(dt2, "Col2") << SetName("x2");
// Concatenate the two design tables
dt1 << NewColumn("Design", Numeric, Ordinal, Values(J(Nrow(dt1), 1, 1)));
dt2 << NewColumn("Design", Numeric, Ordinal, Values(J(Nrow(dt2), 1, 2)));
dt3 = dt1 << Concatenate(dt2, Output Table( "Augmented Design" ));
// Use graph builder to show the final result
dt3 = Graph Builder(
				Show Control Panel( 0 ),
				Variables( X( :x1 ), Y( :x2 ), Color( :Design ) ),
				Elements( Points( X, Y, Color, Legend( 1 ) ) ),
				SendToReport(
					Dispatch(
						{},
						"400",
						ScaleBox,
						{Legend Model( 1, Properties( 1, {Line Color( 67 )} ) )}
					),
					Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 4 )} )
				)
			);
Xuhaidan
Level I

Re: Steepest ascent search

Hi my frend,

thanks very very much for your help.

Recommended Articles