So implementieren Sie PSA ( Suche nach dem steilsten Aufstieg) Analyse im JMP DOE-Modus?
Hallo mein Freund,
vielen lieben Dank für deine Hilfe.
Ich bin mir nicht ganz sicher, aber ich denke, Sie sprechen von einem sequentiellen Ansatz zum Experimentieren, bei dem Sie (indem Sie die Ergebnisse eines ersten Entwurfs nutzen) diesen Entwurf erweitern, indem Sie neue Punkte entlang der Linie des steilsten Anstiegs auswählen. Ich denke, dass es viele gibt, die vorschlagen würden, dass es bessere Möglichkeiten gibt, ein Design zu erweitern, obwohl „besser“ von Ihrer speziellen Situation abhängen wird.
Wenn Sie den Ansatz trotzdem verwenden möchten, kann Ihnen dieses Skript den Einstieg erleichtern. Führen Sie 'Datei > Neu > Neues Skript' aus, kopieren Sie die JSL und dann 'Bearbeiten > Skript ausführen':
// 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 )} )
)
);