Differences between revisions 1 and 2
 ⇤ ← Revision 1 as of 2009-12-01 11:28:50 → Size: 2635 Editor: MichelJuillard Comment: ← Revision 2 as of 2009-12-01 14:16:25 → ⇥ Size: 2635 Editor: MichelJuillard Comment: Deletions are marked like this. Additions are marked like this. Line 66: Line 66: In Matlab, we need a function {{{swz/identification/exclusions.m}}}, similar of {{{swz/identification/upper_choleski.m}}} that is called when exclusions are specified instead of {{{upper_choleski}}} or {{{lower_choleski}}} In Matlab, we need a function {{{swz/identification/exclusions.m}}}, similar of {{{swz/identification/upper_cholesky.m}}} that is called when exclusions are specified instead of {{{upper_cholesky}}} or {{{lower_cholesky}}} Line 83: Line 83: It is also necessary to write {{{swz/identification/lower_choleski.m}}} It is also necessary to write {{{swz/identification/lower_cholesky.m}}}

# Interface for SVAR exculsion restrictions

## Model

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

where

## Exculsion Restrictions

Restricitions 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

Qi matrices have n columns and as many rows as there are restrictions.

Ri matrices have k=r*n+m columns and as many rows as there are restrictions.

## Dynare implementation

The Qi and Ri matrices are stored in 3-dimensional arrays: Qi' and Ri'

Qi = zeros(n,n,n);
Ri = zeros(k,k,n);

For each exculsion of variable yt,j in equation i

Qi(h,j,i) = 1;

where h is the number of the restriction in equation i in A0

For each exculsion of variable yt-p,j in equation i

Ri(h,(p-2)*n+j,i) = 1;

where h is the number of the restriction in equation i in A+

The above should be implemented in the preprocessor that should create options_.ms.Qi and options_.ms.Ri [these names may collide with restriction on Markov processes. We will need to check later]

In Matlab, we need a function swz/identification/exclusions.m, similar of swz/identification/upper_cholesky.m that is called when exclusions are specified instead of upper_cholesky or lower_cholesky

The only code needed in this function is

%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);
end

ixmCoPres = NaN; }}}

It is also necessary to write swz/identification/lower_cholesky.m

DynareWiki: SvarExclusionInterface (last edited 2011-11-06 14:59:48 by MichelJuillard)