id.cv: Identification of SVAR models based on Changes in volatility...

View source: R/id.cv.R

id.cvR Documentation

Identification of SVAR models based on Changes in volatility (CV)

Description

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.

Usage

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
)

Arguments

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).

Value

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

References

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.

See Also

For alternative identification approaches see id.st, id.garch, id.cvm, id.dc or id.ngml

Examples

#' # 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)


alexanderlange53/SVAR_Identification_Package documentation built on Feb. 2, 2023, 5:25 a.m.