188 lines
6.2 KiB
Modula-2
188 lines
6.2 KiB
Modula-2
// this model has sticky wages and adjustment costs in
|
|
// investment, consumer goods sector is perfectly competitive, thus MC=1
|
|
// with money and transaction costs based on money velocity
|
|
// and it has a financial accelerator
|
|
// wage is indexed to past consumer price inflation
|
|
|
|
// LAMBDA Lagrange multiplier on household's budget constraint (divided by price level)
|
|
// PIE inflation of CPI
|
|
// PIETILDE to what inflation new wage setters index (here PIE(-1) but could be PIEW(-1))
|
|
// INT nominal interest rate
|
|
// C real consumption
|
|
// I real investment
|
|
// K real capital
|
|
// R real rental rate of capital
|
|
// W real wage
|
|
// L labour
|
|
// Y real output
|
|
// PIEW nominal wage inflation
|
|
// VW wage front loading term for newly set wages
|
|
// BBD, BBE, BBF, BBG terms in nominator and denominator in wage FOC
|
|
// G government
|
|
// SL process for labor shock
|
|
// SC process for consumption shock
|
|
// SY process for technology shock
|
|
// RM real money balances hold
|
|
// Q real price of capital
|
|
// Q_M1 lagged Q
|
|
// RK nominal return of capital for enterpreneurs
|
|
// OMEGABAR threshold value for idiosyncratic shock
|
|
// N real net worth of borrowers
|
|
// WF lifetime utility
|
|
|
|
var LAMBDA PIE PIETILDE INT C I K R W L Y PIEW VW BBD BBE BBF BBG G SL SC SY RM
|
|
Q Q_M1 RK OMEGABAR N ACAL ACALPRIME BCAL BCALPRIME WF;
|
|
|
|
varexo E_C E_L E_Y E_GOV E_INT;
|
|
|
|
parameters dep beta gamma eta biga alpha sigmaw phiw deltaw sg pietar h psi nu osigma mu tc1 tc2 ksi1 ksi2 c_weight rho_g rho_l rho_c rho_y;
|
|
dep = 0.025;
|
|
beta = 0.99;
|
|
gamma = 1;
|
|
eta = 2;
|
|
alpha = 0.30;
|
|
biga = alpha^(-alpha)*(1-alpha)^(alpha-1);
|
|
sigmaw = 11;
|
|
phiw = 2;
|
|
deltaw = 0.75;
|
|
sg = 0.18;
|
|
pietar = 1.03^0.25;
|
|
h = 0.8;
|
|
// investment adjustment costs
|
|
psi = 12;
|
|
// enterpreneur saving rate
|
|
nu = 0.94;
|
|
// stderr of enterpreneur's idiosyncratic shocks
|
|
osigma = 0.5;
|
|
// monitoring cost for lender
|
|
mu = 0.2;
|
|
// consumption transaction costs
|
|
tc1 = 0.05;
|
|
tc2 = 0.5;
|
|
// Taylor rule
|
|
ksi1 = 0.106;
|
|
ksi2 = 3;
|
|
rho_g = 0.90;
|
|
rho_l = 0.90;
|
|
rho_c = 0.90;
|
|
rho_y = 0.90;
|
|
// weight of consumption utility
|
|
c_weight = 1;
|
|
|
|
model;
|
|
// capital accumulation
|
|
K = (1 - dep - psi/2*(I(-1)/K(-1)-dep)^2)*K(-1) + I(-1);
|
|
// FOC bonds
|
|
LAMBDA = beta*INT*LAMBDA(+1)/PIE(+1);
|
|
// FOC consumption (right hand side is equal to LAMBDA*(1+TC+TCPRIME*C/RM))
|
|
SC*c_weight*(C-h*C(-1))^(-eta) = LAMBDA*(1+2*tc1*C/RM-2*sqrt(tc1*tc2));
|
|
// FOC money (right hand side is equal to 1 - TCPRIME*C*C/RM/RM)
|
|
beta*LAMBDA(+1)/LAMBDA/PIE(+1) = 1 - tc1*C*C/RM/RM + tc2;
|
|
// FOC investment removed
|
|
// FOC capital(+1) removed
|
|
// real price of capital
|
|
Q = (1-psi*(I/K-dep))^(-1);
|
|
// nominal return on capital
|
|
RK = PIE*(R + Q*(1 - dep + psi*(I/K-dep)*I/K -psi/2*(I/K-dep)^2))/Q(-1);
|
|
// FOC in optimal contract for K(+1)
|
|
RK(+1)*(BCAL(+1)*ACALPRIME(+1)/BCALPRIME(+1)-ACAL(+1)) = INT(+1)*ACALPRIME(+1)/BCALPRIME(+1);
|
|
// Participation constraint
|
|
//RK(+1)*BCAL(+1) = INT(+1)*(1-N(+1)*PIE(+1)/Q/K(+1));
|
|
RK*BCAL = INT*(1-N*PIE/Q(-1)/K);
|
|
// evolution of net worth (real)
|
|
N*PIE*PIE(-1) = nu*(ACAL(-1)+BCAL(-1))*RK(-1)*Q_M1(-1)*K(-1) - nu*INT(-1)*(Q_M1(-1)*K(-1)-N(-1)*PIE);
|
|
// marginal cost is 1
|
|
1 = biga*(W/SY)^(1-alpha)*R^alpha;
|
|
// labor attaining minimal MC
|
|
L = (1-alpha)/W*Y;
|
|
// capital attaining minimal MC
|
|
K = alpha/R*Y;
|
|
// FOC for newly set wages
|
|
W*VW = sigmaw/(sigmaw-1)*(BBD*VW^(-sigmaw*gamma) + phiw*BBE*VW^(-sigmaw) - phiw*BBF)/BBG;
|
|
// definition of BBD
|
|
BBD = SL*L^(1+gamma) + deltaw*beta*(PIETILDE(+1)/PIEW(+1))^(-sigmaw*(1+gamma))*BBD(+1);
|
|
// definition of BBE
|
|
BBE = LAMBDA*L*W + deltaw*beta*(PIETILDE(+1)/PIEW(+1))^(-2*sigmaw)*BBE(+1);
|
|
// definition of BBF
|
|
BBF = LAMBDA*L*W + deltaw*beta*(PIETILDE(+1)/PIEW(+1))^(-sigmaw)*BBF(+1);
|
|
// definition of BBG
|
|
BBG = LAMBDA*L + deltaw*beta*(PIETILDE(+1)/PIEW(+1))^(-sigmaw)*PIETILDE(+1)/PIE(+1)*BBG(+1);
|
|
// price index
|
|
1 = (1-deltaw)*VW^(1-sigmaw) + deltaw*(PIETILDE/PIEW)^(1-sigmaw);
|
|
// definition of ACAL
|
|
ACAL = 0.5*erfc((log(OMEGABAR) - 0.5*osigma^2)/osigma/sqrt(2.0)) - OMEGABAR/2*erfc((log(OMEGABAR) + 0.5*osigma^2)/osigma/sqrt(2.0));
|
|
// definition of BCAL
|
|
BCAL = OMEGABAR/2*erfc((log(OMEGABAR) + 0.5*osigma^2)/osigma/sqrt(2.0)) + (1-mu)/2*(1+erf((log(OMEGABAR) - 0.5*osigma^2)/osigma/sqrt(2.0)));
|
|
// definition of ACALPRIME
|
|
ACALPRIME = -0.5*erfc((log(OMEGABAR) + 0.5*osigma^2)/osigma/sqrt(2.0));
|
|
// definition of BCALPRIME
|
|
BCALPRIME = -ACALPRIME - mu/osigma/2.506628274631*exp(-((log(OMEGABAR) + 0.5*osigma)^2)/2/osigma/osigma);
|
|
// identity for PIEW
|
|
PIEW = PIE*W/W(-1);
|
|
// welfare identity
|
|
WF = SC*c_weight*(C-h*C(-1))^(1-eta)/(1-eta) - SL*L^(1+gamma)/(1+gamma) + beta*WF(+1);
|
|
// interest rate rule
|
|
INT = INT(-1)^ksi1*((PIE/beta)*(PIE/pietar)^ksi2)^(1-ksi1)*exp(E_INT);
|
|
// aggregate constraint
|
|
Y = C + I + G + (1-ACAL-BCAL)*RK*Q(-1)*K;
|
|
//Y = C + I + G;
|
|
// process for government
|
|
G/Y = (G(-1)/Y(-1))^rho_g*sg^(1-rho_g)*exp(E_GOV/sg);
|
|
// to what do they index (pietar, past inflation, past indexed inflation)
|
|
PIETILDE = PIE(-1);
|
|
//PIETILDE = pietar;
|
|
// exo processes
|
|
SL = SL(-1)^rho_l*exp(E_L);
|
|
SC = SC(-1)^rho_c*exp(E_C);
|
|
SY = SY(-1)^rho_y*exp(E_Y);
|
|
// lagged Q
|
|
Q_M1 = Q(-1);
|
|
end;
|
|
|
|
initval;
|
|
RM = 0.1;
|
|
INT = pietar/beta;
|
|
PIE = pietar;
|
|
PIEW = pietar;
|
|
PIETILDE = pietar;
|
|
//R = dep/beta;
|
|
R = 0.1;
|
|
W = (1/biga/(R)^alpha)^(1/(1-alpha));
|
|
LAMBDA = ((1-dep*alpha/R-sg)*(1-h)*c_weight/(1-alpha)*W^(1/gamma+1)*((sigmaw-1)/sigmaw)^(1/gamma))^(-1/(1/eta+1/gamma));
|
|
L = (W*LAMBDA*(sigmaw-1)/sigmaw)^(1/gamma);
|
|
Y = W*L/(1-alpha);
|
|
K = alpha/R*Y;
|
|
I = dep*K;
|
|
G = sg*Y;
|
|
VW = 1;
|
|
BBD = L^(1+gamma)/(1-deltaw*beta);
|
|
BBE = LAMBDA*L*W/(1-deltaw*beta);
|
|
BBF = LAMBDA*L*W/(1-deltaw*beta);
|
|
BBG = LAMBDA*L/(1-deltaw*beta);
|
|
Q = 1;
|
|
Q_M1 = Q;
|
|
RK = 1/Q*PIE*(R+(1-dep)*Q);
|
|
OMEGABAR = 0.5;
|
|
ACAL = 0.5*erfc((log(OMEGABAR) - 0.5*osigma^2)/osigma/sqrt(2.0)) - OMEGABAR/2*erfc((log(OMEGABAR) + 0.5*osigma^2)/osigma/sqrt(2.0));
|
|
BCAL = OMEGABAR/2*erfc((log(OMEGABAR) + 0.5*osigma^2)/osigma/sqrt(2.0)) + (1-mu)/2*(1+erf((log(OMEGABAR) - 0.5*osigma^2)/osigma/sqrt(2.0)));
|
|
ACALPRIME = -0.5*erfc((log(OMEGABAR) + 0.5*osigma^2)/osigma/sqrt(2.0));
|
|
BCALPRIME = -ACALPRIME - mu/osigma/2.506628274631*exp(-((log(OMEGABAR) + 0.5*osigma)^2)/2/osigma/osigma);
|
|
N = (nu*(ACAL+BCAL)*RK*Q*K-nu*INT*Q*K)/(PIE*PIE-nu*INT*PIE);
|
|
C = Y - I - G - (1-ACAL-BCAL)*RK*Q*K;
|
|
SL = 1;
|
|
SC = 1;
|
|
SY = 1;
|
|
WF = 1/(1-beta)*(SC*c_weight*((1-h)*C)^(1-eta)/(1-eta) - SL*L^(1+gamma)/(1+gamma));
|
|
end;
|
|
|
|
vcov = [
|
|
0.0001 0 0 0 0;
|
|
0 0.0001 0 0 0;
|
|
0 0 0.0001 0 0;
|
|
0 0 0 0.0001 0;
|
|
0 0 0 0 0.0001
|
|
];
|
|
|
|
order = 4;
|
|
|