TMODEL Procedure

Comparison of PROC TMODEL and PROC MODEL

PROC TMODEL includes changes to the underlying computational algorithms that are used in the majority of PROC MODEL analyses. The new algorithms improve the stability and convergence characteristics along with the computational efficiency for most problems; however, for some problems these improvements can cause PROC TMODEL to produce different results than PROC MODEL. In particular, both estimation and simulation tasks rely on matrix ordering and factorization algorithms that have been enhanced in PROC TMODEL to work more efficiently, especially for large problems. Also, PROC TMODEL processes input data in a different order than PROC MODEL to improve performance, and this can cause some estimation tasks to produce different results.

In addition to performance improvements, PROC TMODEL has the following new features:

  • estimation and simulation of models that use panel data by specifying cross-sectional variables in the CROSSSECTION statement

  • estimation of models with nonlinear random-effects parameters when cross-sectional variables are identified in the input data

  • use of analytic expressions for Hessian matrices in the optimization process for most estimation methods by default

  • use of the nonlinear programming (NLP) solver available in SAS/OR software for performing the optimizations during estimation tasks

The ability to specify cross-sectional variables in PROC TMODEL allows for the estimation of dynamic models by using multiple time series. By contrast, PROC MODEL can estimate dynamic models only for data that contain a single time series. Also, PROC TMODEL enhances the modeling capabilities of PROC MODEL by supporting models of the correlations among cross sections through the specification of random-effects parameters.

Models that depend on highly nonlinear parameters can cause the estimation process either to converge slowly or to fail to converge. PROC TMODEL includes two new features that address these problems. In PROC MODEL, a first-order approximation of the model problem’s Hessian matrix is used in the parameter search. PROC TMODEL has the option to use exact Hessian matrix values in the parameter search. PROC TMODEL also supports the use of an alternative nonlinear programming solver that improves convergence characteristics for many estimation problems.

PROC TMODEL breaks computationally intensive operations into multiple, concurrent threads to reduce the time it takes to complete many of the estimation and simulation tasks available in PROC MODEL. PROC MODEL performs all calculations sequentially. PROC TMODEL can break calculations up in the following ways:

  • multithreading across partitions of the input data set

  • multithreading across BY groups

  • multithreading across repetitions in Monte Carlo simulations

  • multithreading the optimization process in estimations across sets of initial estimates

For estimation tasks that do not involve dynamic models, PROC TMODEL breaks up the observed data into partitions and computes each partition’s contribution to the estimation of parameters concurrently. When PROC TMODEL analyzes a model for many BY groups, the BY groups can be analyzed concurrently. In Monte Carlo simulations, the random perturbations of the model variables can be evaluated concurrently in PROC TMODEL. In problems that involve a numerical optimization, it is sometimes necessary to perform many local optimizations by using separate initial estimates in order to determine a global solution. PROC TMODEL can perform these local optimizations concurrently to find the global solution more quickly than PROC MODEL, which solves local optimization problems sequentially.

PROC MODEL Features Not Available in PROC TMODEL

The following features in PROC MODEL are not currently available in PROC TMODEL:

  • some features in the model file used by the OUTMODEL= and MODEL= options

  • BY groups in the SDATA= and ESTDATA= data sets

  • covariance matrices in output data sets

  • the OUTSUSED= data set

  • some diagnostic information in output tables

  • Durbin-Watson autocorrelation statistics

  • some features in the CMP system, such as the RUN_MACRO function

Model specifications in either PROC MODEL or PROC TMODEL can be saved to a file for use in subsequent PROC MODEL or PROC TMODEL operations; however, there are some limitations to the model files that can be shared between PROC MODEL and PROC TMODEL. The specification of instrumental variables that is saved to a model file in PROC MODEL or PROC TMODEL cannot be used in PROC TMODEL or PROC MODEL estimation tasks, respectively.

