MODEL
dependents < = regressors > <, dependents < = regressors > …> < / options > ;
The MODEL statement specifies dependent (endogenous) variables and independent (exogenous) variables for the VARMAX model. The multivariate model can have the same or different independent variables corresponding to the dependent variables. As a special case, the VARMAX procedure allows you to analyze one dependent variable. Only one MODEL statement is allowed.
For example, the following statements are equivalent ways of specifying the multivariate model for the vector :
model y1 y2 y3 </options>; model y1y3 </options>;
The following statements are equivalent ways of specifying the multivariate model with independent variables, where , and are the dependent variables and , and are the independent variables:
model y1 y2 y3 y4 = x1 x2 x3 x4 x5 </options>; model y1 y2 y3 y4 = x1x5 </options>; model y1 = x1x5, y2 = x1x5, y3 y4 = x1x5 </options>; model y1y4 = x1x5 </options>;
When the multivariate model has different independent variables that correspond to each of the dependent variables, equations are separated by commas (,) and the model can be specified as illustrated by the following MODEL statement:
model y1 = x1x3, y2 = x3x5, y3 y4 = x1x5 </options>;
The following options can be used in the MODEL statement after a forward slash (/):
centers the dependent (endogenous) variables by subtracting their means. Note that centering is done after differencing when the DIF= or DIFY= option is specified. If there are exogenous (independent) variables, this option is not applicable.
model y1 y2 / p=1 center;
specifies the degrees of differencing to be applied to the specified dependent or independent variables. The numberlist must contain one or more numbers, each of which should be greater than zero. The differencing can be the same for all variables, or it can vary among variables. For example, the DIF=((1,4) (1) (2)) option specifies that the series is differenced at lag 1 and at lag 4, which is

the series is differenced at lag 1, which is ; and the series is differenced at lag 2, which is .
The following uses the data , , , and , where and .
model y1 y2 = x1 x2 / p=1 dif=(y1(1) x2(2));
specifies the degrees of differencing to be applied to all independent variables. The numberlist must contain one or more numbers, each of which should be greater than zero. For example, the DIFX=(1) option specifies that all of the independent series are differenced once at lag 1. The DIFX=(1,4) option specifies that all of the independent series are differenced at lag 1 and at lag 4. If independent variables are specified in the DIF= option, then the DIFX= option is ignored.
The following statement uses the data , , , and , where and .
model y1 y2 = x1 x2 / p=1 difx(1);
specifies the degrees of differencing to be applied to all dependent (endogenous) variables. The numberlist must contain one or more numbers, each of which should be greater than zero. For details, see the DIFX= option. If dependent variables are specified in the DIF= option, then the DIFY= option is ignored.
model y1 y2 / p=1 dify(1);
requests the type of estimates to be computed. The possible values of the METHOD= option are as follows:
specifies least squares estimates.
specifies maximum likelihood estimates.
When the ECM=, PRIOR=, and Q= options and the GARCH statement are specified, the default ML method is used regardless of the method given by the METHOD= option.
model y1 y2 / p=1 method=ml;
suppresses the current values of the independent variables. In general, the VARX() model is

where is the number of lags of the dependent variables included in the model, and is the number of lags of the independent variables included in the model, including the contemporaneous values of .
A VARX(1,2) model can be specified as:
model y1 y2 = x1 x2 / p=1 xlag=2;
If the NOCURRENTX option is specified, it suppresses the current values and starts with . The VARX() model is redefined as:

