Interface for SVAR exclusion restrictions
Model
![\[
y_t' A_0 = \sum_{i=1}^r y_{t-i} A_i + z_t' C + \epsilon_t
\] \[
y_t' A_0 = \sum_{i=1}^r y_{t-i} A_i + z_t' C + \epsilon_t
\]](/DynareWiki/SvarExclusionInterface?action=AttachFile&do=get&target=latex_f51c6ddc83cc4bdb5550002505f68bd54e00aeff_p1.png)
where yt is a vector of n endogenous variables, r is the maximum lag length, z a vector of m exogenous variables (only a constant for the time being).
Note that each equation corresponds to the columns of Ai, i=0,...,r.
The model can be written in a more compact form
![\[
y_t' A_0 = x_t A_+ + \epsilon_t
\] \[
y_t' A_0 = x_t A_+ + \epsilon_t
\]](/DynareWiki/SvarExclusionInterface?action=AttachFile&do=get&target=latex_1f948ac5a6e51de98e8f674f47b2e869cebbac4e_p1.png)
where
![\[
x_t = \left[\begin{array}{cccc}y_{t-1}' & \ldots & y_{t-r}' & z_t'\end{array}\right]\;\;\;
A_+ = \left[\begin{array}{c}A_1\\ \vdots \\ A_t\\ C\end{array}\right]
\] \[
x_t = \left[\begin{array}{cccc}y_{t-1}' & \ldots & y_{t-r}' & z_t'\end{array}\right]\;\;\;
A_+ = \left[\begin{array}{c}A_1\\ \vdots \\ A_t\\ C\end{array}\right]
\]](/DynareWiki/SvarExclusionInterface?action=AttachFile&do=get&target=latex_1f867d73de1f1e146217f5a86ed01f6684938e5e_p1.png)
Exculsion Restrictions
Restrictions are defined with Qi and Ri matrices for each column of A0 and A+ respectively.
Q and R matrices are made of 0 and 1 such that
![\[
Q_i A_{0,i} = 0\;\;\;R_i A_{+,i} = 0
\] \[
Q_i A_{0,i} = 0\;\;\;R_i A_{+,i} = 0
\]](/DynareWiki/SvarExclusionInterface?action=AttachFile&do=get&target=latex_6e8d7014565eb744c5d7bfcce9f6399e1e9af92a_p1.png)
Qi matrices have n columns and as many rows as there are restrictions.
Ri matrices have k=r*n+1 columns and as many rows as there are restrictions.
Dynare implementation
The Qi and Ri matrices are stored in 2 cell arrays, with as many elements as equations:
Qi = cell(n); Ri = cell(n);
Each element of the cell arrays is a matrix with as many rows as there are restrictions on the equation and as many columns as there are coefficients in A0 and A+ respectively.
For each exclusion of variable yt,j in equation i
Qi{i}(h,j) = 1;where h is the number of the restriction in equation i in A0
For each exclusion of variable yt-p,j in equation i
Ri{i}(h,(p-1)*n+j) = 1;where h is the number of the restriction in equation i in A+
For general linear restrictions on the coefficients, the non-zero elements of the matrices in Qi and Ri are not necessarily equal to 1.
Excluding the constant in equation i requires setting
Ri{i}(h,r*n+1) = 1;The preprocessor creates options_.ms.Qi and options_.ms.Ri
The Matlab function swz/identification/exclusions.m handles these options, except when upper_cholesky or lower_cholesky are specified. It contains the following code:
%make local copy in order not to call structure fields inside a loop
Qi = options_.ms.Qi;
Ri = options_.ms.Ri;
for n=1:nvar
Ui{n" = null(Qi(:,:,n));
Vi{n} = null(Ri(:,:,n));
n0(n) = size(Ui{n},2);
np(n) = size(Vi{n},2);
endixmCoPres = NaN; }}}
and makes sure that the matrices have the right dimensions.