SVAR {vars} | R Documentation |
Estimates an SVAR (either ‘A-model’, ‘B-model’ or
‘AB-model’) by using a scoring algorithm or by numerically
minimising the negative log-likelihood with optim()
.
SVAR(x, estmethod = c("scoring", "logLik"), Amat = NULL, Bmat = NULL, Ra = NULL, Rb = NULL, ra = NULL, rb = NULL, start = NULL, max.iter = 100, conv.crit = 0.1e-6, maxls = 1.0, lrtest = TRUE, ...)
x |
Object of class ‘varest ’; generated by
VAR() . |
estmethod |
Character, either scoring for estimating the SVAR-model with the scoring algorithm (default), or logLik for minimising 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. |
Ra |
Matrix of the explicit form constraints on A (used if
estmethod = "scoring" ). |
Rb |
Matrix of the explicit form constraints on B (used if
estmethod = "scoring" ). |
ra |
Vector of the non-homogenous part of constraints on A (used if
estmethod = "scoring" ). |
rb |
Vector of the non-homogenous part of constraints on B (used if
estmethod = "scoring" ). |
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 (used if estmethod = "logLik" ). |
Bmat |
Matrix with dimension (K times K) for B- or
AB-model (used if estmethod = "logLik" ). |
... |
Arguments that arr passed to optim() (used if
estmethod = "logLik" ). |
Consider the following structural form of a k-dimensional vector autoregressive model:
A y_t = A_1^*y_{t-1} + ... + A_p^*y_{t-p} + C^*D_t + Bvarepsilon_t
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. The
reduced form residuals can be obtained from the above equation
via the relation: u_t =
A^{-1}Bvarepsilon_t, with variance-covariance matrix
Σ_U = A^{-1}BB'A^{-1'}.
If the estimation method is set to "scoring"
, the restrictions have to
be provided in explicit form:
vec(A) = R_a gamma_a + r_a
and/or
vec(B) = R_b gamma_b + r_b
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.
If the estimation method is set to "logLik"
, then 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π) + frac{T}{2}ln|A|^2 - frac{T}{2}ln|B|^2 - frac{T}{2}tr(A'B'^{-1}B^{-1}Atilde{Σ}_u)
If ‘start
’ is not set, then 0.1
is used as
starting values for the unknown coefficients. If the function is
called with ‘hessian = TRUE
’, the standard errors of the
coefficients are returned as list elements ‘Ase
’ and/or
‘Bse
’, where applicable.
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 chi^2(nr - 2K^2 - frac{1}{2}K(K + 1)), where nr is equal to the number of restrictions.
A list of class ‘svarest
’ with the following elements is
returned:
A |
If A- or AB-model, the matrix of estimated coeffiecients. |
Ase |
If ‘hessian = TRUE ’, the standard errors of
‘A ’, otherwise a null-matrix is returned. |
B |
If A- or AB-model, the matrix of estimated coeffiecients. |
Bse |
If ‘hessian = TRUE ’, the standard errors of
‘B ’, otherwise a null-matrix is returned. |
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 ‘code{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 ’. |
call |
The call to SVAR() . |
Bernhard Pfaff
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.
data(Canada) var.2c <- VAR(Canada, p = 2, type = "const") ## Estimation method scoring Ra <- matrix(0, nrow = 16, ncol = 5) Ra[1, 1] <- 1 Ra[4, 2] <- 1 Ra[6, 3] <- 1 Ra[11, 4] <- 1 Ra[16, 5] <- 1 ra <- rep(0, 16) SVAR(x = var.2c, estmethod = "scoring", Ra = Ra, Rb = NULL, ra = ra, rb = NULL, lrtest = TRUE, start = abs(rnorm(5)), max.iter = 100, maxls = 1000, conv.crit = 1.0e-8) ## Estimation Method logLik amat <- diag(4) diag(amat) <- NA amat[2, 1] <- NA amat[4, 1] <- NA SVAR(var.2c, estmethod = "logLik", Amat = amat, Bmat = NULL, hessian = TRUE, method="BFGS")