4. 收益率曲线构建方法:Bootstrapping、Nelson-Siegel、Svensson与样条插值

收益率曲线,说白了就是债券市场的“定价基准”。你想想看,不同期限的国债收益率到底该怎么算?市场上能直接看到的,只有那些活跃交易的国债报价。但我们需要的是整条曲线——从1个月到30年,每个点都要有数。

这就引出了我们今天要聊的四种构建方法。我个人在实际项目中,几乎每种方法都踩过坑,今天把经验全部分享给你。

4.1 Bootstrapping方法:从零息债券出发

Bootstrapping,中文叫“自举法”。名字挺玄乎,其实逻辑很简单:用已知的零息债券价格,一步步推导出未知的即期利率。

举个例子。假设市场上有一只1年期零息国债,价格是97元,面值100元。那1年期即期利率就是:

r1 = (100 / 97) - 1 ≈ 3.09%

现在有一只2年期附息国债,票面利率4%,每年付息一次,价格是101元。我们已知r1=3.09%,那2年期即期利率r2怎么算?

现金流拆解:第一年的4元利息,用r1折现;第二年的104元(本金+利息),用r2折现。两者之和等于101元。

4 / (1 + 3.09%) + 104 / (1 + r2)^2 = 101

解这个方程,就能得到r2。然后一层层往上推,这就是Bootstrapping的核心。

关键点:Bootstrapping要求市场上有足够多的、期限连续的债券。如果某个期限没有对应的债券,就需要插值。

我的经验:我在做国债收益率曲线时,发现1年期以内的短期债券流动性差,报价经常失真。这时候我会先用货币市场工具(如回购利率)来补充短期端的数据。

4.2 Nelson-Siegel模型:参数化曲线的经典

Nelson-Siegel模型(简称NS模型)是1987年提出的。它用四个参数来描述整条收益率曲线:

y(t) = β0 + β1 * (1 - e^(-t/τ)) / (t/τ) + β2 * [(1 - e^(-t/τ)) / (t/τ) - e^(-t/τ)]

其中:

  • β0:长期利率水平(当t→∞时,y(t)→β0)
  • β1:短期利率偏离长期水平的程度(当t→0时,y(t)→β0+β1)
  • β2:曲线的“驼峰”形状
  • τ:衰减因子,控制曲线弯曲的位置

NS模型的优势在于:参数少、拟合快、曲线光滑。但它有个明显的缺点——只能处理一个“驼峰”。如果收益率曲线有两个弯曲(比如短期和中期各有一个拐点),NS模型就力不从心了。

避坑指南:我曾经用NS模型拟合2013年“钱荒”时期的收益率曲线,结果惨不忍睹。因为当时短期利率飙升,曲线形状极其扭曲,NS模型的单驼峰结构根本捕捉不到。后来我换成了Svensson模型才解决问题。

4.3 Svensson模型:NS模型的升级版

Svensson模型(也叫Nelson-Siegel-Svensson模型,简称NSS模型)在NS模型的基础上增加了一个驼峰项:

y(t) = β0 + β1 * (1 - e^(-t/τ1)) / (t/τ1) + β2 * [(1 - e^(-t/τ1)) / (t/τ1) - e^(-t/τ1)] + β3 * [(1 - e^(-t/τ2)) / (t/τ2) - e^(-t/τ2)]

多了一个β3和τ2,意味着可以描述两个不同位置的弯曲。这对于复杂的收益率曲线形态非常有用。

特性 NS模型 Svensson模型
参数数量 4个(β0, β1, β2, τ) 6个(β0, β1, β2, β3, τ1, τ2)
驼峰数量 1个 2个
拟合灵活性 一般 较强
过拟合风险 中等
适用场景 正常市场环境 复杂或极端市场

我的建议:日常使用中,我通常先用NS模型。如果拟合残差过大(比如均方根误差超过5个基点),再切换到Svensson模型。不要一上来就用复杂模型,容易过拟合。

4.4 样条插值法:非参数化的灵活选择

样条插值法不假设收益率曲线有特定的函数形式。它把曲线分成若干段,每段用一个低阶多项式拟合,然后在连接点处保证光滑。

最常用的是三次样条(Cubic Spline)。它的数学表达是:

s(t) = a_i + b_i*(t - t_i) + c_i*(t - t_i)^2 + d_i*(t - t_i)^3,  t ∈ [t_i, t_{i+1}]

每个区间有4个参数,n个区间就有4n个参数。通过连续性条件(函数值、一阶导数、二阶导数在节点处连续)和边界条件,可以唯一确定所有参数。

样条插值的优势在于:

  • 完全由数据驱动,不依赖先验假设
  • 局部调整能力强——修改一个数据点,只影响附近区域
  • 拟合精度通常很高

但缺点也很明显:

  • 参数多,容易过拟合
  • 曲线外推能力差(超出数据范围的部分不可靠)
  • 节点位置的选择对结果影响很大

避坑指南:我曾经用样条插值做企业债收益率曲线,节点选得太密,结果曲线像蛇一样扭来扭去,完全失去了经济含义。后来我改用“平滑样条”(在拟合优度和光滑度之间做权衡),效果好了很多。

4.5 四种方法的对比与选择

说了这么多,到底该用哪种?我个人的经验是:

  • Bootstrapping:适合有大量零息债券或附息债券的市场,比如国债。计算简单,结果透明。
  • NS模型:适合正常市场环境下的利率曲线拟合。参数少,稳定性好。
  • Svensson模型:适合曲线形态复杂的情况,比如有多个拐点或极端波动。
  • 样条插值:适合需要高精度拟合的场景,比如做市商定价。但要注意控制过拟合。

下面这张图展示了四种方法的逻辑关系:

收益率曲线构建方法对比 市场债券数据 Bootstrapping 自举法 Nelson-Siegel 4参数模型 Svensson 6参数模型 样条插值 非参数化 即期利率曲线 债券定价 · 风险管理 · 套利策略 需要连续期限 单驼峰 双驼峰 高精度

4.6 实战中的选择逻辑

在实际项目中,我通常会这样决策:

  1. 先看数据质量:如果债券数量多、期限分布均匀,优先用Bootstrapping。如果数据稀疏,用参数模型。
  2. 再看市场状态:正常市场用NS模型。极端市场(比如金融危机)用Svensson模型。
  3. 最后看应用场景:做定价用样条插值(精度高),做宏观分析用NS模型(参数有经济含义)。

我的习惯:我会同时用NS模型和样条插值拟合同一组数据。如果两者差异小于3个基点,说明曲线形态正常。如果差异超过10个基点,我会仔细检查数据,看看是不是有异常点。

嗯,收益率曲线构建这块,说到底就是“用有限的数据,推断出整条曲线”。每种方法都有它的脾气,多试几次,你就能摸透它们的性格了。

蓝海数据掘金营,专注资料整理