Learn R Programming

pvars (version 1.1.1)

pid.chol: Recursive identification of panel SVAR models via Cholesky decomposition

Description

Given an estimated panel of VAR models, this function uses the Cholesky decomposition to identify the structural impact matrix \(B_i\) of the corresponding SVAR model $$y_{it} = c_{it} + A_{i1} y_{i,t-1} + ... + A_{i,p_i} y_{i,t-p_i} + u_{it}$$ $$ = c_{it} + A_{i1} y_{i,t-1} + ... + A_{i,p_i} y_{i,t-p_i} + B_i \epsilon_{it}.$$ Matrix \(B_i\) corresponds to the decomposition of the least squares covariance matrix \(\Sigma_{u,i} = B_i B_i'\).

Usage

pid.chol(x, order_k = NULL)

Value

List of class 'pid' with elements:

A

Matrix. The lined-up coefficient matrices \(A_j, j=1,\ldots,p\) for the lagged variables in the panel VAR.

B

Matrix. Mean group of the estimated structural impact matrices \(B_i\), i.e. the unique decomposition of the covariance matrices of reduced-form errors.

L.varx

List of 'varx' objects for the individual estimation results to which the structural impact matrices \(B_i\) have been added.

args_pid

List of characters and integers indicating the identification methods and specifications that have been used.

args_pvarx

List of characters and integers indicating the estimator and specifications that have been used.

Arguments

x

An object of class 'pvarx' or a list of VAR objects that will be coerced to 'varx'. Estimated panel of VAR objects.

order_k

Vector. Vector of characters or integers specifying the assumed structure of the recursive causality. Change the causal ordering in the instantaneous effects without permuting variables and re-estimating the VAR model.

References

Luetkepohl, H. (2005): New Introduction to Multiple Time Series Analysis, Springer, 2nd ed.

Sims, C. A. (2008): "Macroeconomics and Reality", Econometrica, 48, pp. 1-48.

See Also

Other panel identification functions: pid.cvm(), pid.dc(), pid.grt(), pid.iv()

Examples

Run this code
data("PCAP")
names_k = c("g", "k", "l", "y")  # variable names
names_i = levels(PCAP$id_i)      # country names
L.data  = sapply(names_i, FUN=function(i) 
  ts(PCAP[PCAP$id_i==i, names_k], start=1960, end=2019, frequency=1), 
  simplify=FALSE)

# estimate and identify panel SVAR #
L.vars = lapply(L.data, FUN=function(x) vars::VAR(x, p=2, type="both"))
R.pid  = pid.chol(L.vars, order_k=names_k)

Run the code above in your browser using DataLab