SAS.STAT 9.1 Users Guide (Vol. 5)

The following statements can be used with the NLMIXED procedure:

PROC NLMIXED options ;

The following sections provide a detailed description of each of these statements.

PROC NLMIXED Statement

This statement invokes the NLMIXED procedure. A large number of options are available in the PROC NLMIXED statement, and the following table categorizes them according to function.

Table 51.1: PROC NLMIXED statement options

Option

Description

Basic Options

DATA=

input data set

METHOD=

integration method

Displayed Output Specifications

START

gradient at starting values

HESS

Hessian matrix

ITDETAILS

iteration details

CORR

correlation matrix

COV

covariance matrix

ECORR

corr matrix of additional estimates

ECOV

cov matrix of additional estimates

EDER

derivatives of additional estimates

ALPHA=

alpha for confidence limits

DF=

degrees of freedom for p values and confidence limits

Debugging Output

LIST

model program, variables

LISTCODE

compiled model program

LISTDEP

model dependency listing

LISTDER

model derivative

XREF

model cross reference

FLOW

model execution messages

TRACE

detailed model execution messages

Quadrature Options

NOAD

no adaptive centering

NOADSCALE

no adaptive scaling

OUTQ=

output data set

QFAC=

search factor

QMAX=

maximum points

QPOINTS=

number of points

QSCALEFAC=

scale factor

QTOL=

tolerance

Empirical Bayes Options

EBSTEPS=

number of Newton steps

EBSUBSTEPS=

number of substeps

EBSSFRAC=

step-shortening fraction

EBSSTOL=

step-shortening tolerance

EBTOL=

convergence tolerance

EBOPT

comprehensive optimization

EBZSTART

zero starting values

Optimization Specifications

TECHNIQUE=

minimization technique

UPDATE=

update technique

LINESEARCH=

line-search method

LSPRECISION=

line-search precision

HESCAL=

type of Hessian scaling

INHESSIAN<=>

start for approximated Hessian

RESTART=

iteration number for update restart

OPTCHECK<=>

check optimality in neighborhood

Derivatives Specifications

FD<=>

finite-difference derivatives

FDHESSIAN<=>

finite-difference second derivatives

DIAHES

use only diagonal of Hessian

Constraint Specifications

LCEPSILON=

range for active constraints

LCDEACT=

LM tolerance for deactivating

LCSINGULAR=

tolerance for dependent constraints

Termination Criteria Specifications

MAXFUNC=

maximum number of function calls

MAXITER=

maximum number of iterations

MINITER=

minimum number of iterations

MAXTIME=

upper limit seconds of CPU time

ABSCONV=

absolute function convergence criterion

ABSFCONV=

absolute function convergence criterion

ABSGCONV=

absolute gradient convergence criterion

ABSXCONV=

absolute parameter convergence criterion

FCONV=

relative function convergence criterion

FCONV2=

relative function convergence criterion

GCONV=

relative gradient convergence criterion

XCONV=

relative parameter convergence criterion

FDIGITS=

number accurate digits in objective function

FSIZE=

used in FCONV, GCONV criterion

XSIZE=

used in XCONV criterion

Step Length Specifications

DAMPSTEP<=>

damped steps in line search

MAXSTEP=

maximum trust-region radius

INSTEP=

initial trust-region radius

Singularity Tolerances

SINGCHOL=

tolerance for Cholesky roots

SINGHESS=

tolerance for Hessian

SINGSWEEP=

tolerance for sweep

SINGVAR=

tolerance for variances

Covariance Matrix Tolerances

ASINGULAR=

absolute singularity for inertia

MSINGULAR=

relative M singularity for inertia

VSINGULAR=

relative V singularity for inertia

G4=

threshold for Moore-Penrose inverse

COVSING=

tolerance for singular COV matrix

CFACTOR=

multiplication factor for COV matrix

These options are described in alphabetical order. For a description of the mathematical notation used in the following sections, see the section Modeling Assumptions and Notation.

ABSCONV= r

ABSTOL= r

ABSFCONV= r < [ n ] >

ABSFTOL= r < [ n ] >

