Skip to contents

Article explaining the mathematics behind the two key fevdid functions:

Structural Vector Autoregression (SVAR)

A SVAR(p) model with pp lags, for a vector of variables yty_t, assumes the data generating process is accurately represented as, 1

B0yt=B1yt1+...+Bpytp+wt B_0 y_t = B_1 y_{t-1} + ... + B_p y_{t-p} + w_t

where wtw_t are mean zero structural shocks, with a serially uncorrelated diagonal covariance matrix of Σw=E[wtwt]\Sigma_w = E[w_t w_t],

and BiB_i are matrices of coefficients.

Empirically, however, only the following AiA_i matrices of coefficients and vtv_t vector of reduced form residuals are observed,

$$ y_t = \underbrace{B_0^{-1}B_1}_{A_1} y_{t-1} + ... + \underbrace{B_0^{-1}B_p}_{A_p} y_{t-p} + \underbrace{B_0^{-1} w_t}_{u_t} \\ y_t = A_1 y_{t-1} + ... + A_p y_{t-p} + u_t $$

Identification Problem

We observe reduced form residuals, vtv_t, but want the structural shocks, wtw_t.

ut=B01wt u_t = B_0^{-1} w_t

At this point, WLOG, assume that Σw=I\Sigma_w = I.

This implies that Σu=B01B01\Sigma_u = B_0^{-1} B_0^{-1^\prime}.

In order to identify the structural shocks, we simply need to know the structural impact matrix, B0B_0, or equivalently, the inverse B01B_0^{-1}.

Impulse Response Functions (IRF) and Forecast Errors

It will be useful for the max share method to show the impulse response and forecast error definitions

IRFs

IRFs give the responses of each variable in yty_t for any horizon ii to a one-time impulse at time tt to each structural shock, wtw_t, Θiyt+iwti=0,1,2,...,H \Theta_i \equiv \frac{\partial y_{t+i}}{\partial w_t} \hspace{1cm} i = 0, 1, 2, ..., H

The IRF for the response of variable kk to an impulse for structural shock jj at horizon ii is denoted, θkj,iyk,t+iwjt \theta_{kj,i} \equiv \frac{\partial y_{k, t+i}}{\partial w_{jt}}

Let the impulse responses to the reduced form residuals be similarily denoted as, $$ \Phi_i \equiv \frac{\partial y_{t+i}}{\partial u_t} \hspace{1cm} i = 0, 1, 2, ..., H \\ \phi_{kj,i} \equiv \frac{\partial y_{k, t+i}}{\partial u_{jt}} $$

And we can map between the two using the B0B_0 impact matrix, $$ \Theta_i = \Phi_i B_0^{-1} \\ \theta_{kj,i} = [\Phi_i B_0^{-1}]_{kj} $$

Letting Φk*,i\Phi_{k*,i} denote the kkth row of Φi\Phi_i and B0,*j1B_{0,*j}^{-1} denote the jjth column of B01B_0^{-1}, then

θkj,i=Φk*,iB0,*j1 \theta_{kj,i} = \Phi_{k*,i} B_{0,*j}^{-1}

Forecast Errors

Let Ft+hF_{t+h} denote hh-step ahead forecast errors, Ft+hyt+hyt+h|t F_{t+h} \equiv y_{t+h} - y_{t+h|t}

Which, for a VAR process, can be denoted in terms of the redcued form IRFs, Φi\Phi_i, Ft+h=i=0h1Φiut+hi=i=0h1ΦiB01wt+hi F_{t+h} = \sum_{i=0}^{h-1} \Phi_i u_{t+h-i} = \sum_{i=0}^{h-1} \Phi_i B_0^{-1} w_{t+h-i}

Forecast Error Variance (FEV)

The FEV, also known as the predicted mean squared error, is then calculated as $$ FEV_h \equiv E[F_{t+h}F_{t+h}^\prime] \\ = \sum_{i=0}^{h-1} \Phi_i \Sigma_u \Phi_i^\prime = \sum_{i=0}^{h-1} \Phi_i B_0^{-1} B_0^{-1^\prime} \Phi_i^\prime = \sum_{i=0}^{h-1} [\Phi_i B_0^{-1}] [\Phi_i B_0^{-1}]^\prime $$

The FEV for impulse jj contribution to variable kk is then denoted as, $$ FEV_{kj,h} = \sum_{i=0}^{h-1} [\Phi_i B_0^{-1}]_{jk} [\Phi_i B_0^{-1}]_{jk}^\prime \\ = \sum_{i=0}^{h-1} \Phi_{k*,i} B_{0,*j}^{-1} [\Phi_{k*,i} B_{0,*j}^{-1}]^\prime \\ = \sum_{i=0}^{h-1} \Phi_{k*,i} B_{0,*j}^{-1} B_{0,*j}^{-1\prime} \Phi_{k*,i}^\prime $$