This model with and can be specified as:
model y1 y2 = x1 x2 / p=1 xlag=2 nocurrentx;
suppresses the intercept parameter .
model y1 y2 / p=1 noint;
specifies the number of seasonal periods. When the NSEASON=number option is specified, (number –1) seasonal dummies are added to the regressors. If the NOINT option is specified, the NSEASON= option is not applicable.
model y1 y2 / p=1 nseason=4;
centers seasonal dummies specified by the NSEASON= option. The centered seasonal dummies are generated by , where is a seasonal dummy generated by the NSEASON= option.
model y1 y2 / p=1 nseason=4 scenter;
specifies the degree of deterministic time trend included in the model. Valid values are as follows:
includes a linear time trend as a regressor.
includes linear and quadratic time trends as regressors.
The TREND=QUAD option is not applicable for a cointegration analysis.
model y1 y2 / p=1 trend=linear;
corrects for the degrees of freedom of the denominator for computing an error covariance matrix for the METHOD=LS option. If the METHOD=ML option is specified, the VARDEF=N option is always used. Valid values are as follows:
specifies that the number of nonmissing observation minus the number of regressors be used.
specifies that the number of nonmissing observation be used.
model y1 y2 / p=1 vardef=n;
specifies the maximum number of lags for which results are computed and displayed by the PRINT=(CORRX CORRY COVX COVY IARR IMPULSE= IMPULSX= PARCOEF PCANCORR PCORR) options. This option is also used to limit the printed results for the cross covariances and crosscorrelations of residuals. The default is LAGMAX=min(12, 2), where is the number of nonmissing observations.
model y1 y2 / p=1 lagmax=6;
suppresses all printed output.
model y1 y2 / p=1 noprint;
requests all printing control options. The options set by the option PRINTALL are DFTEST=, MINIC=, PRINTFORM=BOTH, and PRINT=(CORRB CORRX CORRY COVB COVPE COVX COVY DECOMPOSE DYNAMIC IARR IMPULSE=(ALL) IMPULSX=(ALL) PARCOEF PCANCORR PCORR ROOTS YW).
You can also specify this option as the option ALL.
model y1 y2 / p=1 printall;
requests the printing format of the output generated by the PRINT= option and cross covariances and crosscorrelations of residuals. Valid values are as follows:
prints output in both MATRIX and UNIVARIATE forms.
prints output in matrix form. This is the default.
prints output by variables.
model y1 y2 / p=1 print=(impulse) printform=univariate;
The following options can be used in the PRINT=( ) option. The options are listed within parentheses. If a number in parentheses follows an option listed below, then the option prints the number of lags specified by number in parentheses. The default is the number of lags specified by the LAGMAX=number option.
prints the estimated correlations of the parameter estimates.
prints the crosscorrelation matrices of exogenous (independent) variables. The number should be greater than zero.
prints the crosscorrelation matrices of dependent (endogenous) variables. The number should be greater than zero.
prints the estimated covariances of the parameter estimates.
prints the covariance matrices of numberahead prediction errors for the VARMAX(,,) model. The number should be greater than zero. If the DIF= or DIFY= option is specified, the covariance matrices of multistep prediction errors are computed based on the differenced data. This option is not applicable when the PRIOR= option is specified. See the section Forecasting for details.
prints the crosscovariance matrices of exogenous (independent) variables. The number should be greater than zero.
prints the crosscovariance matrices of dependent (endogenous) variables. The number should be greater than zero.
prints the decomposition of the prediction error covariances using up to the number of lags specified by number in parentheses for the VARMA(,) model. The number should be greater than zero. It can be interpreted as the contribution of innovations in one variable to the mean squared error of the multistep forecast of another variable. The DECOMPOSE option also prints proportions of the forecast error variance.
If the DIF= or DIFY= option is specified, the covariance matrices of multistep prediction errors are computed based on the differenced data. This option is not applicable when the PRIOR= option is specified. See the section Forecasting for details.
prints the residual diagnostics and model diagnostics.
prints the contemporaneous relationships among the components of the vector time series.
prints the coefficient estimates and a schematic representation of the significance and sign of the parameter estimates.
prints the infinite order AR representation of a VARMA process. The number should be greater than zero. If the ECM= option and the COINTEG statement are specified, then the reparameterized AR coefficient matrices are printed.
prints the impulse response function. The number should be greater than zero. It investigates the response of one variable to an impulse in another variable in a system that involves a number of other variables as well. It is an infinite order MA representation of a VARMA process. See the section Impulse Response Function for details.
The following options can be used in the IMPULSE=( ) option. The options are specified within parentheses.
prints the accumulated impulse response function.
is equivalent to specifying all of SIMPLE, ACCUM, ORTH, and STDERR.
prints the orthogonalized impulse response function.
prints the impulse response function. This is the default.
prints the standard errors of the impulse response function, the accumulated impulse response function, or the orthogonalized impulse response function.
If the exogenous variables are used to fit the model, then the STDERR option is ignored.
prints the impulse response function related to exogenous (independent) variables. The number should be greater than zero. See the section Impulse Response Function for details.
The following options can be used in the IMPULSX=( ) option. The options are specified within parentheses.
prints the accumulated impulse response matrices for the transfer function.
is equivalent to specifying both SIMPLE and ACCUM.
prints the impulse response matrices for the transfer function. This is the default.
prints the partial autoregression coefficient matrices, up to the lag number. The number should be greater than zero. With a VAR process, this option is useful for the identification of the order since the have the property that they equal zero for under the hypothetical assumption of a VAR() model. See the section Tentative Order Selection for details.
prints the partial canonical correlations of the process at lag and the test for testing =0 for up to the lag number. The number should be greater than zero. The lag partial canonical correlations are the canonical correlations between and , after adjustment for the dependence of these variables on the intervening values , …, . See the section Tentative Order Selection for details.
prints the partial correlation matrices. The number should be greater than zero. With a VAR process, this option is useful for a tentative order selection by the same property as the partial autoregression coefficient matrices, as described in the PRINT=(PARCOEF) option. See the section Tentative Order Selection for details.
prints the eigenvalues of the companion matrix associated with the AR characteristic function , where is the number of dependent (endogenous) variables, and is the finite order matrix polynomial in the backshift operator , such that . These eigenvalues indicate the stationary condition of the process since the stationary condition on the roots of in the VAR() model is equivalent to the condition in the corresponding VAR(1) representation that all eigenvalues of the companion matrix be less than one in absolute value. Similarly, you can use this option to check the invertibility of the MA process. In addition, when the GARCH statement is specified, this option prints the roots of the GARCH characteristic polynomials to check covariance stationarity for the GARCH process.
prints YuleWalker estimates of the preliminary autoregressive model for the dependent (endogenous) variables. The coefficient matrices are printed using the maximum order of the autoregressive process.
Some examples of the PRINT= option are as follows:
model y1 y2 / p=1 print=(covy(10) corry(10)); model y1 y2 / p=1 print=(parcoef pcancorr pcorr); model y1 y2 / p=1 print=(impulse(8) decompose(6) covpe(6)); model y1 y2 / p=1 print=(dynamic roots yw);
specifies the order of the vector autoregressive process. Subset models of vector autoregressive orders can be specified by listing the desired set of lags. For example, you can specify the P=(1,3,4) option. The P=3 option is equivalent to the P=(1,2,3) option. The default is P=0.
If P=0 and there are no exogenous (independent) variables, then the AR polynomial order is automatically determined by minimizing an information criterion. If P=0 and the PRIOR= or ECM= option or both are specified, then the AR polynomial order is determined automatically.
If the ECM= option is specified, then subset models of vector autoregressive orders are not allowed and the AR maximum order specified is used.
Examples illustrating the P= option follow:
model y1 y2 / p=3; model y1 y2 / p=(1,3); model y1 y2 / p=(1,3) prior;
specifies the order of the movingaverage error process. Subset models of movingaverage orders can be specified by listing the desired set of lags. For example, you can specify the Q=(1,5) option. The default is Q=0.
model y1 y2 / p=1 q=1; model y1 y2 / q=(2);
specifies the lags of exogenous (independent) variables. Subset models of distributed lags can be specified by listing the desired set of lags. For example, XLAG=(2) selects only a lag 2 of the exogenous variables. The default is XLAG=0. To exclude the present values of exogenous variables from the model, the NOCURRENTX option must be used.
model y1 y2 = x1x3 / xlag=2 nocurrentx; model y1 y2 = x1x3 / p=1 xlag=(2);
prints the information criterion for the appropriate AR and MA tentative order selection and for the diagnostic checks of the fitted model.
If the MINIC= option is not specified, all types of information criteria are printed for diagnostic checks of the fitted model.
The following options can be used in the MINIC=( ) option. The options are specified within parentheses.
specifies the range of AR orders to be considered in the tentative order selection. The default is P=(0:5). The P=3 option is equivalent to the P=(0:3) option.
specifies the range of AR orders for obtaining the error series. The default is PERROR=().
specifies the range of MA orders to be considered in the tentative order selection. The default is Q=(0:5).
specifies the criterion for the model order selection. Valid criteria are as follows:
specifies the Akaike information criterion.
specifies the corrected Akaike information criterion. This is the default criterion.
specifies the final prediction error criterion.
specifies the HannaQuinn criterion.
specifies the Schwarz Bayesian criterion. You can also specify this value as TYPE=BIC.
model y1 y2 / minic; model y1 y2 / minic=(type=aic p=5);
Two options are related to integrated time series; one is the DFTEST option to test for a unit root and the other is the COINTTEST option to test for cointegration.
prints the DickeyFuller unit root tests. The DLAG=(number) …(number) option specifies the regular or seasonal unit root test. Supported values of number are in 1, 2, 4, 12. If the number is greater than one, a seasonal DickeyFuller test is performed. If the TREND= option is specified, the seasonal unit root test is not available. The default is DLAG=1.
For example, the DFTEST=(DLAG=(1)(12)) option produces two tables: the DickeyFuller regular unit root test and the seasonal unit root test.
Some examples of the DFTEST= option follow:
model y1 y2 / p=2 dftest; model y1 y2 / p=2 dftest=(dlag=4); model y1 y2 / p=2 dftest=(dlag=(1)(12)); model y1 y2 / p=2 dftest cointtest;
The following options can be used with the COINTTEST=( ) option. The options are specified within parentheses.
prints the cointegration rank test for multivariate time series based on Johansen’s method. This test is provided when the number of dependent (endogenous) variables is less than or equal to 11. See the section Vector Error Correction Modeling for details.
The VARX(,) model can be written as the error correction model

