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()
.
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), ...)
Object of class ‘varest
’; generated by
VAR()
.
Character, either scoring for estimating the SVAR-model with the scoring algorithm (default), or directly minimizing the negative log-likelihood.
Vector with starting values for the parameters to be optimised.
Logical, over-identification LR test, the result is set
to NULL
for just-identified system.
Integer, maximum number of iteration (used if
estmethod = "scoring"
).
Real, convergence value of algorithm (used if
estmethod = "scoring"
).
Real, maximum movement of the parameters between two
iterations of the scoring algorithm (used if
estmethod = "scoring"
).
Matrix with dimension \((K \times K)\) for A- or AB-model.
Matrix with dimension \((K \times K)\) for B- or AB-model.
the number of significant digits to use when printing.
further arguments passed to or from other methods.
A list of class ‘svarest
’ with the following elements is
returned:
If A- or AB-model, the matrix of estimated coefficients.
The standard errors of ‘A
’.
If A- or AB-model, the matrix of estimated coefficients.
The standard errors of ‘B
’.
For Blanchard-Quah estimation LRIM
is the estimated
long-run impact matrix; for all other SVAR models LRIM
is
NULL
.
The variance-covariance matrix of the reduced form residuals times 100, i.e., \(\Sigma_U = A^{-1}BB'A^{-1'} \times 100\).
Object of class ‘htest
’, holding the Likelihood
ratio overidentification test.
List object returned by optim()
.
Vector of starting values.
SVAR-type, character, either ‘A-model’, ‘B-model’ or ‘AB-model’.
The ‘varest
’ object ‘x
’.
Integer, the count of iterations.
The call
to SVAR()
.
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.
Amisano, G. and C. Giannini (1997), Topics in Structural VAR Econometrics, 2nd edition, Springer, Berlin.
Breitung, J., R. Br<U+279E5B61>nn and H. L<U+34AE5C2F>hl (2004), Structural vector autoregressive modeling and impulse responses, in H. L<U+34AE5C2F>hl and M. Kr<e4>tzig (editors), Applied Time Series Econometrics, Cambridge University Press, Cambridge.
Hamilton, J. (1994), Time Series Analysis, Princeton University Press, Princeton.
L<U+34AE5C2F>hl, H. (2006), New Introduction to Multiple Time Series Analysis, Springer, New York.
# NOT RUN {
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