Nelson-Siegel 模型详解
1. 概述
Nelson-Siegel 模型是一种用于**收益率曲线(Yield Curve)**建模的方法,它由 Charles Nelson 和 Andrew Siegel 在 1987 年提出,旨在以参数化方式描述不同到期期限(Maturity)的债券收益率。
该模型是一种指数衰减形式的收益率曲线模型,能够以较少的参数捕捉收益率曲线的主要形态,如:
短期利率水平(Level)
中期利率曲度(Curvature)
长期利率趋势(Slope)
2. Nelson-Siegel 公式
Nelson-Siegel 模型用一个 4 参数函数表示即期收益率曲线(Spot Yield Curve),其数学表达式为:
其中:
:期限为 的即期收益率(Spot Rate)
:长期收益率(长期因子,Level)
:短期收益率的影响(Slope)
:中期收益率的影响(Curvature)
:决定曲率的参数(控制中期收益率的峰值位置)
其中两个关键项:
衰减项
反映短期利率的变化,随着 增大,该项趋向于 1。
曲度项
形成收益率曲线的**“凸起”**,即中期收益率峰值。
3. Nelson-Siegel 参数解释
参数 | 解释 | 影响 |
---|---|---|
长期收益率水平 | 决定长期利率的整体水平 | |
短期收益率的影响 | 决定曲线的斜率(Slope) | |
中期收益率的影响 | 决定曲线的曲率(Curvature) | |
控制衰减速度 | 决定中期收益率峰值的位置 |
大 → 整体收益率水平高
大 → 短期收益率高,曲线陡峭
大 → 曲线在中期有明显“凸起”
小 → 中期峰值出现在较短的期限
4. Nelson-Siegel 模型的收益率曲线形态
正常(Upward Sloping): > 0,短期利率低,长期利率高。
倒挂(Inverted): < 0,短期利率高,长期利率低(可能预示经济衰退)。
驼峰形(Humped): > 0,中期利率高于短期和长期利率(经济调整期)。
5. Nelson-Siegel 模型的估计方法
由于 Nelson-Siegel 模型是非线性回归问题,需要使用优化算法来估计参数:
最小二乘法(OLS)
非线性最小二乘法(Nonlinear Least Squares, NLS)
最大似然估计(MLE)
Python 实现
可以使用 scipy.optimize.curve_fit
进行参数估计:
import numpy as np import matplotlib.pyplot as plt from scipy.optimize import curve_fit # Nelson-Siegel 公式 def nelson_siegel(tau, beta0, beta1, beta2, lambd): return beta0 + beta1 * (1 - np.exp(-tau / lambd)) / (tau / lambd) + beta2 * ((1 - np.exp(-tau / lambd)) / (tau / lambd) - np.exp(-tau / lambd)) # 生成模拟数据(期限 & 真实收益率) tau_values = np.array([0.25, 0.5, 1, 2, 5, 10, 20]) true_params = [3.0, -1.5, 2.0, 1.5] # 真实参数 y_values = nelson_siegel(tau_values, *true_params) + np.random.normal(0, 0.2, len(tau_values)) # 添加噪声 # 估计参数 popt, _ = curve_fit(nelson_siegel, tau_values, y_values, p0=[2, -1, 1, 2]) # 预测曲线 tau_fit = np.linspace(0.1, 30, 100) y_fit = nelson_siegel(tau_fit, *popt) # 绘制结果 plt.scatter(tau_values, y_values, color='red', label='Observed Data') plt.plot(tau_fit, y_fit, label='Nelson-Siegel Fit', color='blue') plt.xlabel('Maturity (Years)') plt.ylabel('Yield (%)') plt.legend() plt.title('Nelson-Siegel Yield Curve Fit') plt.show() print(f"Estimated Parameters: beta0={popt[0]:.2f}, beta1={popt[1]:.2f}, beta2={popt[2]:.2f}, lambda={popt[3]:.2f}")
6. Nelson-Siegel 的扩展
Svensson Model(Nelson-Siegel-Svensson,NSS):
扩展 Nelson-Siegel 模型,增加一个额外的曲度参数 ,用于更精细调整长端曲线:
动态 Nelson-Siegel(DNS):
允许参数 随时间变化,从而用于收益率预测(Diebold & Li, 2006)。
7. Nelson-Siegel 模型的优缺点
✅ 优点:
简单易用,仅需 4 个参数即可描述收益率曲线
可解释性强,对应长期、中期、短期的影响因素
计算效率高,适用于大规模金融市场分析
❌ 缺点:
灵活性有限,不能精确拟合极端形态(如双驼峰曲线)
参数估计非线性,优化可能不稳定
长端精度较低,因此 Svensson 模型更受欢迎
8. 应用场景
国债收益率曲线建模(美联储、欧洲央行广泛采用)
金融资产定价(债券、衍生品估值)
利率风险管理(银行、保险公司使用)
货币政策分析(经济学研究)
9. 结论
Nelson-Siegel 模型是收益率曲线建模的经典方法,它通过 4 个参数有效描述了短、中、长期利率的变动趋势,广泛应用于债券市场、货币政策和风险管理领域。
系统当前共有 404 篇文章