HMM Procedure
Functional Summary
The statements and options available in the HMM procedure are summarized in Table 1.
Table 1: Functional Summary
| Description | Statement | Option |
|---|---|---|
| Input Data Table Options | ||
| Specifies the input data table | PROC HMM | DATA= |
| Specifies the input data table for parameter estimation | ESTIMATE | IN= |
| Specifies the input data table for model information | SCORE | INMODEL= |
| Output Data Table Options | ||
| Writes the log likelihood and information criteria to the specified output data table | PROC HMM | OUTSTAT= |
| Writes the parameter estimates to the specified output data table | ESTIMATE | OUT= |
| Writes the parameter estimates and their standard errors and covariance matrix to the specified output data table | ESTIMATE | OUTALL= |
| Writes the evaluation results to the specified output data table | EVALUATE | OUT= |
| Writes the decoding results to the specified output data table | DECODE | OUT= |
| Writes the filtering results to the specified output data table | FILTER | OUT= |
| Writes the forecasting results to the specified output data table | FORECAST | OUT= |
| Writes the state distributions, means, standard errors, confidence intervals, medians, and covariance matrices of forecasts for dependent variables to the specified output data table | FORECAST | OUTALL= |
| Writes the model information to the specified output data table | SCORE | OUTMODEL= |
| Writes the smoothing results to the specified output data table | SMOOTH | OUT= |
| Writes the model information to the specified output data table that can be processed by the ASTORE procedure | STORE | OUT= |
| ID Variable | ||
| Specifies the variable that identifies the time or sequence | ID | TIME= |
| Specifies the variable that identifies the section | ID | SECTION= |
| Model Options | ||
| Specifies the mean form in a regime-switching autoregression model | MODEL | ARMEAN= |
| Estimates the initial state probability vector (ISPV) | MODEL | ESTISPV |
| Specifies the estimation method | MODEL | METHOD= |
| Specifies the number of categories in a state for a finite HMM | MODEL | NCATEGORY |
| Specifies the number of components in a state in a Gaussian mixture HMM (GM HMM) | MODEL | NCOMPONENT |
| Suppresses the present values of the exogenous variables | MODEL | NOCURRENTX |
| Suppresses the constant (intercept) parameters | MODEL | NOINT |
| Specifies the number of seasonal periods | MODEL | NSEASON= |
| Specifies the number or the range of numbers of hidden states | MODEL | NSTATE= |
| Centers seasonal dummies | MODEL | SCENTER |
| Specifies the state-independent parameters | MODEL | STATEINDEPENDENT= |
| Specifies the degree of deterministic time trend | MODEL | TREND= |
| Specifies the type of model of interest | MODEL | TYPE= |
| Specifies the lags of exogenous (independent) variables | MODEL | XLAG= |
| Specifies the order or the range of orders of the autoregressive process | MODEL | YLAG= |
| Optimization Options | ||
| Specifies a nonnegative integer to use as the seed for generating random number sequences | PROC HMM | SEED= |
| Specifies the initial parameter values for optimization | INITIAL | |
| Specifies the optimization algorithm | OPTIMIZE | ALGORITHM= |
| Specifies whether to calculate the covariance of parameters | OPTIMIZE | COVOFPARM= |
| Specifies the maximum number of iterations in the optimization process | OPTIMIZE | MAXITER= |
| Specifies the maximum time (in seconds) allowed for optimization | OPTIMIZE | MAXTIME= |
| Specifies the print iteration frequency | OPTIMIZE | PRINTITERFREQ= |
| Specifies the print level | OPTIMIZE | PRINTLEVEL= |
| Specifies the priors for parameters | PRIOR | |
| Optimization Suboptions for the Active-Set or Interior Point Algorithm | ||
| Specifies the range from which each variable can take values during the sampling process in multistart mode | OPTIMIZE | MSRANGE= |
| Specifies whether to enable multistart mode | OPTIMIZE | MULTISTART= |
| Specifies the upper limit on the magnitude of the objective value | OPTIMIZE | OBJLIMIT= |
| Specifies the tolerance for infeasibility | OPTIMIZE | FEASTOL= |
| Specifies the tolerance for the optimality error | OPTIMIZE | OPTTOL= |
| Specifies whether the optimizer should return only a solution that is locally optimal | OPTIMIZE | SOLTYPE= |
| Optimization Suboption for the Expectation-Maximization (EM) Algorithm | ||
| Specifies the minimum number of iterations in the optimization process | OPTIMIZE | MINITER= |
| Executes the EM algorithm in a single thread on a single node | OPTIMIZE | SINGLE |
| Optimization Suboptions for the Stochastic Gradient Descent (SGD) Algorithm | ||
| Specifies the annealing rate | OPTIMIZE | ANNEALINGRATE= |
| Specifies the learning rate | OPTIMIZE | LEARNINGRATE= |
| Specifies the size of the minibatches to use | OPTIMIZE | MINIBATCHSIZE= |
| Specifies the value for momentum | OPTIMIZE | MOMENTUM= |
| Suppresses the adaptive gradient descent algorithm | OPTIMIZE | NONADUPDATE |
| Specifies the value of adaptive rate | OPTIMIZE | ADAPTIVEDECAY= |
| Requests that computational threads share a common weight vector and that they update the weight vector without race conditions | OPTIMIZE | USELOCKING= |
| Specifies the length of a chain in a minibatch | OPTIMIZE | CHAIN=(LENGTH=) |
| Specifies the buffer length on the left side of a chain in a minibatch | OPTIMIZE | CHAIN=(BUFFER=) |
| Optimization Suboptions for the Distributed Multistart Option | ||
| Specifies the number of CAS subsessions that are dedicated to the function evaluations | OPTIMIZE | FESESSIONS= |
| Specifies the number of computing nodes in each CAS subsession that are dedicated to the function evaluations | OPTIMIZE | FESESSNODES= |
| Specifies the maximum number of starting points to be used by the multistart algorithm | OPTIMIZE | MAXSTARTS= |
| Specifies the ratio of the total number of sample points to be generated to the value of the MAXSTARTS= option | OPTIMIZE | SAMPSELRATIO= |
| Specifies the number of computing nodes in the CAS session dedicated to the multistart algorithm | OPTIMIZE | SESSNODES= |
| Forecasting Options | ||
| Specifies a nonnegative integer to use as the seed for generating random number sequences | PROC HMM | SEED= |
| Specifies the size of confidence limits for forecasting | FORECAST | ALPHA= |
| Starts forecasting before the end of the input data | FORECAST | BACK= |
| Specifies how many periods to forecast | FORECAST | LEAD= |
| Specifies the number of paths to simulate in the forecasting of a regime-switching autoregression model | FORECAST | NSIM= |
| Specifies whether to perform forecasts after each observation | FORECAST | ONLINE |
| Output Control Options | ||
| Specifies the order in which to label the states (and components) | PROC HMM | LABELSWITCH= |
| Specifies the ODS tables to display | DISPLAY | |
| Specifies the ODS tables to save as output tables | DISPLAYOUT | |
Last updated: July 09, 2026