Since Φk*,iB0,*j1\Phi_{k*,i} B_{0,*j}^{-1} is a single number (not a matrix), we can rearrange to $$ = \sum_{i=0}^{h-1} B_{0,*j}^{-1\prime} \Phi_{k*,i}^\prime \Phi_{k*,i} B_{0,*j}^{-1} \\ = B_{0,*j}^{-1\prime} \sum_{i=0}^{h-1}\left[\Phi_{k*,i}^\prime \Phi_{k*,i}\right] B_{0,*j}^{-1} $$

Max Share Identification Method - Time Domain

Pick a structural shock jj by choosing the weights for B0,*j1B_{0,*j}^{-1} that maximize the forecast error variance for the horizon in [h,h+][h^-, h^+]

Solve the maximization problem: maxB0,*j1hh+FEVkj,h \max_{B_{0,*j}^{-1}} \sum_{h^-}^{h^+} \text{FEV}_{kj,h}

This is equivalent to solving maxB0,*j1B0,*j1hh+i=0h1[Φk*,iΦk*,i]B0,*j1 \max_{B_{0,*j}^{-1}} B_{0,*j}^{-1\prime} \sum_{h^-}^{h^+} \sum_{i=0}^{h-1}\left[\Phi_{k*,i}^\prime \Phi_{k*,i}\right] B_{0,*j}^{-1}

Which is maximized when B0,*j1B_{0,*j}^{-1} is the eigenvector associated with the largest eigenvalue of the matrix hh+i=0h1[Φk*,iΦk*,i]\sum_{h^-}^{h^+} \sum_{i=0}^{h-1}\left[\Phi_{k*,i}^\prime \Phi_{k*,i}\right].

There’s a piece missing here, which is that B0,*j1B0,*j1B_{0,*j}^{-1}B_{0,*j}^{-1} can be decomposed into a Choleskey matrix and rotation matrix Q, then the maximization problem becomes picking a column of Q.

Max Share Identification Method - Frequency Domain

Pick a structural shock jj by choosing the weights for B0,*j1B_{0,*j}^{-1} that maximize the forecast error variance for the frequencies in [ω,ω+][\omega^-, \omega^+]

Solve the maximization problem: maxB0,*j1ωω+FEVkj,ωdω \max_{B_{0,*j}^{-1}} \int_{\omega^-}^{\omega^+} \text{FEV}_{kj,\omega} d\omega

This is equivalent to solving maxB0,*j1B0,*j1ωω+Φk*,ωΦk*,ωdωB0,*j1 \max_{B_{0,*j}^{-1}} B_{0,*j}^{-1\prime} \int_{\omega^-}^{\omega^+} \Phi_{k*,\omega}^\prime \Phi_{k*,\omega} \ d\omega \ B_{0,*j}^{-1}

where Φk*,ω\Phi_{k*,\omega} is the impulse response function for a specific frequency ω\omega. The next sections show how to calculate this value.

Solving for IRF in frequency space

Note: One approximate solution is to calculate the time domain IRF out to long horizon (say 1000 periods), then take the fourier transformation, keep only the frequencies you want, square the contributions, and maximize the real value portion.

Representing VAR(p) as a VAR(1)

First it’s easiest to work with the VAR(1) process instead of the VAR(p) 2

. . .

Yt=υ+AYt1+Ut Y_t = \upsilon + A Y_{t-1} + U_t

. . .

MA(\infty) Representation

Next, represent as a moving average. 3

. . .

yt=C(L)1υ+C(L)1ut y_t = C(L)^{-1} \upsilon + C(L)^{-1} u_t

where C(L)1i=0ϕiLiC(L)^{-1} \equiv \sum_{i=0}^{\infty} \phi_i L^i

. . .

Calculating the spectrum for an MA(\infty)

Now, we can calculate the spectrum using 4

. . .

sY(ω)=12πσ2C(eiω)C(eiω) s_Y(\omega) = \frac{1}{2\pi} \sigma^2 C(e^{-i\omega})C(e^{-i\omega})

The key here is that we end up getting to, C(eiω)=(IA1eiω)1 C(e^{-i\omega}) = (I - A_1 e^{-i\omega})^{-1}

which is essentially solving out for the entire path of IRFs by inverting, and making the Fourier transformation at the same time.

. . .


Resources

Hamilton, James D. Time Series Analsysis. Chapter 6: Spectral Analysis. Pg 152 - 172. In particular, page 154 for deriving the population spectrum for a MA(infinity) process.

Kilian, Lutz and Lutekepohl Helmut. Structural Vector Autoregressive Analysis. (2017). In particular,

  • Chapter 1: Introduction for SVAR notation.
  • Chapter 2: Vector Autoregressive Models. Pg 19 - . Specifically, page 25 for representing a VAR(p) process as a VAR(1) process.

Angeletos, George-Marios, Fabrice Collard, and Harris Dellas. (2020). “Businsess Cycle Anatomy”. American Economic Review, 110(10): 3030 - 3070. In particular, pages 3036 - 3037 for derivations.