where , , , and are coefficient parameters; is a deterministic term such as a constant, a linear trend, or seasonal dummies.
The model is defined by one reducedrank condition. If the cointegration rank is , then there exist matrices and of rank such that .
The model is rewritten as the model

where and .
The model is defined by two reducedrank conditions. One is that , where and are matrices of fullrank . The other is that where and are matrices with ; and are matrices of fullrank such that and .
The following options can be used in the JOHANSEN=( ) option. The options are specified within parentheses.
specifies the integrated order.
prints the cointegration rank test for an integrated order 1 and prints the longrun parameter, , and the adjustment coefficient, . This is the default. If the IORDER=1 option is specified, then the AR order should be greater than or equal to 1. When the P=0 option, the value of P is set to 1 for the Johansen test.
prints the cointegration rank test for integrated orders 1 and 2. If the IORDER=2 option is specified, then the AR order should be greater than or equal to 2. If the P=1 option with the IORDER=2 option, then the value of IORDER is set to 1; if the P=0 option with the IORDER=2 option, then the value of P is set to 2.
specifies the dependent (endogenous) variable name whose cointegration vectors are to be normalized. If the normalized variable is different from that specified in the ECM= option or the COINTEG statement, then the value specified in the COINTEG statement is used.
specifies the type of cointegration rank test to be printed. Valid values are as follows:
prints the cointegration maximum eigenvalue test.
prints the cointegration trace test. This is the default.
If the NOINT option is not specified, the procedure prints two different cointegration rank tests in the presence of the unrestricted and restricted deterministic terms (constant or linear trend) models. If the IORDER=2 option is specified, the procedure automatically determines that the TYPE=TRACE option.
Some examples that illustrate the COINTTEST= option follow:
model y1 y2 / p=2 cointtest=(johansen=(type=max normalize=y1)); model y1 y2 / p=2 cointtest=(johansen=(iorder=2 normalize=y1));
sets the size of cointegration rank tests and common trends tests.The SIGLEVEL=value can be set to 0.1, 0.05, or 0.01. The default is SIGLEVEL=0.05.
model y1 y2 / p=2 cointtest=(johansen siglevel=0.1); model y1 y2 / p=2 cointtest=(sw siglevel=0.1);
prints common trends tests for a multivariate time series based on the StockWatson method. This test is provided when the number of dependent (endogenous) variables is less than or equal to 6. See the section Common Trends for details.
The following options can be used in the SW=( ) option. The options are listed within parentheses.
specifies the number of lags. The default is LAG=max(1,) for the TYPE=FILTDIF or TYPE=FILTRES option, where is the AR maximum order specified by the P= option; LAG= for the TYPE=KERNEL option, where is the number of nonmissing observations. If the specified LAG=number exceeds the default, then it is replaced by the default.
specifies the type of common trends test to be printed. Valid values are as follows:
prints the common trends test based on the filtering method applied to the differenced series. This is the default.
prints the common trends test based on the filtering method applied to the residual series.
prints the common trends test based on the kernel method.
model y1 y2 / p=2 cointtest=(sw); model y1 y2 / p=2 cointtest=(sw=(type=kernel)); model y1 y2 / p=2 cointtest=(sw=(type=kernel lag=3));
specifies the prior value of parameters for the BVARX(, ) model. The BVARX model allows for a subset model specification. If the ECM= option is specified with the PRIOR option, the BVECMX(, ) form is fitted. See the section Bayesian VAR and VARX Modeling for details.
The following options can be used with the PRIOR=(prioroptions) option. The prioroptions are listed within parentheses.
specifies an integrated BVAR() model. The variables should be specified in the MODEL statement as dependent variables. If you use the IVAR option without variables, then it sets the overall prior mean of the first lag of each variable equal to one in its own equation and sets all other coefficients to zero. If variables are specified, it sets the prior mean of the first lag of the specified variables equal to one in its own equation and sets all other coefficients to zero. When the series follows a bivariate BVAR(2) process, the IVAR or IVAR=( ) option is equivalent to specifying MEAN=(1 0 0 0 0 1 0 0).
If the PRIOR=(MEAN=) or ECM= option is specified, the IVAR= option is ignored.
specifies the prior standard deviation of the AR coefficient parameter matrices. It should be a positive number. The default is LAMBDA=1. As the value of the LAMBDA= option is increased, the BVAR() model becomes closer to a VAR() model.
specifies the mean vector in the prior distribution for the AR coefficients. If the vector is not specified, the prior value is assumed to be a zero vector. See the section Bayesian VAR and VARX Modeling for details.
You can specify the mean vector by order of the equation. Let be the parameter sets to be estimated and be the AR parameter sets. The mean vector is specified by rowwise from ; that is, the MEAN=() option.
For the PRIOR=(mean) option in the BVAR(2),