Monte Carlo simulations in PROC MODEL can apply a different error covariance matrix, different parameter values, and a different parameter covariance matrix for each BY group in the DATA= data set through the specification of corresponding BY groups in the SDATA= and ESTDATA= data sets. Also, in PROC MODEL estimations, different initial parameter estimates for each BY group can be specified in the ESTDATA= data set. In contrast, PROC TMODEL does not currently support the use of BY groups in either the SDATA= or ESTDATA= data set. All BY groups share the same covariance matrices and parameter value specifications. PROC TMODEL will support BY groups in the SDATA= and ESTDATA= data sets in a future release.

PROC MODEL adds perturbations to parameter values during Monte Carlo simulations when a parameter covariance matrix is specified in the ESTDATA= data set. PROC TMODEL does not currently support perturbation of parameters, but this functionality will be available in a future release.

PROC MODEL stores both parameter estimates and parameter covariance matrices in the OUTEST= data set when the OUTCOV option is specified. PROC TMODEL does not support the output of covariance matrices in the OUTEST= data set; however, the COV option, which prints parameter covariance matrices, is supported.

Many tables that PROC MODEL produces are not available in PROC TMODEL because they fall into one or more of the following categories:

Not available

report the intermediate states of PROC MODEL calculations that are not available or are computed differently in PROC TMODEL.

Replaced

are replaced by equivalent diagnostic output in PROC TMODEL in a different format.

Future

are not yet available in PROC TMODEL but are planned for a future release.

The reason that each table is not available in PROC TMODEL is summarized in Table 1.

Table 1: ODS Tables Not Available in PROC TMODEL

ODS Table Name Description Reason1
ODS Tables Created by the FIT Statement
AugGMMCovariance Crossproducts matrix F
ConfInterval Profile likelihood confidence intervals F
Crossproducts Crossproducts matrix F
DatasetOptions Data sets used F
DetResidCov Determinant of the residuals F
DWTest Durbin-Watson test F
EstSummaryMiss Summary statistics for PAIRWISE option F
GMMCovariance Crossproducts matrix F
GMMTestStats GMM test statistics F
Godfrey Godfrey’s serial correlation test F
HausmanTest Hausman’s test table F
InvXPXMat XprimeX inverse for system N
IterInfo Iteration printing N R
ObsSummary Identifies observations that contain errors R
ObsUsed Observations read, used, and missing R
ParmChange Parameter change vector N
SizeInfo Storage requirement for estimation F
XPXMat XprimeX for system N
YkVector Marquardt iteration vector N
ODS Tables Created by the SOLVE Statement
DatasetOptions Data sets used F
DescriptiveStatistics Descriptive statistics F
FitStatistics Fit statistics for simulation F
ObsSummary Simulation trace output R
ObsUsed Observations read, used, and missing R
SolutionVarList Solution variable lists F
TheilRelStats Theil relative change error statistics F
TheilStats Theil forecast error statistics F
ErrorVec Iteration error vector N
ResidualValues Iteration residual values N
PredictedValues Iteration predicted values N
SolutionValues Iteration solved for variable values N
ODS Tables Created by the FIT and SOLVE Statements
AdjacencyMatrix Adjacency graph R
CodeDependency Variable cross reference N
CodeList Listing of compiled program code N
CrossReference Cross-reference listing for program N
DepStructure Dependency structure of the system N
FirstDerivatives First derivative table N
IterIntg Integration iteration output N
MemUsage Memory usage statistics F
MissingDependencies Missing values by dependency F
MissingObservations Missing values by observation F
MissingSymbols Missing values by symbol F
ParmReadIn Parameter estimates read in F
SortAdjacencyMatrix Sorted adjacency graph R
TransitiveClosure Transitive closure graph R
1N - Not available, R - Replaced, F - Future


You can find information in PROC TMODEL for the PROC MODEL tables in category R as follows:

  • IterInfo displays iteration information for the optimization process in the log for the ORMP optimizer.

  • ObsSummary displays diagnostic information for observations that produce missing values in the log.

  • ObsUsed displays observation counts in the EstSummaryStats table.

  • AdjacencyMatrix, SortAdjacencyMatrix, TransitiveClosure have dependency information that you display by using the ANALYZEDEPS= option in the SOLVE statement.

Last updated: June 19, 2025