ABSGCONV= r < [ n ] >

ABSGTOL= r < [ n ] >

ABSXCONV= r < [ n ] >

ABSXTOL= r < [ n ] >

The default is r = 1E ˆ’ 8 for the NMSIMP technique and r = 0 otherwise . The optional integer value n specifies the number of successive iterations for which the criterion must be satisfied before the process can terminate.

ALPHA= ±

ASINGULAR= r

ASING= r

CFACTOR= f

COV

CORR

COVSING= r >

DAMPSTEP < = r >

DS < = r >

DATA = SAS-data-set

DF= d

DIAHES

EBOPT

EBSSFRAC= r >

EBSSTOL= r ‰

EBSTEPS= n ‰

EBSUBSTEPS= n ‰

EBTOL= r ‰

EBZSTART

ECOV

ECORR

EDER

FCONV= r < [ n ] >

FTOL= r < [ n ] >

where FSIZE is defined by the FSIZE= option. The same formula is used for the NMSIMP technique, but ( k ) is defined as the vertex with the lowest function value, and ( k ˆ’ 1) is defined as the vertex with the highest function value in the simplex. The default is r= 10 ˆ’ FDIGITS where FDIGITS is the value of the FDIGITS= option. The optional integer value n specifies the number of successive iterations for which the criterion must be satisfied before the process can terminate.

FCONV2= r < [ n ] >

FTOL2= r < [ n ] >

FD < = FORWARD CENTRAL r >

FDHESSIAN < = FORWARD CENTRAL >

FDHES < = FORWARD CENTRAL >

FDH < = FORWARD CENTRAL >

FDIGITS= r

FLOW

FSIZE= r

G4= n >

GCONV= r < [ n ] >

GTOL= r < [ n ] >

HESCAL= 0123

HS= 0123

HESS

INHESSIAN < = r >

INHESS < = r >

INSTEP= r

ITDETAILS

LCDEACT= r

LCD= r

LCEPSILON= r >

LCEPS= r >

LCE= r >

LCSINGULAR= r >

LCSING= r >

LCS= r >

LINESEARCH= i

LIS= i

LIST

LISTCODE

LOGNOTE < = n >

LSPRECISION= r

LSP= r

MAXFUNC= i

MAXFU= i

MAXITER= i

MAXIT= i

MAXSTEP= r < [ n ] >

MAXTIME= r

METHOD= value

MINITER= i

MINIT= i

MSINGULAR= r >

MSING= r >

NOAD

NOADSCALE

OPTCHECK < = r > >

OUTQ= SAS-data-set

QFAC = r >

QMAX= r >

QPOINTS= n >

QSCALEFAC= r >

QTOL= r >

RESTART= i >

REST= i >

SEED= i

SINGCHOL= r >

SINGHESS= r >

SINGSWEEP= r >

SINGVAR= r >

START

TECHNIQUE= value

TECH= value

TRACE

UPDATE= method

UPD= method

VSINGULAR= r >

VSING= r >

XCONV= r < [ n ] > R

XTOL= r [ n ]

XSIZE= r >

ARRAY Statement

The ARRAY statement is similar to, but not the same as, the ARRAY statement in the SAS DATA step, and it is the same as the ARRAY statements in the NLIN, NLP, and MODEL procedures. The ARRAY statement is used to associate a name (of no more than eight characters ) with a list of variables and constants. The array name is used with subscripts in the program to refer to the array elements. The following statements illustrate this.

array r[8] r1-r8; do i = 1 to 8; r[i] = 0; end;

The ARRAY statement does not support all the features of the ARRAY statement in the DATA step. It cannot be used to assign initial values to array elements. Implicit indexing of variables cannot be used; all array references must have explicit subscript expressions. Only exact array dimensions are allowed; lower-bound specifications are not supported. A maximum of six dimensions is allowed.

On the other hand, the ARRAY statement does allow both variables and constants to be used as array elements. (Constant array elements cannot have values assigned to them.) Both dimension specification and the list of elements are optional, but at least one must be specified. When the list of elements is not specified or fewer elements than the size of the array are listed, array variables are created by suffixing element numbers to the array name to complete the element list.

