本文含 8890 字,37 图表截屏
建议阅读 46 分钟
0
引言
本文是 Python 系列的 SciPy 补充篇。整套 Python 盘一盘系列目录如下:
在量化金融中,插值是个很常见的操作,即从一系列标准点对应的值”推出“非标准点的值,这个”推出“可以是内推 (interpolation),或称内插,也可以是外推 (extrapolation),或称外插。此外插值的维度可以是一维、二维甚至三维,在收益率曲线上插值用的是一维插值,在波动率平面上插值用的是二维插值。
收益率曲线插值:给定标准年限 t 和利率 r,如下图所示,对于非标准年限 ti 内插或者外插出 ri。
波动率平面插值:给定标准年限 t、标准行权价 K,和波动率 σ,如下图所示,对于非标准年限 ti 和非标准行权价 Kj,内插或者外插出 σij。
给定一组 (xi, yi),其中 i = 1, 2, ..., n,而且 xi 是有序的,称为「标准点」。插值就是对于任何新点 xnew,计算出对应的 ynew。换句话来说,插值就是在标准点之间建立分段函数 (piecewise function),把它们连起来。这样给定任意连续 x 值,带入函数就能计算出任意连续 y 值。
在 SciPy 中有个专门的函数 scipy.interpolate 是用来插值的,首先引进它并记为 spi。
import scipy.interpolate as spi
本贴分三章,第一章讲一维插值,第二章讲二维插值,第三章结合前两章的知识点对真实的 USD cap 估值。
1
一维插值
1.1
内插
用 scipy.interpolate 来插值函数 sin(x) + 0.5x。
x = np.linspace(-2 * np.pi, 2 * np.pi, 11)
f = lambda x: np.sin(x) + 0.5 * x
f(x)