I S − L M IS-LM IS−LM是产品市场和货币市场共同均衡时的模型,它由两条曲线构成,分别是 I S IS IS曲线和 L M LM LM曲线。其中 I S IS IS曲线是在产品市场均衡(产品服务供给等于需求、计划支出等于实际支出、计划投资等于储蓄、非计划存货等于0)条件下,均衡实际收入 Y Y Y与实际利率 r r r之间的反向变化关系; L M LM LM曲线是在货币市场均衡(货币供给等于货币需求)条件下,均衡实际利率 r r r与实际收入 Y Y Y之间的正向变化关系。用方程表示为
{ Y = C ( Y ) + I ( r ) L ( r , Y ) = M / P \left\{\begin{array}{l} Y=C(Y)+I(r)\\ L(r,Y)=M/P \end{array}\right. {Y=C(Y)+I(r)L(r,Y)=M/P
其中 Y = C ( Y ) + I ( r ) Y=C(Y)+I(r) Y=C(Y)+I(r)为产品市场均衡条件(计划支出=实际支出)。消费 C ( Y ) C(Y) C(Y)是关于收入 Y Y Y的函数,假设是线性的:
C ( Y ) = α + β Y C(Y)=\alpha+\beta Y C(Y)=α+βY
其中 β ∈ ( 0 , 1 ) \beta\in(0,1) β∈(0,1)称为边际消费倾向, α > 0 \alpha>0 α>0为自主消费,即没有收入时的消费。在资本边际效率不变时,投资 I ( r ) I(r) I(r)是关于利率 r r r的递减函数,假设也是线性的:
I ( r ) = e − d r I(r)=e-dr I(r)=e−dr
其中 e > 0 e>0 e>0是自发投资, d d d是投资对利率的敏感程度。于是产品市场均衡条件可记作
Y = α + β Y + e − d r Y=\alpha+\beta Y+e-dr Y=α+βY+e−dr
L ( r , Y ) L(r,Y) L(r,Y)为实际货币需求,它是由 L 1 ( Y ) L_1(Y) L1(Y)需求和 L 2 ( r ) L_2(r) L2(r)需求构成。 L 1 ( Y ) L_1(Y) L1(Y)由交易性需求和预防性需求构成,随收入 Y Y Y增加而增加,不妨假定为正比例函数
L 1 ( Y ) = k Y L_1(Y)=kY L1(Y)=kY
其中 k k k表示用于支付日常开支(交易性需求)和未来不确定性(预防性需求)占实际收入的比重。 L 2 ( r ) L_2(r) L2(r)需求称为投机性需求,它是关于实际利率的递减函数,假设为负比例函数:
L 2 ( r ) = A − h r L_2(r)=A-hr L2(r)=A−hr
其中 A > 0 A>0 A>0是参数, h h h表示 L 2 L_2 L2对利率 r r r变化的敏感程度。 M M M表示名义货币供给, P P P表示价格水平, M / P M/P M/P表示实际货币供给。货币市场均衡条件可以记作
k Y + A − h r = M / P kY+A-hr=M/P kY+A−hr=M/P
我们将上述两个模型重新写在一起
{ Y = α + β Y + e − d r k Y + A − h r = M / P \left\{\begin{array}{l} Y=\alpha+\beta Y+e-dr\\ kY+A-hr=M/P \end{array}\right. {Y=α+βY+e−drkY+A−hr=M/P
将 r , Y r,Y r,Y视为内生变量,两个方程组可以解出唯一均衡值,记作 ( r ∗ , Y ∗ ) (r^*,Y^*) (r∗,Y∗)。其中 r ∗ r^* r∗称为均衡实际利率, Y ∗ Y^* Y∗称为均衡实际收入,或均衡国民收入。从几何上看,也就是这两条直线的交点。
然而,初始的实际收入和实际利率并不是均衡的,很有可能并不在上述两条直线的交点处,例如下图 E ′ E' E′, E ′ ′ E'' E′′和 E ′ ′ ′ E''' E′′′。
假设初始状态在 E ′ ′ ′ E''' E′′′,此时计划投资大于储蓄 I > S I>S I>S,实际收入 Y Y Y增加,实际利率 r r r增加,即 E ′ ′ ′ E''' E′′′点即向右移动,又向上移动,合力为右上方,直至进入 I I II II区域。在 I I II II区域中, I < S II<S,实际收入减少,于是向左移动; L > M L>M L>M,实际利率继续向上移动,合力为左上方,此时进入 I I I区域。在 I I I区域, Y Y Y减少, r r r降低,合力在左下方,进入 I V IV IV区域。在 I V IV IV区域, Y Y Y增加, r r r降低,进入 I I I III III区域,于是重新回到 I I I III III区域。但每次都与均衡点 E E E不断接近。
为了使上述模型动态化,引入时间因素 t t t,于是
{ C t = α + β Y t I t = e − d r t Y t + 1 = C t + I t k Y t + A − h r t + 1 = M / P \left\{\begin{array}{l} C_t = \alpha+\beta Y_t\\ I_t=e-dr_t\\ Y_{t+1}= C_t+I_t\\ kY_t+A-hr_{t+1}=M/P \end{array}\right. ⎩ ⎨ ⎧Ct=α+βYtIt=e−drtYt+1=Ct+ItkYt+A−hrt+1=M/P
整理得到
{ C t = α + β Y t I t = e − d r t Y t + 1 = C t + I t r t + 1 = ( k Y t + A − M / P ) / h \left\{\begin{array}{l} C_t = \alpha+\beta Y_t\\ I_t=e-dr_t\\ Y_{t+1}= C_t+I_t\\ r_{t+1} = (kY_t+A-M/P)/h \end{array}\right. ⎩ ⎨ ⎧Ct=α+βYtIt=e−drtYt+1=Ct+Itrt+1=(kYt+A−M/P)/h
在长期中,非均衡逐渐向均衡靠拢, r t ≈ r t + 1 ≈ r ∗ r_t\approx r_{t+1} \approx r^* rt≈rt+1≈r∗, Y t ≈ Y t + 1 ≈ Y ∗ Y_t\approx Y_{t+1}\approx Y^* Yt≈Yt+1≈Y∗,于是
{ C ∗ = α + β Y ∗ I ∗ = e − d r ∗ Y ∗ = C ∗ + I ∗ r ∗ = ( k Y ∗ + A − M / P ) / h \left\{\begin{array}{l} C^* = \alpha+\beta Y^*\\ I^*=e-dr^*\\ Y^*= C^*+I^*\\ r^* = (kY^*+A-M/P)/h \end{array}\right. ⎩ ⎨ ⎧C∗=α+βY∗I∗=e−dr∗Y∗=C∗+I∗r∗=(kY∗+A−M/P)/h
使用行列式求解得到长期均衡点为
{ r ∗ = k ( α + e ) + ( 1 − β ) ( A − M / P ) k d + h ( 1 − β ) Y ∗ = h ( α + e ) − d ( A − M / P ) k d + h ( 1 − β ) \left\{\begin{array}{l} r^* = \dfrac{k(\alpha+e)+(1-\beta)(A-M/P)}{kd+h(1-\beta)} \\ Y^* = \dfrac{h(\alpha+e)-d(A-M/P)}{kd+h(1-\beta)} \\ \end{array}\right. ⎩ ⎨ ⎧r∗=kd+h(1−β)k(α+e)+(1−β)(A−M/P)Y∗=kd+h(1−β)h(α+e)−d(A−M/P)
令参数 α = 500 \alpha=500 α=500, β = 0.5 \beta=0.5 β=0.5, e = 1250 e=1250 e=1250, d = 250 d=250 d=250, k = 0.5 k=0.5 k=0.5, h = 250 h=250 h=250, A = 1000 A=1000 A=1000, M = 1250 M=1250 M=1250, P = 1 P=1 P=1,代入上述均衡解得到
alpha = 500
beta = 0.5
e = 1250
d = 250
k = 0.5
h = 250
A = 1000
M = 1250
P = 1
r_star = (k*(alpha+e)+(1-beta)*(A-M/P))/(k*d+h*(1-beta))
Y_star =( h*(alpha+e)-d*(A-M/P))/(k*d+h*(1-beta))
r_star
Y_star
# 3
# 2000
现在假设初始实际利率为 r 0 = 10 r_0=10 r0=10, Y 0 = 5000 Y_0=5000 Y0=5000,基于下列公式
{ C t = α + β Y t I t = e − d r t Y t + 1 = C t + I t r t + 1 = ( k Y t + A − M / P ) / h \left\{\begin{array}{l} C_t = \alpha+\beta Y_t\\ I_t=e-dr_t\\ Y_{t+1}= C_t+I_t\\ r_{t+1} = (kY_t+A-M/P)/h \end{array}\right. ⎩ ⎨ ⎧Ct=α+βYtIt=e−drtYt+1=Ct+Itrt+1=(kYt+A−M/P)/h
rm(list = ls())
# 参数初始化
alpha = 500
beta = 0.5
e = 1250
d = 250
k = 0.5
h = 250
A = 1000
M = 1250
P = 1
T = 100 # 迭代次数
r = numeric()
Y = numeric()
# 初始值
r[1] = 10
Y[1] = 5000
# 迭代
for (t in 1:T) {
C = 500+0.5*Y[t]
I = 1250-250*r[t]
Y[t+1] = C+I
r[t+1] = (k*Y[t]+A-M/P)/h
}
par(mfrow=c(1,2),mar = c(5,5,5,5))
plot(Y,type = "l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "实际利率均衡过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
plot(r,type = "l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "实际收入均衡过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
par(mfrow=c(1,1))
plot(Y,r,typ="l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "均衡点收敛过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
引入政府部门,政府决策变量包括政府支出 G G G、税收 T T T和转移支付 T r T_r Tr,此时均衡条件如下:
{ C t = α + β ( Y t − T + T r ) I t = e − d r t Y t + 1 = C t + I t + G r t + 1 = ( k Y t + A − M / P ) / h \left\{\begin{array}{l} C_t = \alpha+\beta (Y_t-T+T_r)\\ I_t=e-dr_t\\ Y_{t+1}= C_t+I_t +G\\ r_{t+1} = (kY_t+A-M/P)/h \end{array}\right. ⎩ ⎨ ⎧Ct=α+β(Yt−T+Tr)It=e−drtYt+1=Ct+It+Grt+1=(kYt+A−M/P)/h
令政府购买 G = 500 G=500 G=500,税收 T = 20 T=20 T=20,转移支付 T r = 5 T_r=5 Tr=5,
rm(list = ls())
# 参数初始化
alpha = 500
beta = 0.5
e = 1250
d = 250
k = 0.5
h = 250
A = 1000
M = 1250
P = 1
T = 20
Tr = 5
G = 500
T = 100 # 迭代次数
r = numeric()
Y = numeric()
# 初始值
r[1] = 10
Y[1] = 5000
# 迭代
for (t in 1:T) {
C = 500+0.5*(Y[t]-T+Tr)
I = 1250-250*r[t]
Y[t+1] = C+I+G
r[t+1] = (k*Y[t]+A-M/P)/h
}
par(mfrow=c(1,2),mar = c(5,5,5,5))
plot(Y,type = "l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "实际利率均衡过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
plot(r,type = "l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "实际收入均衡过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
par(mfrow=c(1,1))
plot(Y,r,typ="l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "均衡点收敛过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
使价格水平 P P P不断下降,实际货币供给不断增加,实际货币供给增加又导致均衡实际利率不断降低,进而导致投资不断增加,均衡国民收入不断增加。
rm(list = ls())
# 参数初始化
alpha = 500
beta = 0.5
e = 1250
d = 250
k = 0.5
h = 250
A = 1000
M = 1250
T = 20
Tr = 5
G = 500
T = 100 # 迭代次数
r = numeric()
Y = numeric()
# 初始值
r[1] = 10
Y[1] = 5000
# 迭代
P = c(1,0.8,0.6,0.4)
par(mfrow=c(2,2),mar = c(5,5,5,5))
for(j in P){
for (t in 1:T) {
C = 500+0.5*(Y[t]-T+Tr)
I = 1250-250*r[t]
Y[t+1] = C+I+G
r[t+1] = (k*Y[t]+A-M/j)/h
}
plot(Y,r,typ="l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = paste("价格水平P=",j),
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
}
除收入外,还有其他一些因素也会影响消费;同理,除了利率,也有其他因素也会影响投资大小;货币需求和货币供给之间也存在随机误差。因此,均衡条件进一步改进为
{ C t = α + β ( Y t − T + T r ) + ε t I t = e − d r t + v t Y t + 1 = C t + I t + G r t + 1 = ( k Y t + A − M / P + w t ) / h ε t , v t , w t ∼ N ( 0 , 1 ) \left\{\begin{array}{l} C_t = \alpha+\beta (Y_t-T+T_r)+\varepsilon_t \\ I_t=e-dr_t+v_t\\ Y_{t+1}= C_t+I_t +G\\ r_{t+1} = (kY_t+A-M/P+w_t)/h\\ \varepsilon_t,v_t,w_t\sim N(0,1) \end{array}\right. ⎩ ⎨ ⎧Ct=α+β(Yt−T+Tr)+εtIt=e−drt+vtYt+1=Ct+It+Grt+1=(kYt+A−M/P+wt)/hεt,vt,wt∼N(0,1)
其中 ε t , v t , w t \varepsilon_t,v_t,w_t εt,vt,wt假定服从标准正态分布。
#------------------------随机扰动影响-----------------------------
rm(list = ls())
# 参数初始化
alpha = 500
beta = 0.5
e = 1250
d = 250
k = 0.5
h = 250
A = 1000
M = 1250
P = 1
T = 20
Tr = 5
G = 500
T = 100 # 迭代次数
r = numeric()
Y = numeric()
# 初始值
r[1] = 4
Y[1] = 2450
# 迭代
for (t in 1:T) {
C = 500+0.5*(Y[t]-T+Tr)+rnorm(1,0,1)
I = 1250-250*r[t]+rnorm(1,0,1)
Y[t+1] = C+I+G
r[t+1] = (k*Y[t]+A-M/P+rnorm(1,0,1) )/h
}
par(mfrow=c(1,2),mar = c(5,5,5,5))
plot(Y,type = "l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "实际利率均衡过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
plot(r,type = "l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "实际收入均衡过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")
par(mfrow=c(1,1))
plot(Y,r,typ="l",lwd=2,xlab = "实际收入Y",ylab = "实际利率r",main = "均衡点收敛过程",
cex.axis = 2, cex.lab = 2,cex.main = 2,family = "ST")
grid(col = "black")