BOUNDS Statement

Boundary constraints are specified with a BOUNDS statement. One- or two-sided boundary constraints are allowed. The list of boundary constraints are separated by commas. For example,

bounds 0 <= a1-a9 X <= 1, -1 <= c2-c5; bounds b1-b10 y >= 0;

You can specify more than one BOUNDS statement. If you specify more than one lower (upper) bound for the same parameter, the maximum (minimum) of these is taken.

If the maximum l j of all lower bounds is larger than the minimum of all upper bounds u j for the same variable j , the boundary constraint is replaced by j := l j := min( u j ) defined by the minimum of all upper bounds specified for j .

BY Statement

You can use a BY statement with PROC NLMIXED to obtain separate analyses on DATA= data set observations in groups defined by the BY variables. This means that, unless TECH=NONE, an optimization problem is solved for each BY group separately. When a BY statement appears, the procedure expects the input DATA= data set to be sorted in order of the BY variables. If your input data set is not sorted in ascending order, use one of the following alternatives:

For more information on the BY statement, refer to the discussion in SAS Language Reference: Concepts . For more information on the DATASETS procedure, refer to the discussion in the SAS Procedures Guide .

CONTRAST Statement

The CONTRAST statement enables you to conduct a statistical test that several expressions simultaneously equal zero. The expressions are typically contrasts, that is, differences whose expected values equal zero under the hypothesis of interest.

In the CONTRAST statement you must provide a quoted string to identify the contrast and then a list of valid SAS expressions separated by commas. Multiple CONTRAST statements are permitted, and results from all statements are listed in a common table. PROC NLMIXED constructs approximate F tests for each statement using the delta method (Cox 1998) to approximate the variance-covariance matrix of the constituent expressions.

The following option is available in the CONTRAST statement.

DF= d

ESTIMATE Statement

The ESTIMATE statement enables you to compute an additional estimate that is a function of the parameter values. You must provide a quoted string to identify the estimate and then a valid SAS expression. Multiple ESTIMATE statements are permitted, and results from all statements are listed in a common table. PROC NLMIXED computes approximate standard errors for the estimates using the delta method (Billingsley 1986). It uses these standard errors to compute corresponding t statistics, p -values, and confidence limits.

The ECOV option in the PROC NLMIXED statement produces a table containing the approximate covariance matrix of all of the additional estimates you specify. The ECORR option produces the corresponding correlation matrix. The EDER option produces a table of the derivatives of the additional estimates with respect to each of the model parameters.

The following options are available in the ESTIMATE statement:

ALPHA= ±

DF= d

ID Statement

The ID statement identifies additional quantities to be included in the OUT= data set of the PREDICT statement. These can be any symbols you have defined with SAS programming statements.

MODEL Statement

The MODEL statement is the mechanism for specifying the conditional distribution of the data given the random effects. You must specify a single dependent variable from the input data set, a tilde (~), and then a distribution with its parameters. Valid distributions are as follows.

The MODEL statement must follow any SAS programming statements you specify for computing parameters of the preceding distributions.

PARMS Statement

The PARMS statement lists names of parameters and specifies initial values, possibly over a grid. You can specify the parameters and values either directly in a list or provide the name of a SAS data set that contains them using the DATA= option.

While the PARMS statement is not required, you are encouraged to use it to provide PROC NLMIXED with accurate starting values. Parameters not listed in the PARMS statement are assigned an initial value of 1. PROC NLMIXED considers all symbols not assigned values to be parameters, so you should specify your modeling statements carefully and check the output from the Parameters table to make sure the proper parameters are identified.

A list of parameter names in the PARMS statement is not separated by commas and is followed by an equal sign and a list of numbers. If the number list consists of only one number, this number defines the initial value for all the parameters listed to the left of the equal sign.

If the number list consists of more than one number, these numbers specify the grid locations for each of the parameters listed to the left of the equal sign. You can use the TO and BY keywords to specify a number list for a grid search. If you specify a grid of points in a PARMS statement, PROC NLMIXED computes the objective function value at each grid point and chooses the best ( feasible ) grid point as an initial point for the optimization process. You can use the BEST= option to save memory for the storing and sorting of all grid point information.

