Learn R Programming

vars (version 1.6-1)

SVAR: Estimation of a SVAR

Description

Estimates an SVAR (either ‘A-model’, ‘B-model’ or ‘AB-model’) by using a scoring algorithm or by directly minimising the negative log-likelihood with optim().

Usage

SVAR(x, estmethod = c("scoring", "direct"), Amat = NULL, Bmat = NULL,
start = NULL, max.iter = 100, conv.crit = 0.1e-6, maxls = 1.0,
lrtest = TRUE, ...)
# S3 method for svarest
print(x, digits = max(3, getOption("digits") - 3), ...)

Value

A list of class ‘svarest’ with the following elements is returned:

A

If A- or AB-model, the matrix of estimated coefficients.

Ase

The standard errors of ‘A’.

B

If A- or AB-model, the matrix of estimated coefficients.

Bse

The standard errors of ‘B’.

LRIM

For Blanchard-Quah estimation LRIM is the estimated long-run impact matrix; for all other SVAR models LRIM is NULL.

Sigma.U

The variance-covariance matrix of the reduced form residuals times 100, i.e., \(\Sigma_U = A^{-1}BB'A^{-1'} \times 100\).

LR

Object of class ‘htest’, holding the Likelihood ratio overidentification test.

opt

List object returned by optim().

start

Vector of starting values.

type

SVAR-type, character, either ‘A-model’, ‘B-model’ or ‘AB-model’.

var

The ‘varest’ object ‘x’.

iter

Integer, the count of iterations.

call

The call to SVAR().

Arguments

x

Object of class ‘varest’; generated by VAR().

estmethod

Character, either scoring for estimating the SVAR-model with the scoring algorithm (default), or directly minimizing the negative log-likelihood.

start

Vector with starting values for the parameters to be optimised.

lrtest

Logical, over-identification LR test, the result is set to NULL for just-identified system.

max.iter

Integer, maximum number of iteration (used if estmethod = "scoring").

conv.crit

Real, convergence value of algorithm (used if estmethod = "scoring").

maxls

Real, maximum movement of the parameters between two iterations of the scoring algorithm (used if estmethod = "scoring").

Amat

Matrix with dimension \((K \times K)\) for A- or AB-model.

Bmat

Matrix with dimension \((K \times K)\) for B- or AB-model.

digits

the number of significant digits to use when printing.

...

further arguments passed to or from other methods.

Author

Bernhard Pfaff

Details

Consider the following structural form of a k-dimensional vector autoregressive model:

$$ A \bold{y}_t = A_1^*\bold{y}_{t-1} + \ldots + A_p^*\bold{y}_{t-p} + C^*D_t + B\bold{\varepsilon}_t $$

The coefficient matrices \((A_1^* | \ldots | A_p^* | C^*)\) might now differ from the ones of a VAR (see ?VAR). One can now impose restrictions on ‘A’ and/or ‘B’, resulting in an ‘A-model’ or ‘B-model’ or if the restrictions are placed on both matrices, an ‘AB-model’. In case of a SVAR ‘A-model’, \(B = I_K\) and conversely for a SVAR ‘B-model’. Please note that for either an ‘A-model’ or ‘B-model’, \(K(K-1)/2\) restrictions have to be imposed, such that the models' coefficients are identified. For an ‘AB-model’ the number of restrictions amounts to: \(K^2 + K(K-1)/2\).
For an ‘A-model’ a \((K \times K)\) matrix has to be provided for the functional argument ‘Amat’ and the functional argument ‘Bmat’ must be set to ‘NULL’ (the default). Hereby, the to be estimated elements of ‘Amat’ have to be set as ‘NA’. Conversely, for a ‘B-model’ a matrix object with dimension \((K \times K)\) with elements set to ‘NA’ at the positions of the to be estimated parameters has to be provided and the functional argument ‘Amat’ is ‘NULL’ (the default). Finally, for an ‘AB-model’ both arguments, ‘Amat’ and ‘Bmat’, have to be set as matrix objects containing desired restrictions and ‘NA’ values. The parameters are estimated by minimising the negative of the concentrated log-likelihood function:

$$ \ln L_c(A, B) = - \frac{KT}{2}\ln(2\pi) + \frac{T}{2}\ln|A|^2 - \frac{T}{2}\ln|B|^2 - \frac{T}{2}tr(A'B'^{-1}B^{-1}A\tilde{\Sigma}_u) $$

Two alternatives are implemented for this: a scoring algorithm or direct minimization with optim(). If the latter is chosen, the standard errors are returned if SVAR() is called with ‘hessian = TRUE’.

If ‘start’ is not set, then 0.1 is used as starting values for the unknown coefficients.

The reduced form residuals can be obtained from the above equation via the relation: \(\bold{u}_t = A^{-1}B\bold{\varepsilon}_t\), with variance-covariance matrix \(\Sigma_U = A^{-1}BB'A^{-1'}\).

Finally, in case of an overidentified SVAR, a likelihood ratio statistic is computed according to:

$$ LR = T(\ln\det(\tilde{\Sigma}_u^r) - \ln\det(\tilde{\Sigma}_u)) \quad , $$ with \(\tilde{\Sigma}_u^r\) being the restricted variance-covariance matrix and \(\tilde{\Sigma}_u\) being the variance covariance matrix of the reduced form residuals. The test statistic is distributed as \(\chi^2(nr - 2K^2 - \frac{1}{2}K(K + 1))\), where \(nr\) is equal to the number of restrictions.

References

Amisano, G. and C. Giannini (1997), Topics in Structural VAR Econometrics, 2nd edition, Springer, Berlin.

Breitung, J., R. Brüggemann and H. Lütkepohl (2004), Structural vector autoregressive modeling and impulse responses, in H. Lütkepohl and M. Krätzig (editors), Applied Time Series Econometrics, Cambridge University Press, Cambridge.

Hamilton, J. (1994), Time Series Analysis, Princeton University Press, Princeton.

Lütkepohl, H. (2006), New Introduction to Multiple Time Series Analysis, Springer, New York.

See Also

VAR, SVEC, logLik, irf, fevd

Examples

Run this code
data(Canada)
var.2c <- VAR(Canada, p = 2, type = "const")
amat <- diag(4)
diag(amat) <- NA
amat[2, 1] <- NA
amat[4, 1] <- NA
## Estimation method scoring
SVAR(x = var.2c, estmethod = "scoring", Amat = amat, Bmat = NULL,
max.iter = 100, maxls = 1000, conv.crit = 1.0e-8) 
## Estimation method direct
SVAR(x = var.2c, estmethod = "direct", Amat = amat, Bmat = NULL,
hessian = TRUE, method="BFGS") 

Run the code above in your browser using DataLab