Comment mettre en œuvre PSA ( Recherche d'ascension la plus raide) analyse en mode JMP DOE ?
Salut mon ami,
merci beaucoup pour votre aide.
Je ne suis pas tout à fait sûr, mais je pense que vous parlez d'une approche séquentielle de l'expérimentation dans laquelle (en exploitant les résultats d'une première conception) vous augmentez cette conception en choisissant de nouveaux points le long de la ligne d'ascension la plus raide. Je pense que nombreux sont ceux qui suggéreraient qu'il existe de meilleures façons d'augmenter une conception, bien que «mieux» dépende de votre situation particulière.
Malgré cela, si vous souhaitez utiliser l'approche, ce script peut vous aider à démarrer. Faites 'File > New > New Script', copiez le JSL, puis 'Edit > Run Script' :
// ian.cox@jmp.com: 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 )} )
)
);