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().
The coefficient matrices (A_1^* | … | 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:
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: old{u}_t =
A^{-1}Bold{varepsilon}_t, with variance-covariance matrix
Σ_U = A^{-1}BB'A^{-1'}.
Finally, in case of an overidentified SVAR, a likelihood ratio
statistic is computed according to:
LR = T(lndet(\tilde{Σ}_u^r) - lndet(\tilde{Σ}_u))
quad ,
with \tilde{Σ}_u^r being the restricted variance-covariance
matrix and \tilde{Σ}_u being the variance covariance matrix
of the reduced form residuals. The test statistic is distributed as
χ^2(nr - 2K^2 - frac{1}{2}K(K + 1)), where nr is equal
to the number of restrictions.
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., Σ_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().
Author(s)
Bernhard Pfaff
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
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")