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