TMODEL Procedure

FIT Statement

  • FIT < equations > < PARMS=(parameter <values> …)> < START=(parameter values …)> < DROP=(parameter …)> < INITIAL=(variable <= parameter | constant > …)> < / options > ;

PROC TMODEL includes additional options in the FIT statement to provide more control of the estimation process than PROC MODEL provides. For a complete description of the syntax of the FIT statement, see the section FIT Statement in Chapter 24, MODEL Procedure. The syntax for specifying the new options follows:

  • FIT < …> < / QUADHESS=LINEAR | ANALYTIC | FDA < OPTIMIZER=type <(ORMP-optimizer-options)>>> ;

Options to Control the Estimation Process

QUADHESS=LINEAR | ANALYTIC | FDA Experimental

specifies which method to use to compute the Hessian matrix during the optimization process. For FIML and t distribution estimations, the HESSIAN= option is used to specify how the Hessian matrix is computed, and the QUADHESS= option has no effect.

ANALYTIC

uses the exact analytical representation of the Hessian matrix during the optimization process. This option might improve convergence properties for certain nonlinear models. It is not available for feasible GLS estimations or random-effects estimations.

FDA

uses a finite difference approximation to the Hessian matrix during the optimization process. This option is available only when the OPTIMIZER=ORMP option is specified.

LINEAR

uses the crossproduct of the Jacobian matrix as an approximation to the Hessian matrix during the optimization process.

By default, QUADHESS=LINEAR.

Options to Control the Optimization Process

The following options control the optimization process. For more information about the optimizers available in PROC TMODEL, see the section Nonlinear Optimization.

OPTIMIZER=type<(ORMP-optimizer-options)>

specifies which optimizer to use to perform the numerical minimization. You can specify only one of the following types. By default, OPTIMIZER=ORMP.

ZOPT

uses the optimizer that is used in PROC MODEL in the minimization.

You can also specify the following options after the slash in the FIT statement: CONVERGE=, MAXITER=, MAXSUBITER=, METHOD=.

ORMP

uses the nonlinear programming solver available in SAS/OR software in the minimization. For more information about the ORMP nonlinear solver, see Chapter 10, The Nonlinear Programming Solver (SAS/OR User's Guide: Mathematical Programming).

You can specify the following ORMP-optimizer-options:

ALGORITHM=ACTIVESET | CONCURRENT | INTERIORPOINT

specifies the optimization technique to use to solve the problem. By default, ALGORITHM=INTERIORPOINT.

FEASTOL=epsilon

defines the feasible tolerance. By default, FEASTOL=1E–6.

MAXITER=n

requests that the NLP solver take at most n major iterations to determine an optimum. By default, MAXITER=5,000.

MAXTIME=t

specifies an upper limit of t units of time for the optimization process. If you do not specify this option, the NLP solver does not stop because of time elapsed.

MSBNDRANGE=m

defines the range from which each variable can take values during the sampling process. By default, MSBNDRANG=200.

MSDISTTOL=epsilon

specifies the tolerance by which two optimal points are considered distinct. Optimal points are considered distinct if the Euclidean distance between them is at least epsilon. By default, MSDISTTOL=1.0E–6.

MSMAXSTARTS=n

specifies the maximum number of starting points to use for local optimization. By default, MSMAXSTARTS=100.

MSMAXTIME=t

specifies the maximum time t (in seconds) for the NLP solver to locate the best local optimum in multistart mode. If you do not specify this option, the multistart algorithm does not stop because of the amount of time elapsed.

MULTISTART

enables multistart mode. In this mode, the local solver solves the problem from multiple starting points, possibly finding a better local minimum as a result. By default, this option is disabled.

OBJLIMIT=m

specifies a limit on the magnitude of the objective value. The algorithm terminates when the objective value becomes less than –m. The minimum acceptable value of m is 1Eplus8. If the specified value of m is less than 1Eplus8, the value is reset to the default value. By default, OBJLIMIT=1Eplus20.

OPTTOL=epsilon

defines the measure by which the ORMP optimizer decides whether the current iterate is an acceptable approximation of a local minimum, where epsilon is a positive real number. The ORMP optimizer determines that the current iterate is a local minimum when the norm of the scaled vector of the optimality conditions is less than epsilon and the true constraint violation is less than the value of the FEASTOL= option. By default OPTTOL=1E–6.

SEED=n

specifies a positive integer to use as the seed for generating random number sequences in multistart mode. To ensure reproducible results, specify a nonzero value. By default, SEED=0.

TIMETYPE=CPU | REAL

specifies the units of time that the MAXTIME= option uses. If you do not specify this option, the multistart algorithm does not stop because of the amount of time elapsed.

Options to Control the Solution of a System of Linear Equations

LUSOLVER=NUMPIVOT | STRUCTPIVOT | OLD | n

specifies the method to use to factor and solve systems of linear equations. These linear systems are encountered when the FIML option (which requests that the FIML method be used to estimate models) is specified in the FIT statement or the PROC TMODEL statement. These linear systems are also encountered when either the NEWTON or OPTIMIZE option is specified in the SOLVE statement (these options specify the numerical solution method). Also, model programs that include differential equations require the solution of linear systems of equations. You can specify the following values:

n

considers numerical values of matrix elements only every nth time a lower triangular times upper triangular (LU) matrix factorization is computed.

NUMPIVOT

considers numerical values of matrix elements each time an LU factorization is computed.

OLD

uses the factorization and solution algorithm that the MODEL procedure uses.

STRUCTPIVOT

considers only the structure of nonzero elements in the linear system for ordering equations in the LU factorization.

By default, LUSOLVER=NUMPIVOT.

Last updated: June 19, 2025