where is an element of , is a lag, is associated with the first dependent variable, and is associated with the second dependent variable.
model y1 y2 / p=2 prior=(mean=(2 0.1 1 0 0.5 3 0 1));
The deterministic terms and exogenous variables are considered to shrink toward zero; you must omit prior means of exogenous variables and deterministic terms such as a constant, seasonal dummies, or trends.
For a Bayesian error correction model estimated when both the ECM= and PRIOR= options are used, a mean vector for only lagged AR coefficients, , in terms of regressors , for is used in the VECM() representation. The diffused prior variance of is used, since is replaced by estimated in a nonconstrained VECM() form.

where .
For example, in the case of a bivariate () BVECM(2) form, the option

where is the th element of the matrix .
determines the number of repetitions that are used to compute the measure of forecast accuracy. See the equation in the section Forecasting of BVAR Modeling for details. The default is NREP=, where is the number of observations. If NREP is above , it is decreased to ; if NREP is below the value of the LEAD= option, it is increased to the value of the LEAD= option.
specifies the prior standard deviation of the AR coefficient parameter matrices. The value is in the interval (0,1). The default is THETA=0.1. As the value of the THETA= option approaches 1, the specified BVAR() model approaches a VAR() model.
Some examples of the PRIOR= option follow:
model y1 y2 / p=2 prior; model y1 y2 / p=2 prior=(theta=0.2 lambda=5); model y1 y2 = x1 / p=2 prior=(theta=0.2 lambda=5); model y1 y2 = x1 / p=2 prior=(theta=0.2 lambda=5 mean=(2 0.1 1 0 0.5 3 0 1));
See the section Bayesian VAR and VARX Modeling for details.
specifies a vector error correction model.
The following options can be used in the ECM=( ) option. The options are specified within parentheses.
specifies a single dependent variable name whose cointegrating vectors are normalized. If the variable name is different from that specified in the COINTEG statement, then the value specified in the COINTEG statement is used.
specifies the cointegration rank. This option is required in the ECM= option. The value of the RANK= option should be greater than zero and less than or equal to the number of dependent (endogenous) variables, . If the rank is different from that specified in the COINTEG statement, then the value specified in the COINTEG statement is used.
specifies the restriction on the drift in the VECM() form.
There is no separate drift in the VECM() form, but a constant enters only through the error correction term.

An example of the ECTREND option follows:
model y1 y2 / p=2 ecm=(rank=1 ectrend);
There is a separate drift and no separate linear trend in the VECM() form, but a linear trend enters only through the error correction term.

An example of the ECTREND option with the TREND= option follows:
model y1 y2 / p=2 ecm=(rank=1 ectrend) trend=linear;
If the NSEASON option is specified, then the NSEASON option is ignored; if the NOINT option is specified, then the ECTREND option is ignored.
Some examples of the ECM= option follow:
model y1 y2 / p=2 ecm=(rank=1 normalized=y1); model y1 y2 / p=2 ecm=(rank=1 ectrend) trend=linear;
See the section Vector Error Correction Modeling for details.