Constructing a Nonstandard Design
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: OPTEXG1 */
/* TITLE: Constructing a Nonstandard Design */
/* PRODUCT: QC */
/* SYSTEM: ALL */
/* KEYS: Optimal Designs, */
/* PROCS: OPTEX PLAN */
/* DATA: */
/* */
/* REF: SAS/QC Software: Usage and Reference, Version 6, */
/* First Edition, Volume 1 and Volume 2 */
/* MISC: */
/* */
/****************************************************************/
options ps=60;
/*--------------------------------------------------------------*/
/* */
/* Create a data set containing the candidate runs */
/* */
/*--------------------------------------------------------------*/
proc plan ordered seed=45678;
factors rtemp=3 press=3 time=3 solv=2 source=5/noprint;
output out=can
rtemp nvals=(150 to 350 by 100)
press nvals=( 10 to 30 by 10)
time nvals=( 3 to 5 )
solv nvals=( 20 to 25 by 5)
source nvals=( 1 to 5 );
/*
/ The three control factors at their lowest and highest levels
/ in this example are expected to be problematic
/---------------------------------------------------------------*/
data can; set can;
if (^((rtemp = 150) & (press = 10) & (time = 3)));
if (^((rtemp = 350) & (press = 30) & (time = 5)));
proc print data=can;
run;
/*--------------------------------------------------------------*/
/* */
/* Generating the Design */
/* */
/*--------------------------------------------------------------*/
proc optex data=can seed=56789;
class source;
model source
solv|rtemp|press|time@2
rtemp*rtemp press*press time*time;
output out=reactor;
run;
proc print data=reactor;
run;
/*--------------------------------------------------------------*/
/* */
/* Customizing the Design to 25 Runs */
/* */
/*--------------------------------------------------------------*/
proc optex data=can seed=34567;
class source;
model source
solv|rtemp|press|time@2
rtemp*rtemp press*press time*time;
generate n=25;
run;
/*--------------------------------------------------------------*/
/* */
/* Including Specific Runs */
/* */
/*--------------------------------------------------------------*/
data preset;
input solv rtemp press time source;
cards;
20 350 10 5 4
20 150 10 4 3
25 150 30 3 3
25 250 10 5 3
;
proc optex data=can noprint seed=23456;
class source;
model source
solv|rtemp|press|time@2
rtemp*rtemp press*press time*time;
generate n=25 augment=preset;
output out=reactor2;
run;
proc print data=reactor2;
run;
/*--------------------------------------------------------------*/
/* */
/* Using an Alternative Search Technique */
/* (Modified Fedorov) */
/*--------------------------------------------------------------*/
proc optex data=can seed=12345;
class source;
model source
solv|rtemp|press|time@2
rtemp*rtemp press*press time*time;
generate n=25 method=m_federov;
run;