Integrating LTV rule into Iacoviello 05

Hi there,
we are working on adding an ltv rule to the standart iacoviello 2005 housing model (fundacionbancosantander.com/ … ALLEGO.pdf
We were wondering perhaps we implemented the ltv rule completly wrong. What we have done is we replaced the “m2” parametre with a variable we called Mhat in the model section and we wrote an additional the equation Mhat = mss - mYYhat - mQqhat where mss is the steady state value which takes the old m2 value. Also we have altered the original taylor rule in the paper from Rhat = (1-rR)(1+rpi)pihat(-1)+rY(1-rR)Yhat(-1)+rRRhat(-1)+eRhat to Rhat = (1-rR)(1+rpi)pihat(-1)+rY(1-rR)Yhat(-1)+rRRhat(-1)+(1-rR)rQqhat+eRhat in order to account for the user cost deviation qhat. We implemented both of these equations in the light of the equations given in the papers mentioned and cited above yet we are failling to get sensible results. Can any one help us, give us a hint or at least lead us in the right direction to what our problem is ? Thank you before hand for anyone interested…
Iacoviello_mss.mod (5.3 KB)

Okay now we think that we need to place all the parametres in the defined parametres sections (of the attached code on the previous message) that are a function of mss to the model section and switch all the “mss” on these equations to Mhat. So the parametres:
gammah,
omega,
qh2toY,
b2toY,
c2toY,
c1toY,
qh1toY,
htoh1,
h2toh1,
ItoY,
jota,
jota2,

will be instead defined in the var section and should probably renamed as

gammahhat,
omegahat,
qh2toYhat,
b2toYhat,
c2toYhat,
c1toYhat,
qh1toYhat,
htoh1hat,
h2toh1hat,
ItoYhat,
jotahat,
jota2hat,

and be inthe form of equation under the model section as this:

gammahhat = beta2+Mhat*(beta-beta2);
omegahat = (beta2-Mhatbeta2)/(1-Mhatbeta);
qh2toYhat = js2/(1-beta2-Mhat(beta-beta2-j*(1-beta)));
b2toYhat = jbetaMhat/(1-beta2-Mhat*(beta-beta2)+jMhat(1-beta))s2 ;
c2toYhat = s2
(1-beta2-Mhat*(beta-beta2))/(1-beta2-Mhat*(beta-beta2)+jMhat(1-beta));
c1toYhat = s1+(1-beta)(mqhtoY+Mhat*qh2toYhat) ;
qh1toYhat =j/(1-beta)*c1toYhat;
htoh1hat = qhtoY/qh1toYhat;
h2toh1hat = qh2toYhat/qh1toYhat;
ItoYhat = 1-ctoY-c1toYhat-c2toYhat;
jotahat = (1-beta)*htoh1hat;
jota2hat = (1-beta)*h2toh1hat;

which will be an additional 12 variables and 12 equations.

Does this make sense or are we rowing against the current ?

thank you…

a final update on our problem:
now we are getting the error message

Error: Impossible to find the steady state. Either the model doesn’t have a steady state, there are an infinity of steady states, or the quess values are too far from the solution

Can this be a simple parametre problem which we can try to solve by trying different parametre values based on trial by error (or any suggestions ?)

Or it is just not possible to solve this system by the simple code we have and that we need some extra code to calculate the steady states ?

thank you…

to be more specific we are getting an error with a lots of division by zero error and this specific error

numerical initial values or parameters incompatible with the following equations 24 25 please check for example i) if all parameters occuring in these equations are defined ii)that no division by an endogenous variable initialized to 0 occurs

these equations I believe are
htoh1hat = qhtoY/qh1toYhat
h2toh1hat = qh2toYhat/qh1toYhat

I am attaching the final code we are using
(I also wanted to attach a .doc file that had the print screened image of the error message we are getting (because octave doesnt allow me to copy paste) but I am not allow to upload it any suggestions?)

thank you…
Iacoviello_mss.mod (5.51 KB)

Regarding your parametrization: you have to ask yourself whether your deep parameters are fixed, given the steady state value mss (e.g. the people’s time preference rate in steady state, where the LTV is 50% is 4%) or whether they change in each period depending on the curent realization of mss (e.g. if Mhat increases, people suddendly become more impatient and the time preference rate increases). The latter is rather uncommon as deep parameters are typically treated as structurally invariant, while this approach actually makes them endogenous variables.

Regarding your error: In those equations, you divide by qh1toYhat. If you did not provide an initial value in an initval-block, they are set to 0 and you divide by 0. Generally, provide better initial values. Moreover, if you keep on using the parameters as endogenous variables and you want to estimate your model, use a steady state file or the # operator, because only then the parameters are updated every iteration. Search the forum for this issue.

Regarding doc-files: use simple txt-files or upload them as zip-files.

wonderful