Hansen[1985]: Standard deviations of marco variables

Dear all,

enlosed there is the .mod file for Hansen’s[1985] RBC model. Unfortunately, I get counterintuitive results. All the standard deviations are smaller than expected given the set of parameters:

For consumption: 0.0048 instead of about 0.5,
For investment: 0.0183 instead of about 5.5.

Furthermore, the difference between the standard deviations of consumption and investment are pretty small. Do you have any ideas for the reasons for these results.

Many thanks for your help.

Kind regards

Hansen.mod (1.23 KB)

I have attached a mod file replicating the moments of table 1 in Hansen (1985) : “Indivisible labor and the business cycle”. Contrary to Hansen, I compute the theoritical moments. This explains that I do not exactly obtain the same results.
Hansen85.mod (3.55 KB)

Dear all,

I have a question concering the output equation. You were using k lagged for one period, but Hansen (1985) defined the output as y=lambda*(k^theta)*(h^(1-theta)) that leads to an autocorrelation of all variables of |1,00|. Could you explain why you used the lagged term?

Thank you very much!
Kind regards,

That is due to Dynare’s end of the period stock notation. See the manual.

Thank you very much!


I have one further question: why is the shock term (4) (Hansen, 1985, p. 313) transformed to lambda = lambda(-1)*gamma+e?

Thank you,

Because that is the timing convention. You define lambda at time t using the exogenous shocks at time t. The original formula used the exogenous shock at time t+1.

Hi everyone,

I am currently trying to replicate Hansen’s paper, but I do not understand, why we need to take the logarithm in the shock term.
I saw that this was done in StephaneLhuissier’s .mod-file. If the logarithm is not taken Dynare cannot find a solution. Could someone explain why? Thank you very much,


There are two ways. You can either use

Y = LAMBDA*K(-1)^(theta)*H^(1-theta); log(LAMBDA) = gam*log(LAMBDA(-1)) + EPS;
or redefine LAMBDA=log(LAMBDA) and use

Y = exp(LAMBDA)*K(-1)^(theta)*H^(1-theta); LAMBDA = gam*LAMBDA(-1) + EPS;

Both yield essentially the same lognormal process (except for a different steady state).

A replication file is now available at github.com/JohannesPfeifer/DSGE_mod