Accelerating the pace of engineering and science

# vgxvarx

Estimate VARX model parameters

## Synopsis

EstSpec = vgxvarx(Spec,Y)

[EstSpec,EstStdErrors,LLF,W] = vgxvarx(Spec,Y,X,Y0,'Name1',Value1,'Name2',Value2,...);

## Description

vgxvarx estimates parameters of VAR and VARX models using maximum likelihood estimation.

## Required Input Arguments

 Spec A multivariate time series specification structure for an n-dimensional time series process, as created by vgxset. Spec must contain model dimensions, a lag structure (if any), and parameter estimation mappings (if any). It is not necessary to have initial values for any parameters to be estimated. Y A single path of an n-dimensional time series process with T observations for each path, collected in a T-by-n matrix. If Y contains multiple paths, vgxvarx uses only the first path to estimate parameters in Spec.

## Optional Input Arguments

 X Exogenous inputs. nPX paths of regression design matrices associated with T observations of an n-dimensional time series process, where each design matrix linearly relates nX exogenous inputs to each time series at each observation time. X is a T-by-nPX matrix of cell arrays with n-by-nX design matrices in each cell. If Y has multiple paths, X must contain either a single path or no fewer than the same number of paths as in Y. Extra paths are ignored. Y0 Presample time series process. nPY0 presample paths of an n-dimensional time series process with TY0 samples for each path, collected in a TY0-by-n-by-nPY0 array. If Y0 is empty or if TY0 is less than the maximum AR lag in Spec, presample values are padded with zeros. If TY0 is greater than the maximum AR lag, the most recent samples from the last rows of each path of Y0 are used. If Y0 has multiple paths, Y0 must contain either a single path or no fewer than the same number of paths as in Y. Extra paths are ignored.

Specify the following optional input arguments as variable-length lists of matching parameter name/value pairs: 'Name1', Value1, 'Name2', Value2, ... and so on. The following rules apply when specifying parameter-name pairs:

• Specify the parameter name as a character string, followed by its corresponding parameter value.

• You can specify parameter name/value pairs in any order.

• Parameter names are case insensitive.

• You can specify unambiguous partial string matches.

The following table lists valid parameter name/value pairs.

NameValue
'CovarType'

Form of the estimated covariance matrix.

• 'full' — estimate the full covariance matrix. This is the default.

• 'diagonal' — estimate a diagonal covariance matrix.

This value overrides the value of Qsolve in Spec.

'StdErrType'

Form of the estimated standard errors.

• 'mean' — estimate only the standard errors associated with the parameters of the conditional mean. This is the default.

• 'all' — estimate the standard errors for all parameters, including the parameters for the innovations covariance.

• 'none' — do not estimate the standard errors.

'IgnoreMA'

Use of moving average terms in the specification structure.

• 'no' — interpret moving average terms in the specification structure as errors. This is the default.

• 'yes' — ignore moving average terms in the specification structure.

For example, if a VARMA (1,1) model is specified with IgnoreMA set to 'yes', vgxvarx treats the model as a VAR(1) model with no moving average terms. If IgnoreMA is set to 'no', vgxvarx will not calibrate the model and will produce an error.

'MaxIter'

Maximum number of iterations for parameter estimation. The default is 1000. For ordinary least-squares (OLS) estimates of the parameters, set 'MaxIter' to 1. For feasible generalized least-squares (FGLS) estimates, set 'MaxIter' to 2. This parameter is used only for regression with exogenous inputs.

'TolParam'

Convergence tolerance for parameter estimation. The default is sqrt(eps).

'TolObj'

Convergence tolerance for parameter estimates. The default is eps^(3/4).

