Hi Houtan,
We want to add a "predetermined_variables" keyword that let people use predetermined variables at the current period.
The problem is the following: currently in Dynare, variables decided at date "t" must be declared with a "t" subscript.
The typical case is for capital stock: currently in Dynare, it must be declared using a beginning-of-period basis, which gives the following law of motion:
k = i + (1-delta)*k(-1)
However, some people want to have it on a end-of-period basis, which would look like:
k(+1) = i + (1-delta)*k
For the latter case, the user would then just write at the beginning of the MOD file:
predetermined_variables k;
The idea is that the first law of motion should be strictly equivalent to the second associated to the new keyword.
The algorithm is very simple: the preprocessor should simply lag the variables declared as predetermined_variables by one period.
I think this should consist in a new substitution pass, which would take place before all the existing substitution passes (expectation operator + Leads/lags). There is no need to create auxiliary variables; just lagging the corresponding variables by one and creating the new corresponding expressions is enough.
During the parsing, we should take care that variables declared as predetermined_variables had been previously declared as endogenous in a var statement.
The preprocessor should add a list "M_.predetermined_variables" in the generated M-file, for use by MATLAB routines.
We need also to thing about the consequences for estimation and which observation period to use when a predetermined_variable is observed, but this is not something to be done from within the preprocessor, so you are not concerned.
If possible, it would be great if this feature was implemented before you come to Paris.
Don't hesitate to ask for more details.
Best,
Beginning of period and end of period basis are inverted in Sebastien's message.
Best
Michel Juillard
On Nov 4, 2009, at 17:09, Sébastien Villemot sebastien.villemot@ens.fr wrote:
Hi Houtan,
We want to add a "predetermined_variables" keyword that let people use predetermined variables at the current period.
The problem is the following: currently in Dynare, variables decided at date "t" must be declared with a "t" subscript.
The typical case is for capital stock: currently in Dynare, it must be declared using a beginning-of-period basis, which gives the following law of motion:
k = i + (1-delta)*k(-1)
However, some people want to have it on a end-of-period basis, which would look like:
k(+1) = i + (1-delta)*k
For the latter case, the user would then just write at the beginning of the MOD file:
predetermined_variables k;
The idea is that the first law of motion should be strictly equivalent to the second associated to the new keyword.
The algorithm is very simple: the preprocessor should simply lag the variables declared as predetermined_variables by one period.
I think this should consist in a new substitution pass, which would take place before all the existing substitution passes (expectation operator + Leads/lags). There is no need to create auxiliary variables; just lagging the corresponding variables by one and creating the new corresponding expressions is enough.
During the parsing, we should take care that variables declared as predetermined_variables had been previously declared as endogenous in a var statement.
The preprocessor should add a list "M_.predetermined_variables" in the generated M-file, for use by MATLAB routines.
We need also to thing about the consequences for estimation and which observation period to use when a predetermined_variable is observed, but this is not something to be done from within the preprocessor, so you are not concerned.
If possible, it would be great if this feature was implemented before you come to Paris.
Don't hesitate to ask for more details.
Best,
-- Sébastien Villemot
Dev mailing list Dev@dynare.org http://www.dynare.org/cgi-bin/mailman/listinfo/dev
So, just to be clear, the preprocessor should now lead the variables declared to be of type predetermined_variables by one period?
Best, Houtan
On Wed, Nov 4, 2009 at 11:33 AM, Michel Juillard michel.juillard@ens.frwrote:
Beginning of period and end of period basis are inverted in Sebastien's message.
Best
Michel Juillard
On Nov 4, 2009, at 17:09, Sébastien Villemot sebastien.villemot@ens.fr wrote:
Hi Houtan,
We want to add a "predetermined_variables" keyword that let people use predetermined variables at the current period.
The problem is the following: currently in Dynare, variables decided at date "t" must be declared with a "t" subscript.
The typical case is for capital stock: currently in Dynare, it must be declared using a beginning-of-period basis, which gives the following law of motion:
k = i + (1-delta)*k(-1)
However, some people want to have it on a end-of-period basis, which would look like:
k(+1) = i + (1-delta)*k
For the latter case, the user would then just write at the beginning of the MOD file:
predetermined_variables k;
The idea is that the first law of motion should be strictly equivalent to the second associated to the new keyword.
The algorithm is very simple: the preprocessor should simply lag the variables declared as predetermined_variables by one period.
I think this should consist in a new substitution pass, which would take place before all the existing substitution passes (expectation operator + Leads/lags). There is no need to create auxiliary variables; just lagging the corresponding variables by one and creating the new corresponding expressions is enough.
During the parsing, we should take care that variables declared as predetermined_variables had been previously declared as endogenous in a var statement.
The preprocessor should add a list "M_.predetermined_variables" in the generated M-file, for use by MATLAB routines.
We need also to thing about the consequences for estimation and which observation period to use when a predetermined_variable is observed, but this is not something to be done from within the preprocessor, so you are not concerned.
If possible, it would be great if this feature was implemented before you come to Paris.
Don't hesitate to ask for more details.
Best,
-- Sébastien Villemot
Dev mailing list Dev@dynare.org http://www.dynare.org/cgi-bin/mailman/listinfo/dev
Dev mailing list Dev@dynare.org http://www.dynare.org/cgi-bin/mailman/listinfo/dev
No, the predetermined_variables should be lagged by one period.
If k is capital on end of period basis, we write (as usual in Dynare)
k_t = (1-delta)*k_{t-1} + i_t
if kk is capital on a beginning of basis, we have kk_t = k_{t-1} capital at the end of period t-1 is the same as capital at the beginning of period t and therefore
kk_{t+1} = (1-delta)*kk_t + i_t
and kk_t is predetermined in period t (kk_t is affected by events or decisions taken in period t-1, but not by events or decisions taken in period t)
The internal representation of the model must follow the first convention, but we want to let user use the second convention when they write the model, but we need then to lag the predetermined variables to go from the second version to the first one.
Best
Michel
houtan wrote:
So, just to be clear, the preprocessor should now lead the variables declared to be of type predetermined_variables by one period?
Best, Houtan
On Wed, Nov 4, 2009 at 11:33 AM, Michel Juillard <michel.juillard@ens.fr mailto:michel.juillard@ens.fr> wrote:
Beginning of period and end of period basis are inverted in Sebastien's message. Best Michel Juillard On Nov 4, 2009, at 17:09, Sébastien Villemot <sebastien.villemot@ens.fr <mailto:sebastien.villemot@ens.fr>> wrote: Hi Houtan, We want to add a "predetermined_variables" keyword that let people use predetermined variables at the current period. The problem is the following: currently in Dynare, variables decided at date "t" must be declared with a "t" subscript. The typical case is for capital stock: currently in Dynare, it must be declared using a beginning-of-period basis, which gives the following law of motion: k = i + (1-delta)*k(-1) However, some people want to have it on a end-of-period basis, which would look like: k(+1) = i + (1-delta)*k For the latter case, the user would then just write at the beginning of the MOD file: predetermined_variables k; The idea is that the first law of motion should be strictly equivalent to the second associated to the new keyword. The algorithm is very simple: the preprocessor should simply lag the variables declared as predetermined_variables by one period. I think this should consist in a new substitution pass, which would take place before all the existing substitution passes (expectation operator + Leads/lags). There is no need to create auxiliary variables; just lagging the corresponding variables by one and creating the new corresponding expressions is enough. During the parsing, we should take care that variables declared as predetermined_variables had been previously declared as endogenous in a var statement. The preprocessor should add a list "M_.predetermined_variables" in the generated M-file, for use by MATLAB routines. We need also to thing about the consequences for estimation and which observation period to use when a predetermined_variable is observed, but this is not something to be done from within the preprocessor, so you are not concerned. If possible, it would be great if this feature was implemented before you come to Paris. Don't hesitate to ask for more details. Best, -- Sébastien Villemot _______________________________________________ Dev mailing list Dev@dynare.org <mailto:Dev@dynare.org> http://www.dynare.org/cgi-bin/mailman/listinfo/dev _______________________________________________ Dev mailing list Dev@dynare.org <mailto:Dev@dynare.org> http://www.dynare.org/cgi-bin/mailman/listinfo/dev
Dev mailing list Dev@dynare.org http://www.dynare.org/cgi-bin/mailman/listinfo/dev