Differences between revisions 3 and 6 (spanning 3 versions)
Revision 3 as of 2009-06-23 14:42:31
Size: 2090
Editor: PabloWinant
Comment:
Revision 6 as of 2010-11-25 13:19:50
Size: 17
Editor: PabloWinant
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Portfolio models =
Line 3: Line 2:
This page describes the changes and additions that are necessary to handle portfolio allocation problems in Dynare.

== Preprocessor ==

=== To flag the portfolio equation in the modfile ===

 * Add general labels to equations. Proposed syntax:
{{{
[key=value,key=value,...];
}}}
 * Internal representation in the preprocessor: a vector of pairs of two lists (list of keys, list of value)
 * Representation in Matlab: for each keyname, a cell array of values with as many entries as number of equations

=== To trigger third order derivatives ===

Portfolios computations involve third order derivative when finding the steady state even if no simulation is to be made.

Currently, the preprocessor computes third derivatives ( {{{g3}}} ) if {{{order=3}}} option is passed to {{{stoch_simul}}} and the processing in matlab fails.

{{{stoch_simul}}} may eventually be modfied in order to allow for simulations with portfolios. In this case, it would not be the same as the so-called "third-order" approximation. For this reason, there should be another option somewhere triggering computations of {{{g3}}}

* One proposition : add an option to steady : ({{{portfolios=true}}}) which would imply ({{{order=3}}})

* Another (cleaner) : differentiate runtime option {{{order=...}}} from preprocessing time option {{{compute_order=...}}}

* Currently : there is a patch that allows instruction {{{steady(order=3)}}} even if no {{{stoch_simul}}} instruction is present.

=== Initialize {{{g3}}} ===

Currently, {{{g3}}} is computed by :
 * {{{g3 = sparse([],[],[],nrows,ncols,maxsize)}}}
 * each element is then written in {{{g3}}}

It is very time consuming.

Another method consists in defining a vector with non zero-content, then to expand it to a sparse matrix :
 * {{{v3 = zeros(n_non_zero_elements, 3)}}}
 * define {{{k}}}th non zero element with index {{{(i,j)}}} and value {{{v}}} by : {{{v3(k,i,j) = v;}}}
 * {{{g3 = sparse(v3(1,:),v3(2,:),v3(3,:),nrows,ncols)}}}

There is a patch and a test for it waiting for review.
To be written

To be written

DynareWiki: PortfolioModels (last edited 2010-11-25 13:19:50 by PabloWinant)