Hours

Dear Johannes,

Sorry, I am afraid I could not understand your last answer. As I mention before, I am trying to get nonstationary hours and productivity data from this model. Then, I will estimate this simulated data using SVAR. Could you please explain your last answer slightly more and what I need to do? The other thing is that this model gives me negative values for these variables (h_nonstationary, y_h_nonstationary) but I need positive values since I will log the data when I estimate it in SVAR. So, I feel that I made a mistake somewhere or missing somethings? I would really appreciate if you have any suggestions.

Best
chapter.mod (2.05 KB)

Sorry, I was thinking about IRFS, not simulations. I guess you are looking for something like

[code]var c k y B h A y_h i w r g_A g_B;
varexo eps_a eps_b;

parameters delta psi alpha beta ;

% Parameter Values

beta = 0.95;
psi = 0.33;
alpha = 0.68;
delta = 0.05;

Model;

y = k(-1)^(1-alpha)*exp(eps_a+eps_b)^(alpha-1)h^alpha;
g_A=eps_a;
g_B=eps_b;
log(A)=log(A(-1)) + eps_a;
log(B)=log(B(-1)) + eps_b;
r = (1-alpha)
(y/k(-1))exp(eps_a+eps_b);
w= alpha
y/h;
c^(-1)= exp(eps_a(+1)eps_b(+1))^(-1)betac(+1)^(-1)(1+r(+1)-delta);
h^(1/psi)*B^(-1) = c^(-1)*w;
y_h = y/h;
c + k = y + (1-delta)*k(-1)*exp(eps_a+eps_b)^(-1);
i = y-c;

end;

steady_state_model;
A=1;
B=1;
r=(1/beta)-(1-delta);
y_k=r/(1-alpha);
k_y=(1-alpha)/r;
i_y=(1/y_k)delta;
c_y=1-i_y;
h= (alpha
1/c_y)^(psi/(1+psi));
k=((h^alpha)/y_k)^(1/alpha);
y=k^(1-alpha)h^alpha;
c=c_y
y;
i=i_yy;
w=alpha
(y/h);
y_h =y/h;
end;

shocks;
var eps_a; stderr 1;
var eps_b; stderr 1;
end;
resid(1);
steady;
check;

stoch_simul(order=1,periods=1000,drop=960) y h c w y_h i g_A g_B;

// Rebuild non-stationary time series by remultiplying with A_{t} and B_{t}

log_A_0=0; //Initialize Level of Technology at t=0;
log_B_0=0; //Initialize Level of Technology at t=0;
log_A(1,1)=log_A_0 ; //Level of Tech. after shock in period 1
log_B(1,1)=log_B_0; //Level of Tech. after shock in period 1

// reaccumulate the non-stationary level series

for ii=1:options_.periods
log_A(ii+1,1)=log_A(ii,1)+g_A(ii,1);
log_B(ii+1,1)=log_B(ii,1)+g_B(ii,1);;
y_nonstationary(ii+1,1)=y(ii,1)+log_A(ii,1)+log_B(ii,1);
h_nonstationary(ii+1,1)=h(ii,1)+log_B(ii,1);
c_nonstationary(ii+1,1)=c(ii,1)+log_A(ii,1)+log_B(ii,1);
w_nonstationary(ii+1,1)=w(ii,1)+log_A(ii,1)+log_B(ii,1);
y_h_nonstationary(ii+1,1)=y_h(ii,1)+log_A(ii,1)+log_B(ii,1);
end
[/code]

Dear Johannes, yes. this is what I look for but this model still gives me negative values. When I try to estimate this data in SVAR, it gives me this error in below:

Error using bquah (line 65)
Problem with identifying assumptions

So, I thought this error is because of the negative values.

  1. Do you think I made a mistake when I stationarized the model or the problem comes from another thing?
    In addition, I do not know the reason but drop function does not work in my model. Is there any way to fix that?
    Best

You need to provide more detailed information. What do you mean with “negative values” and what does it mean when you write

[quote]Error using bquah (line 65)
Problem with identifying assumptions
[/quote]

As this is not a Dynare function I am not familiar with what you are doing.

Dear Johannes,
Regarding the negatives values, the simulated data has negatives values that I obtained from my model in Dynare such as, y_h_nonstationary and h_nonstationary…
-4.97906650373955
-4.17515167608243
-5.79239232538625
-5.29103086176507
-7.04016453180724
-5.39007616179570
-4.04444902163077
-6.79548020288710
-6.55033359569942
-8.33860835239468

I thought that this simulated data does not work in Matlab since it has negatives values and it gives me that error in below:

Error using bquah (line 65)
Problem with identifying assumptions

I mean I have a SVAR model using long run restrictions in Matlab. I am running my simulated data in this model and receiving this error in above. in this SVAR model, I need to log the data but I think I cannot log the data which includes negatives values. so, it gave me this error.

I am trying to figure out the problem now. I hope you can give me some suggestions.
Best

  1. If you want log data, then you should model and simulate log data.
  2. With linear approximations, you cannot prevent negative values. But you can make them a lot less likely. You currently have a shock process with a huge standard deviation. No wonder you go over any bound.
  3. I don’t know which problem arises with your identifying assumption.

Dear Johannes,

  1. You meant I need to work with log linearize model. I did not linearize my model but I want Dynare to log linearize it (Thats why I used exp()). In the paper that I am following, they did: “we obtain a system of rational expectations equations that characterizes the equilibrium dynamics of the endogenous variables in the neighborhood of the steady state. It can be solved by standard log-linearization methods, e.g., King, Plosser, and Rebelo (1988), or Sims (2002)…” I thought this is the same what I did.

  2. stoch_simul(order=1,periods=1000,drop=960)— Drop function does not work in dynare. Am I missing something? (I only need 40 years simulated data to estimate it in SVAR. Then, obtain IRFs.)

I would really appreciate if you give me some suggestions.
Best

  1. But you did not use the exp() for most of the variables like y.
  2. The drop option works exactly as “advertised” in the manual:

[quote]Number of points (burnin) dropped at the beginning of simulation before computing
the summary statistics. Note that this option does not affect the simulated series
stored in oo .endo simul and the workspace. Here, no periods are dropped.[/quote]

Dear Johannes,

Thanks for that. I can use exp(). However, I also read in guideline in below:

Remark 17 (Dynare’s loglinear option)
While Dynare by default only computes linearizations, it also has the option loglinear
in order to perform log-linearizations at order=1. When using this option, all displayed
results will be for the logged variables, not the original ones.

So, this is a standard log linearization methods. However, after I used this function (loglinear) in my model, the Dynare gave me this errow in below:

You are attempting to simulate/estimate a loglinear approximation of a model, but
the steady state level of the following variables is not strictly positive:

  • g_A (00)
  • g_B (00)
    Undefined function or variable ‘isestimation’.

Error in resol (line 121)
if isestimation()

Error in stoch_simul (line 88)
[oo_.dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);

Error in modfile (line 161)
info = stoch_simul(var_list_);

Error in dynare (line 180)
evalin(‘base’,fname) ;

My question is that I can only use this option when I estimate the model? or if it is okay using it if I simulate the model? If yes for the later one, I would really appreciate if you could give me some suggestion to correct it.

Best
modfile.mod (2.1 KB)

No, you can use that option also for simulation, but it will log ALL variables. Thus, you must not have any variable with 0 or negative steady state. Assuring that can be cumbersome. See the examples at github.com/DynareTeam/dynare/tree/master/tests/loglinear