## Output Arguments

 EstSpec A multivariate time series specification structure for an n-dimensional time series process that contains parameter estimates for a VAR or VARX model, as created by vgxset. EstStdErrors A multivariate time series specification structure containing standard errors of estimated parameters for the n-dimensional time series process EstSpec. EstStdErrors is not a specification of a VAR or VARX model; it contains standard errors that are mapped to the equivalent model parameters in EstSpec. If StdErrType is set to 'none', EstStdErrors is vgxset.empty.The standard errors are maximum likelihood estimates, so a degree-of-freedom adjustment is necessary to form ordinary least squares estimates. To adjust standard errors for degrees-of-freedom, multiply them by$\sqrt{\frac{T}{\left(T-NumActive-1\right)}},$where T is the number of observations of the time series process and NumActive is the number of unrestricted parameters that vgxvarx estimates. LLF The loglikelihood function with the maximum likelihood estimates of the model parameters from EstSpec. W Estimated innovations process. Since the estimation is based on a single path of Y, W contains the inferred path of an n-dimensional innovations process with T observations given the estimated model is EstSpec.

## Examples

### Estimate a Vector Autoregressive Process

Start with a 2-dimensional VARMA(2, 2) specification structure in Spec with presample data for the time series and innovations process:

load Data_VARMA22

The process in Y was generated with the known specification structure in Spec and is a VARMA(2, 2) process. Since vgxvarx calibrates VARX models, ignore the moving average component of the model and fit a pure VAR(2) model as an approximation. The function vgxvarx generates parameter estimates in EstSpec and standard errors in EstStdErrors:

[EstSpec, EstStdErrors] = vgxvarx(vgxar(Spec), Y, [], Y0);

Use vgxdisp to display the estimated parameters along with standard errors and t-statistics:

vgxdisp(EstSpec, EstStdErrors)
Model  : 2-D VAR(2) with No Additive Constant
Conditional mean is AR-stable and is MA-invertible
Standard errors without DoF adjustment (maximum likelihood)
Parameter          Value     Std. Error    t-Statistic
-------------- -------------- -------------- --------------
AR(1)(1,1)       0.850166        0.12583        6.75649
(1,2)     -0.0498191       0.163542      -0.304625
(2,1)       0.219381      0.0934711        2.34705
(2,2)     -0.0227752       0.121486      -0.187472
AR(2)(1,1)      -0.294609       0.145514       -2.02461
(1,2)       0.221336       0.148174        1.49376
(2,1)       0.264504       0.108094        2.44699
(2,2)      0.0819125       0.110069        0.74419
Q(1,1)       0.051844
Q(2,1)     0.00711775
Q(2,2)      0.0286081

To see qualitatively how well the VARX approximation worked, infer the innovations process from the calibrated model and compare with the known innovations process from the VARMA(2, 2) process in W:

EstW = vgxinfer(EstSpec, Y, [], Y0, W0);

subplot(2,1,1);
plot([ W(:,1), EstW(:,1) ]);
subplot(2,1,2);
plot([ W(:,2), EstW(:,2) ]);
legend('VARMA(2, 2)', 'VAR(2)');

Try to calibrate a VAR(2) model with a restricted model such that the cross-terms in the AR lag matrices are fixed at 0 (this model treats each time series in Y as a separate VAR model but with a joint distribution for the innovations process):

SpecX = vgxset(vgxar(Spec),'AR',repmat({eye(2)},2,1), ...
'ARsolve', repmat({ logical(eye(2)) }, 2, 1));

[EstSpecX, EstStdErrorsX] = vgxvarx(SpecX, Y, [], Y0);

Compare the calibrated restricted VAR(2) model with the previous unrestricted VAR(2) model to see that the cross-terms in the AR lag matrices have been fixed at 0 in the restricted model:

vgxdisp(EstSpecX, EstSpec);
Model 1: 2-D VAR(2) with No Additive Constant
Conditional mean is AR-stable and is MA-invertible
Model 2: 2-D VAR(2) with No Additive Constant
Conditional mean is AR-stable and is MA-invertible
Parameter        Model 1        Model 2
-------------- -------------- --------------
AR(1)(1,1)       0.789031       0.850166
(1,2)              0     -0.0498191
(2,1)              0       0.219381
(2,2)       0.284343     -0.0227752
AR(2)(1,1)      -0.251377      -0.294609
(1,2)              0       0.221336
(2,1)              0       0.264504
(2,2)       0.178158      0.0819125
Q(1,1)      0.0541056       0.051844
Q(2,1)     0.00806393     0.00711775
Q(2,2)      0.0410274      0.0286081
Was this topic helpful?