11. 现值#

11.1. 概述#

本讲座描述了现值模型,这是许多资产定价理论的起点。

资产定价理论是许多经济决策理论的组成部分,包括

  • 消费

  • 劳动力供给

  • 教育选择

  • 货币需求

在资产定价理论以及更广泛的经济动态研究中,一个基本主题是不同时间序列之间的关系。

时间序列是按时间索引的序列

在本讲座中,我们将把序列表示为向量。

因此,我们的分析通常归结为研究向量之间的关系。

本讲座中的主要工具将是

  • 矩阵乘法,和

  • 矩阵求逆。

我们将在后续的许多讲座中使用这些工具,包括消费平滑均衡差异模型,和货币主义价格水平理论

让我们开始吧。

11.2. 分析#

  • {dt}t=0T 是一系列股息或“支付”

  • {pt}t=0T 是从时间t开始的延续性的资产支付价格序列,即{ds}s=tT

  • δ(0,1) 是一个周期的“折现因子”

  • pT+1T+1时资产的终端价格

我们假设股息序列{dt}t=0T和终端价格pT+1都是外生的。

这意味着它们是在模型之外确定的。

假设资产定价方程序列

(11.1)#pt=dt+δpt+1,t=0,1,,T

我们称其为方程序列,因为有T+1个方程,每个t=0,1,,T都有一个。

方程(11.1)告诉我们在时间t购买资产所支付的价格等于支付dt加上时间t+1的价格乘以时间折现因子δ

通过将明天的价格乘以δ来折现,考虑了“等待一个周期的价值”。

我们想要解T+1个方程(11.1)的系统,以资产价格序列{pt}t=0T作为股息序列{dt}t=0T和外生终端价格pT+1的函数。

(11.1)这样的方程系统是线性差分方程的一个例子。

有许多强大的数学方法可以用来解决这样的系统,这些方法本身就很值得研究,因为它们是分析许多经济模型的基础。

例如,参见Samuelson乘数-加速器

在本讲座中,我们将使用矩阵乘法和矩阵求逆来解决系统(11.1),这是线性代数中的基本工具,在线性方程和矩阵代数中有介绍。

我们将导入以下的库

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import font_manager
fontP = font_manager.FontProperties()
fontP.set_family('SimHei')
fontP.set_size(14)

11.3. 将序列表示为向量#

系统(11.1)中的方程可以如下排列:

(11.2)#p0=d0+δp1p1=d1+δp2pT1=dT1+δpTpT=dT+δpT+1

T+1个资产定价方程的系统(11.2)写成单个矩阵方程

(11.3)#[1δ000001δ000001δ000000001δ000001][p0p1p2pT1pT]=[d0d1d2dT1dT]+[0000δpT+1]

Exercise 11.1

手动用矩阵乘法对(11.3)进行计算,然后用 (11.2)确认。

用向量-矩阵表示法,我们可以将系统(11.3)写成

(11.4)#Ap=d+b

这里A是方程(11.3)左侧的矩阵,而

p=[p0p1pT],d=[d0d1dT],andb=[00pT+1]

价格向量的解是

(11.5)#p=A1(d+b)

例如,假设股息流是

dt+1=1.05dt,t=0,1,,T1.

让我们编写Python代码来计算和绘制股息流。

import matplotlib as mpl
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
mpl.font_manager.fontManager.addfont(FONTPATH)
plt.rcParams['font.family'] = ['Source Han Serif SC']

T = 6
current_d = 1.0
d = []
for t in range(T+1):
    d.append(current_d)
    current_d = current_d * 1.05 

fig, ax = plt.subplots()
ax.plot(d, 'o', label='股息')
ax.legend()
ax.set_xlabel('时间')
plt.show()
_images/25cf8a5a1bdc80851a67c321d1b84512a087d17bdeddbc988ede3f834bd6e373.png

现在让我们来计算和绘制资产价格。

我们将 δpT+1 设定为

δ = 0.99
p_star = 10.0

现在我们建立矩阵 A

A = np.zeros((T+1, T+1))
for i in range(T+1):
    for j in range(T+1):
        if i == j:
            A[i, j] = 1
            if j < T:
                A[i, j+1] = -δ

让我们将矩阵 A 打印出来:

