id.cv | R Documentation |
Given an estimated VAR model, this function applies changes in volatility to identify 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 ε_t.
Matrix B corresponds to the decomposition of the pre-break covariance matrix Σ_1=B B'. The post-break covariance corresponds to Σ_2=BΛ B' where Λ is the estimated unconditional heteroskedasticity matrix.
id.cv( x, SB, SB2 = NULL, start = NULL, end = NULL, frequency = NULL, format = NULL, dateVector = NULL, max.iter = 50, crit = 0.001, restriction_matrix = NULL )
x |
An object of class 'vars', 'vec2var', 'nlVar'. Estimated VAR object |
SB |
Integer, vector or date character. The structural break is specified either by an integer (number of observations in the pre-break period), a vector of ts() frequencies if a ts object is used in the VAR or a date character. If a date character is provided, either a date vector containing the whole time line in the corresponding format (see examples) or common time parameters need to be provided |
SB2 |
Integer, vector or date character. Optional if the model should be estimated with two volatility regimes. The structural break is specified either by an integer (number of observations in the pre-break period), a vector of ts() frequencies if a ts object is used in the VAR or a date character. If a date character is provided, either a date vector containing the whole time line in the corresponding format (see examples) or common time parameters need to be provided |
start |
Character. Start of the time series (only if dateVector is empty) |
end |
Character. End of the time series (only if dateVector is empty) |
frequency |
Character. Frequency of the time series (only if dateVector is empty) |
format |
Character. Date format (only if dateVector is empty) |
dateVector |
Vector. Vector of time periods containing SB in corresponding format |
max.iter |
Integer. Number of maximum GLS iterations |
crit |
Numeric. Critical value for the precision of the GLS estimation |
restriction_matrix |
Matrix. A matrix containing presupposed entries for matrix B, NA if no restriction is imposed (entries to be estimated). Alternatively, a K^2*K^2 matrix can be passed, where ones on the diagonal designate unrestricted and zeros restricted coefficients. (as suggested in Luetkepohl, 2017, section 5.2.1). |
A list of class "svars" with elements
Lambda |
Estimated unconditional heteroscedasticity matrix Λ |
Lambda_SE |
Matrix of standard errors of Lambda |
B |
Estimated structural impact matrix B, i.e. unique decomposition of the covariance matrix of reduced form residuals |
B_SE |
Standard errors of matrix B |
n |
Number of observations |
Fish |
Observed Fisher information matrix |
Lik |
Function value of likelihood |
wald_statistic |
Results of sequential Wald-type identification test on equal eigenvalues as described in Luetkepohl et. al. (2021). In case of more than two regimes, pairwise Wald-type tests of equal diagonal elements in the Lambda matrices are performed. |
iteration |
Number of GLS estimations |
method |
Method applied for identification |
SB |
Structural break (number of observations) |
A_hat |
Estimated VAR parameter via GLS |
type |
Type of the VAR model, e.g. 'const' |
SBcharacter |
Structural break (date; if provided in function arguments) |
restrictions |
Number of specified restrictions |
restriction_matrix |
Specified restriction matrix |
y |
Data matrix |
p |
Number of lags |
K |
Dimension of the VAR |
VAR |
Estimated input VAR object |
Rigobon, R., 2003. Identification through Heteroskedasticity. The Review of Economics and Statistics, 85, 777-792.
Herwartz, H. & Ploedt, M., 2016. Simulation Evidence on Theory-based and Statistical Identification under Volatility Breaks. Oxford Bulletin of Economics and Statistics, 78, 94-112.
Luetkepohl, H. & Meitz, M. & Netsunajev, A. & and Saikkonen, P., 2021. Testing identification via heteroskedasticity in structural vector autoregressive models. Econometrics Journal, 24, 1-22.
For alternative identification approaches see id.st
, id.garch
, id.cvm
, id.dc
or id.ngml
#' # data contains quartlery observations from 1965Q1 to 2008Q2 # assumed structural break in 1979Q3 # x = output gap # pi = inflation # i = interest rates set.seed(23211) v1 <- vars::VAR(USA, lag.max = 10, ic = "AIC" ) x1 <- id.cv(v1, SB = 59) summary(x1) # switching columns according to sign patter 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') # Restrictions # Assuming that the interest rate doesn't influence the output gap on impact restMat <- matrix(rep(NA, 9), ncol = 3) restMat[1,3] <- 0 x2 <- id.cv(v1, SB = 59, restriction_matrix = restMat) summary(x2) # In alternative Form restMat <- diag(rep(1,9)) restMat[7,7]= 0 x2 <- id.cv(v1, SB = 59, restriction_matrix = restMat) summary(x2) #Structural brake via Dates # given that time series vector with dates is available dateVector = seq(as.Date("1965/1/1"), as.Date("2008/7/1"), "quarter") x3 <- id.cv(v1, SB = "1979-07-01", format = "%Y-%m-%d", dateVector = dateVector) summary(x3) # or pass sequence arguments directly x4 <- id.cv(v1, SB = "1979-07-01", format = "%Y-%m-%d", start = "1965-01-01", end = "2008-07-01", frequency = "quarter") summary(x4) # or provide ts date format (For quarterly, monthly, weekly and daily frequencies only) x5 <- id.cv(v1, SB = c(1979, 3)) summary(x5) #-----# Example with three covariance regimes x6 <- id.cv(v1, SB = 59, SB2 = 110) summary(x6)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.