
var x Q q rd R n k f w ss sc vABS d i c gdp share_shadow leverage
    eps sab sgamma spreadc NW uc vmb vbeta g sd
    dcobs diobs hoursobs hoursobs2 dhoursobs dshareobs dshareobs2 dss me 
    spreadobs spreadobs2 D dgobs;

varexo ue ua ug um ub ugo ud ume uD;

parameters beta cb gamma delta ab alpha db ABS_ss sc_ss
           rho_ue rho_ua rho_ug rho_um rho_ub rho_ugo rho_ud rho_me rho_uD
           std_ue std_ua std_ug std_um std_ub std_ugo std_ud std_me std_uD
           phi h psi mb eta gb f_ss k_ss hbn c_ss i_ss n_ss ss_o_k;

beta=0.99;
Cpx=beta-1;
cb=-Cpx;
rd_ss=0;
gamma=0.08;
delta=0.025;
R_ss=(1+(1-gamma)*Cpx)/beta;
ab=(R_ss-1)/R_ss; 
n_ss=0.2;
alpha=2/3;
k_ss=n_ss*((1-alpha)/(R_ss-1+delta))^(1/alpha);
f_ss=k_ss^(1-alpha)*n_ss^alpha;
w_ss=alpha*f_ss/n_ss;
ss_o_k=0.30;
%ss_o_k=0.00001;
ss_ss=ss_o_k*k_ss;
sc_ss=k_ss-ss_ss;
ABS_ss=ss_ss/(1-ab);
d_ss=(1-gamma)*sc_ss+ABS_ss;
i_ss=delta*k_ss;
gb=0.0;
c_ss=f_ss-i_ss-gb*f_ss-ab*ABS_ss;

phi=0;
psi=2;

rho_ugo=0.9;  
rho_ug=0.9;  
rho_ua=0.89;
rho_ud=0.9; 
rho_ub=0.9;

std_ugo=0;    
std_ug=0; 
std_ua=0.0; 
std_ud=0.00;  
std_ub=0.00;

rho_ue=0.9999; 
rho_um=0.99; 
rho_me=0.50;
rho_uD=0.75;  

std_ue=0.01; 
std_um=0.03;
std_me=0.01;  
std_uD=0.01; 

eta=20;
h=0.2;
hbn=0.5;

db=(1-beta*(1+rd_ss))*d_ss/(1-h)/c_ss;
leverage_ss=(sc_ss+ABS_ss)/(gamma*sc_ss);

mb=w_ss/(1-h)/c_ss/(1-beta*hbn)/n_ss^((1-hbn)*psi-hbn);

model;

uc=1/(c-h*c(-1));

f=eps*k(-1)^(1-alpha)*n^alpha;
Q(-1)*R=(1-alpha)*f/k(-1)+Q*(1-delta);
Q=1+phi*(i/i(-1)-1)*i/i(-1)+phi/2*(i/i(-1)-1)^2-vbeta*uc(1)/uc*phi*(i(1)/i-1)*(i(1)/i)^2;
alpha*f/n=w;
k=sc+ss;
i=k-(1-delta)*k(-1);

d+x=(1-sgamma)*Q*sc+vABS;
1-cb/(1+x)=vbeta*uc(1)/uc*(1+rd);
1-cb*(1-sgamma)/(1+x)-eta*(vABS/(Q*sc)-ABS_ss/(sc_ss))*vABS/(Q*sc)^2=vbeta*uc(1)/uc*(R(1));
1-cb/(1+x)+eta*(vABS/(Q*sc)-ABS_ss/(sc_ss))/(Q*sc)=vbeta*uc(1)/uc*((1-D(1))*q);

Q*ss=(1-sab)*vABS;
0=R(1)-q/(1-sab);

uc=vbeta*uc(1)*(1+rd)+sd/d;
vmb*(n/n(-1)^hbn)^psi/n(-1)^hbn-beta*hbn*vmb(1)*(n(1)/n^hbn)^psi*n(1)/n^(1+hbn)=w*uc;

f=c+i+g-cb*log(1+x)+sab*vABS+phi/2*(i/i(-1)-1)^2*i+eta/2*(vABS/(Q*sc)-ABS_ss/(sc_ss))^2;
gdp=c+i+g;
share_shadow=ss/k;
leverage=(Q*sc+vABS)/(sgamma*Q*sc+x);
spreadc=R-q;
NW=sgamma*Q*sc+x;

eps=eps(-1)^rho_ue*exp(std_ue*ue);
g=0;%(gb*f_ss)^(1-rho_ugo)*g(-1)^rho_ugo*exp(std_ugo*ugo);
sgamma=gamma^(1-rho_ug)*sgamma(-1)^rho_ug*exp(std_ug*ug);
sab=ab^(1-rho_ua)*sab(-1)^(rho_ua)*exp(std_ua*ua);
D=rho_uD*D(-1)+std_uD*uD;

vmb=mb^(1-rho_um)*vmb(-1)^rho_um*exp(std_um*um);
vbeta=beta^(1-rho_ub)*vbeta(-1)^rho_ub*exp(std_ub*ub);
sd=db^(1-rho_ud)*sd(-1)^rho_ud*exp(std_ud*ud);
me=rho_me*me(-1)+std_me*ume;

dcobs=(c-c(-1))/c(-1); 
dgobs=0;%(g-g(-1))/g(-1); 
diobs=(i-i(-1))/i(-1);
dss=(ss-ss(-1))/ss(-1);
hoursobs=n-n_ss;
hoursobs2=hoursobs;
dhoursobs=(n-n(-1))/n(-1);
dshareobs=(share_shadow-share_shadow(-1))+me;
dshareobs2=dshareobs;
spreadobs=(1-alpha)*f/k(-1)-rd-(1-alpha)*f_ss/k_ss;
spreadobs2=spreadobs;

end;

initval;

x=0;
q=1;
Q=1; 
rd=rd_ss; 
R=R_ss; 
n=n_ss; 
k=k_ss; 
f=f_ss; 
w=w_ss; 
ss=ss_ss; 
sc=sc_ss; 
vABS=ABS_ss; 
d=d_ss; 
i=i_ss; 
c=c_ss;
g=gb*f_ss;
gdp=c_ss+i_ss+gb*f_ss;
share_shadow=ss_o_k;
leverage=leverage_ss;
eps=1;
sab=ab;
sgamma=gamma;
spreadc=R_ss-1-rd_ss;
NW=gamma*sc_ss;
uc=1/(1-h)/c_ss;
vmb=mb;
vbeta=beta;
sd=db;

end;

resid;
steady;
check;

shocks;

var ue; stderr 1;
var ugo; stderr 1; 
var ug; stderr 1; 
var ua; stderr 1; 
var uD; stderr 1; 

var um; stderr 1;
var ub; stderr 1;
var ud; stderr 1;
var ume; stderr 1;

end;

estimated_params; 


std_ue,0.01,0,0.5;
std_um,0.02,0,0.5;
std_me,0.01,0,0.5;
std_uD,0.01,0,0.5;

%rho_ue,0.90,0.3,0.9999;
%rho_um,0.90,0.3,0.9999;
rho_me,0.3,-0.9,0.9;
rho_uD,0.7,0,0.999;

%phi,0.5,0,5;
eta,15,0,30;
h,0.5,0,0.99;
hbn,0.3,0,0.99;

end;

varobs spreadobs dshareobs hoursobs diobs;

estimation(datafile=data2_shadow_vc,mode_compute=7,mode_check,first_obs=2);
   
   