A
array([[ 1.  , -0.99,  0.  ,  0.  ,  0.  ,  0.  ,  0.  ],
       [ 0.  ,  1.  , -0.99,  0.  ,  0.  ,  0.  ,  0.  ],
       [ 0.  ,  0.  ,  1.  , -0.99,  0.  ,  0.  ,  0.  ],
       [ 0.  ,  0.  ,  0.  ,  1.  , -0.99,  0.  ,  0.  ],
       [ 0.  ,  0.  ,  0.  ,  0.  ,  1.  , -0.99,  0.  ],
       [ 0.  ,  0.  ,  0.  ,  0.  ,  0.  ,  1.  , -0.99],
       [ 0.  ,  0.  ,  0.  ,  0.  ,  0.  ,  0.  ,  1.  ]])

现在用 (11.5)来求解价格。

b = np.zeros(T+1)
b[-1] = δ * p_star
p = np.linalg.solve(A, d + b)
fig, ax = plt.subplots()
ax.plot(p, 'o', label='资产价格')
ax.legend()
ax.set_xlabel('时间')
plt.show()
_images/e9b9791aa9fdf2d95e7032d09ce2f431288c25b41413c0b7b8f911b233be7470.png

现在让我们考虑一个周期性增长的股息序列:

dt+1=1.01dt+0.1sint,t=0,1,,T1.
T = 100
current_d = 1.0
d = []
for t in range(T+1):
    d.append(current_d)
    current_d = current_d * 1.01 + 0.1 * np.sin(t)

fig, ax = plt.subplots()
ax.plot(d, 'o-', ms=4, alpha=0.8, label='股息')
ax.legend()
ax.set_xlabel('时间')
plt.show()
_images/4a5a86db37f6b3f8799746ea58955b55988370900ee2fef4b99f895d1153f2a1.png

Exercise 11.2

pT+1=0δ=0.98 时,计算相对应的价格序列。

11.4. 解析表达式#

根据逆矩阵定理,当AB是单位矩阵时,矩阵BA的逆矩阵。

可以验证,(11.3)中的矩阵A的逆矩阵是

(11.6)#A1=[1δδ2δT1δT01δδT2δT10001δ00001]

Exercise 11.3

通过证明AA1为单位矩阵来验证这一点。

如果我们在 (11.5) 中使用表达式 (11.6) 并执行所指示的矩阵乘法,我们将发现

(11.7)#pt=s=tTδstds+δT+1tpT+1

定价公式 (11.7) 表明资产价格 pt 由两个组成部分相加得到:

  • 基本面部分 s=tTδstds,它等于预期股息的贴现现值

  • 泡沫组成部分 δT+1tpT+1

基本组成部分由贴现因子 δ 和资产的支付(在这种情况下为股息)确定。

泡沫组成部分是其中不由基本面决定的价格部分。

有时将泡沫组成部分重写为

cδt

更为方便,其中

cδT+1pT+1

11.5. 关于泡沫的更多内容#

让我们暂时考虑一个从不支付股息的资产这个特殊情况,在这种情况下

[d0d1d2dT1dT]=[00000]

在这种情况下,我们的 T+1 资产定价方程系统 (11.1) 采用以下单一矩阵方程的形式:

(11.8)#[1δ000001δ000001δ000000001δ000001][p0p1p2pT1pT]=[0000δpT+1]

显然,如果 pT+1=0,一个所有元素为零的价格向量 p 可以解这个方程,此时我们定价公式 (11.7) 中只有基本面成分存在。

但让我们通过设置以下条件来激活泡沫成分:

(11.9)#pT+1=cδ(T+1)

其中 c 为某个正数。

在这种情况下,当我们用方程 (11.6) 中的矩阵 A1 乘以 (11.8) 的两边时,我们发现:

(11.10)#pt=cδt

11.6. 总回报率#

定义从 t 期到 t+1 期持有资产的总回报率为:

(11.11)#Rt=pt+1pt

将方程 (11.10) 代入方程 (11.11) 可以确认,一个价值完全来源于泡沫的资产的总回报率为:

Rt=δ1>1,t=0,1,,T

11.7. 练习#

Exercise 11.4

给出以下 dpT+1 设置下资产价格 pt 的分析表达式:

  1. pT+1=0,dt=gtd0(戈登增长公式的修改版)

  2. pT+1=gT+1d0,dt=gtd0(普通的戈登增长公式)

  3. pT+1=0,dt=0(一个无价值股票的价格)

  4. pT+1=cδ(T+1),dt=0(一个纯泡沫股票的价格)