-
BIG=n
specifies the size at which the candidate set is considered to be big. By default, BIG=2188. If the size of the full-factorial design is less than or equal to this size, and if PROC PLAN is in the RUN= argument list, the macro uses PROC PLAN instead of PROC FACTEX to create the candidate set. The default of 2,188 is . Specifying values as large as BIG=6000 or even slightly larger is often reasonable. However, run time is slower as the size of the candidate set increases. The %MktEx macro coordinate-exchange algorithm usually works better than a candidate-set search when the full-factorial design has more than several thousand runs.
-
CAND=SAS-data-set
specifies the output data set that contains the candidate design (from PROC FACTEX or PROC PLAN). The default name is Cand
, followed by the step number—for example, Cand1
for step 1, Cand2
for step 2, and so on. You should use this option only when you are reading an external candidate set. When you specify STEP= argument values greater than 1, the macro assumes that the default candidate set names, Cand1
, Cand2
, and so on, were used in previous steps. Specify only a data set name and no data set options.
-
CLASSOPTS=options
specifies CLASS statement options in PROC OPTEX. By default, CLASSOPTS=PARAM=ORTHREF. You should probably never change this option.
-
CODING=name
specifies the CODING= option in PROC OPTEX.
-
EXAMINE=<I> <V>
specifies the matrices that you want to examine. EXAMINE=I displays the information matrix, ; EXAMINE=V displays the variance matrix, ; and EXAMINE=I V displays both. These matrices are not displayed by default.
-
FACOPTS=options
specifies statement options in PROC FACTEX.
-
GENERATE=options
specifies the GENERATE statement options in PROC OPTEX. By default, additional options are not added to the GENERATE statement.
-
INTERACT=interaction-list
specifies interactions that must be estimable. By default, no interactions are guaranteed to be estimable. Examples include the following:
interact=x1*x2
interact=x1*x2 x3*x4*x5
interact=x1|x2|x3|x4|x5@2
interact=@2}
The interaction syntax is similar to that of PROC GLM and many other SAS/STAT procedures. It uses "*" for simple interactions (x1*x2
is the interaction between x1
and x2
), "|" for main effects and interactions (x1|x2|x3
is the same as x1 x2 x1*x2 x3 x1*x3 x2*x3 x1*x2*x3
), and "@" to eliminate higher-order interactions (x1|x2|x3@2
eliminates x1*x2*x3
and is the same as x1 x2 x1*x2 x3 x1*x3 x2*x3
). The specification "@2
" creates main effects and two-way interactions. Only "@
" values of 2
or 3
are permitted. If you specify "@2" by itself, a resolution V design is requested when PROC FACTEX is run.
-
ITER=n
MAXITER=n
specifies the ITER= option in PROC OPTEX, which creates n designs. By default, ITER=10.
-
KEEP=n
specifies the KEEP= option in PROC OPTEX, which keeps the n best designs. By default, KEEP=5.
-
NLEV=n
specifies the number of levels from which factors are constructed through pseudo-factors and coding down. The value must be a prime or a power of a prime: 2, 3, 4, 5, 7, 8, 9, 11, and so on. This argument is used with PROC FACTEX as follows:
factors factors / nlev=&nlev;
By default, the macro uses the minimum prime or power of a prime from the FACTORS= argument list, or 2 if no suitable value is found.
-
METHOD=name
specifies the METHOD= search method option in PROC OPTEX. By default, METHOD=M_FEDOROV (modified Fedorov).
-
N=n | SATURATED
specifies the N= option in PROC OPTEX, which is the number of runs in the final design. The default is the PROC OPTEX default and depends on the problem. You usually do not want to use the default. Instead, you should pick a value by using as guidance the information produced by the %MktRuns macro. N=SATURATED creates a design that has the minimum number of runs.
-
OPTIONS=options-list
specifies binary options. You can specify one or more of the following values:
- CHECK
checks the efficiency of a given design, specified in the CAND= argument.
- NOCODE
suppresses the display of the PROC PLAN, PROC FACTEX, and PROC OPTEX code.
- ALLCODE
displays all code, including code that will not be run.
By default, none of these binary options are specified.
-
OTHERFAC=variable-list
specifies other terms to mention in the FACTORS statement in PROC FACTEX. These terms are not guaranteed to be estimable. By default, there are no other factors.
-
OTHERINT=terms
specifies interaction terms that will be specified using PROC OPTEX only for multistep macro invocations. By default, no interactions are guaranteed to be estimable. Normally, interactions that are specified via the INTERACT= option affect the MODEL statements in both PROC FACTEX and PROC OPTEX. In multistep problems, part of an interaction might not be in a particular PROC FACTEX step. In that case, the interaction term must appear only in the PROC OPTEX step. For example, if X1
is created in one step and X4
is created in another, and if the X1*X4
interaction must be estimable, specify OTHERINT=X1*X4 in the final step, which runs PROC OPTEX. The following steps create the design:
%mktdes(step=1, factors=x1-x3=2, n=30, run=factex)
%mktdes(step=2, factors=x4-x6=3, n=30, run=factex)
%mktdes(step=3, factors=x7-x9=5, n=30, run=factex optex,
otherint=x1*x4)
-
OUT=SAS-data-set
specifies the output experimental design (from PROC OPTEX). By default, OUT=Design
.
-
PROCOPTS=options
specifies PROC OPTEX statement options. By default, no options are added to the PROC OPTEX statement.
-
RUN=procedure-list
specifies the list of procedures that the macro can run. Usually, the macro runs either PROC FACTEX or PROC PLAN and then PROC OPTEX. By default, RUN=PLAN FACTEX OPTEX. You can skip steps by omitting procedure names from this list. When both PROC PLAN and PROC FACTEX are in the list, the macro chooses between them based on the size of the full-factorial design and the value of the BIG= argument. When PROC PLAN is not in the list, the macro generates code for PROC FACTEX.
-
SEED=n
specifies the random number seed. By default, SEED=0, and clock time is used to make the random number seed.
-
SIZE=n | MIN
specifies the size of the candidate set. This argument is used together with PROC FACTEX as follows:
size design=&size;
- MIN
specifies the minimum size. It is recommended that you start with this value (the default) and see how large the resulting design is. If you want a larger design, specify SIZE=n.
- n
increases the size of the candidate set by a factor of n. It is recommended that you base n on the value of the NLEV= argument. For example, if NLEV=2, specify SIZE=2 at each subsequent macro call. If SIZE=MIN results in a candidate set of size 128 and you specify SIZE=2 at each subsequent macro call, then those calls try to set sizes of 256, 512, 1024, and 2048. You can specify integer expressions (for example, SIZE=128*4).
By default, SIZE=MIN.
-
STEP=n
specifies the step number. By default, there is only one step. However, sometimes, a better design can be found by using a multistep approach. Do not specify the CAND= argument in any step of a multistep run. Consider the problem of making a design that has three 2-level factors, three 3-level factors, and three 5-level factors. The simplest approach is to do something like creating a design from 2-level factors by using pseudo-factors and coding down:
%mktdes(factors=x1-x3=2 x4-x6=3 x7-x9=5, n=30)
However, for small problems like this, the following three-step approach is usually better:
%mktdes(step=1, factors=x1-x3=2, n=30, run=factex)
%mktdes(step=2, factors=x4-x6=3, n=30, run=factex)
%mktdes(step=3, factors=x7-x9=5, n=30, run=factex optex)
Note, however, that the following %MktEx macro step is usually better still:
%mktex(2 2 2 3 3 3 5 5 5, n=30)
The first %MktDes macro step uses PROC FACTEX to create a fractional-factorial design for the 2-level factors. The second step uses PROC FACTEX to create a fractional-factorial design for the 3-level factors and cross it with the 2-level factors. The third step uses PROC FACTEX to create a fractional-factorial design for the 5-level factors and cross it with the design for the 2- and 3-level factors and then run PROC OPTEX.
Each step globally stores two macro variables (&class1
and &inter1
for the first step, &class2
and &inter2
for the second step, and so on) that are used to construct the CLASS and MODEL statements in PROC OPTEX. When the value of the STEP= argument is greater than 1, variables from the previous steps are used in the CLASS and MODEL statements. In this example, the following PROC OPTEX code is created by the third step:
proc optex data=Cand3;
class x1-x3 x4-x6 x7-x9 / param=orthref;
model x1-x3 x4-x6 x7-x9;
generate n=30 iter=10 keep=5 method=m_fedorov;
output out=Design;
run; quit;
This step uses the previously stored macro variables &class1=x1-x3
and &class2=x4-x6
.
-
WHERE=where-clause
specifies a SAS WHERE clause for the candidate design, which is used to restrict the candidates. By default, the candidate design is not restricted.