id.dc {svars} | R Documentation |
Independence-based identification of SVAR models build on distance covariances (DC) statistic
Description
Given an estimated VAR model, this function applies independence-based identification for the structural impact matrix B of the corresponding SVAR model
y_t=c_t+A_1 y_{t-1}+...+A_p y_{t-p}+u_t =c_t+A_1 y_{t-1}+...+A_p y_{t-p}+B \epsilon_t.
Matrix B corresponds to the unique decomposition of the least squares covariance matrix \Sigma_u=B B'
if the vector of structural shocks \epsilon_t
contains at most one Gaussian shock (Comon, 1994).
A nonparametric dependence measure, the distance covariance (Szekely et al, 2007), determines least dependent structural shocks. The algorithm described in Matteson and Tsay (2013) is applied to calculate the matrix B.
Usage
id.dc(x, PIT = FALSE)
Arguments
x |
An object of class 'vars', 'vec2var', 'nlVar'. Estimated VAR object |
PIT |
Logical. If PIT='TRUE', the distribution and density of the independent components are estimated using gaussian kernel density estimates |
Value
A list of class "svars" with elements
B |
Estimated structural impact matrix B, i.e. unique decomposition of the covariance matrix of reduced form errors |
A_hat |
Estimated VAR parameter |
method |
Method applied for identification |
n |
Number of observations |
type |
Type of the VAR model, e.g. 'const' |
y |
Data matrix |
p |
Number of lags |
K |
Dimension of the VAR |
PIT |
Logical, if PIT is used |
VAR |
Estimated input VAR object |
References
Matteson, D. S. & Tsay, R. S., 2013. Independent Component Analysis via Distance Covariance, pre-print
Szekely, G. J.; Rizzo, M. L. & Bakirov, N. K., 2007. Measuring and testing dependence by correlation of distances Ann. Statist., 35, 2769-2794
Comon, P., 1994. Independent component analysis, A new concept?, Signal Processing, 36, 287-314
See Also
For alternative identification approaches see id.st
, id.garch
, id.cvm
, id.cv
or id.ngml
Examples
# data contains quarterly observations from 1965Q1 to 2008Q3
# x = output gap
# pi = inflation
# i = interest rates
set.seed(23211)
v1 <- vars::VAR(USA, lag.max = 10, ic = "AIC" )
x1 <- id.dc(v1)
summary(x1)
# switching columns according to sign pattern
x1$B <- x1$B[,c(3,2,1)]
x1$B[,3] <- x1$B[,3]*(-1)
# impulse response analysis
i1 <- irf(x1, n.ahead = 30)
plot(i1, scales = 'free_y')