The following options are available in the PARMS statement after a slash (/):

BEST= i>

DATA = SAS-data-set

PREDICT Statement

The PREDICT statement enables you to construct predictions of an expression across all of the observations in the input data set. Any valid SAS programming expression involving the input data set variables, parameters, and random effects is valid. Predicted values are computed using the parameter estimates and empirical Bayes estimates of the random effects. Standard errors of prediction are computed using the delta method (Billingsley 1986, Cox 1998). Results are placed in an output data set that you specify with the OUT= option. Besides all variables from the input data set, the OUT= data set contains the following variables: Pred, StdErrPred, DF, tValue, Probt, Alpha, Lower, Upper. You can also add other computed quantities to this data set with the ID statement.

The following options are available in the PREDICT statement:

ALPHA= ±

DER

DF= d

RANDOM Statement

The RANDOM statement defines the random effects and their distribution. The random effects must be represented by symbols that appear in your SAS programming statements. They typically influence the mean value of the distribution specified in the MODEL statement. The RANDOM statement consists of a list of the random effects (usually just one or two symbols), a tilde (~), the distribution for the random effects, and then a SUBJECT= variable.

NOTE: The input data set must be clustered according to the SUBJECT= variable. One easy way to accomplish this is to sort your data by the SUBJECT= variable prior to calling PROC NLMIXED. PROC NLMIXED does not sort the input data set for you; rather, it processes the data sequentially and considers an observation to be from a new subject whenever the value of its SUBJECT= changes from the previous observation.

The only distribution currently available for the random effects is normal( m , v ) with mean m and variance v . This syntax is illustrated as follows for one effect:

random u ~ normal(0,s2u) subject=clinic;

For multiple effects, you should specify bracketed vectors for m and v , the latter consisting of the lower triangle of the random-effects variance matrix listed in row order. This is illustrated for two and three random effects as follows.

random b1 b2 ~ normal([0,0],[g11,g21,g22]) subject=person; random b1 b2 b3 ~ normal([0,0,0],[g11,g21,g22,g31,g32,g33]) subject=person;

The SUBJECT= variable determines when new realizations of the random effects are assumed to occur. PROC NLMIXED assumes that a new realization occurs whenever the SUBJECT= variable changes from the previous observation, so your input data set should be clustered according to this variable. One easy way to accomplish this is to run PROC SORT prior to calling PROC NLMIXED using the SUBJECT= variable as the BY variable.

Only one RANDOM statement is permitted, so multilevel nonlinear mixed models are not currently accommodated.

The following options are available in the RANDOM statement:

ALPHA= ±

DF= d

OUT= SAS-data-set

REPLICATE Statement

The REPLICATE statement provides a way to accommodate models in which different subjects have identical data. This occurs most commonly when the dependent variable is binary. When you specify a REPLICATE variable, PROC NLMIXED assumes that its value indicates the number of subjects having data identical to those for the current value of the SUBJECT= variable (specified in the RANDOM statement). Only the last observation of the REPLICATE variable for each subject is used, and the replicate variable must have only positive integer values.

Programming Statements

This section lists the programming statements used to code the log likelihood function in PROC NLMIXED. It also documents the differences between programming statements in PROC NLMIXED and programming statements in the DATA step. The syntax of programming statements used in PROC NLMIXED is identical to that used in the CALIS and GENMOD procedures (see Chapter 19 and Chapter 31, respectively), and the MODEL procedure (refer to the SAS/ETS User s Guide ). Most of the programming statements that can be used in the SAS DATA step can also be used in the NLMIXED procedure. Refer to SAS Language Reference: Dictionary for a description of SAS programming statements. The following are valid statements:

For the most part, the SAS programming statements work the same as they do in the SAS DATA step, as documented in SAS Language Reference: Concepts ; however, there are several differences.

When coding your programming statements, you should avoid defining variables that begin with an underscore (_), as they may conflict with internal variables created by PROC NLMIXED. The MODEL statement must come after any SAS programming statements you specify for computing parameters of the modeling distribution.

Категории