nss

语法

nss(maturity, yield, [method="nss"])

参数

maturity 值大于 0 的数值型向量,表示历史债券的到期时间,单位是年。

yield maturity 等长的数值型向量,表示历史债券的收益率。

method 可选参数,字符串类型,表示使用的模型。可选值为:

  • "ns" 使用 Nelson-Siegel(NS) 模型。

  • "nss" 默认值,使用 Nelson-Siegel-Svensson(NSS) 模型。

详情

使用 NS 模型或 NSS 模型和 Nelder-Mead 优化方法,拟合债券的收益率曲线。

返回一个字典,包含以下键值对:

modelName 表示拟合所用模型的名称。

params 表示拟合后的模型参数:

  • 对于 NS 模型,向量长度为 4,依次为 β0, β1, β2, λ

  • 对于 NSS 模型,向量长度为 6,依次为 β0, β1, β2, β3, λ0, λ1

fminResult 表示 Nelder-Mead 方法的优化结果,详情见 函数 fmin 文档

predict 模型的预测函数。其使用方法为 model.predict(T),T 表示需要预测的到期时间,单位是年。返回此模型对到期时间 T 的预测收益率。

例子

maturity = [1,2,3,4,5,8,10,15,20,25,30]
yield = [0.0039,0.0061,NULL,NULL,0.0166,NULL,0.0258,NULL,NULL,0.0332,NULL]
model = nss(maturity, yield)

model.modelName 
//output: nss

model.params 
//output:[0.038184469794996,-0.048575389082029,-0.022287414169806,0.047523360012739,1.873046195772644,0.161159907274023]

model.fminResult
/* Output:
xopt->[0.038184469794996,-0.048575389082029,-0.022287414169806,0.047523360012739,1.873046195772644,0.161159907274023]
fopt->5.456415848001168E-9
iterations->541
fcalls->860
warnFlag->0
*/

// 调用预测函数进行预测
model.predict([3,1])
/* Output:
[0.009904201306001,0.003891991292041]
*/

相关函数:nsspredict