金融學習之四 插值法求遠期國債收益率

2021-10-21 01:29:47 字數 2181 閱讀 4741

今天來個簡單的,使用插值法求遠期國債利率。

插值法使用的是scipy模組中的interpolate子模組的interp1d函式,注意這裡的是數字1,不是英文本母l。函式的格式為interp1d(x,y,kind),x、y為給定資料,kind是插值方法。

kind引數如下:

引數名稱

插值方法

nearest

最鄰近插值法

zero

0階樣條曲線插值法

slinear

1階樣條曲線插值法

quadratic

2階樣條曲線插值法

cubic

3階樣條曲線插值法

假設有如下遠期國債到期收益率:

期限0.25年

半年0.75年

1年3年

5年遠期收益率

2.7344%

2.7898%

2.8382%

2.882%

3.0414%

3.1746%

可以發現在表中缺少2年期和4年期的遠期國債收益率,現在就可以通過資料擬合出曲線並求出對應的收益率。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from scipy import interpolate

#下面是顯示中文必備**

from pylab import mpl

mpl.rcparams[

'font.sans-serif']=

['simhei'

]mpl.rcparams[

'axes.unicode_minus'

]=false

接下來將表中資料以列表形式處理:

#原有期限

t=np.array(

[0.25,0.5,0.75,1.0,3.0,5.0]

)#新期限

t_new=np.array(

[0.25,0.5,0.75,1.0,2.0,3.0,4.0,5.0]

)#原有到期收益率

rates=np.array(

[0.27344,0.27898,0.28382,0.2882,0.30414,0.31746]

)

設定好5種插值方法,以及線形的格式

types=

['nearest','zero','slinear','quadratic','cubic'

]k1=

['-','--','-.',':','-'

]k2=

['*','h','+','d','s'

]

計算並繪圖:

這裡設定了一堆線形,主要是為了區分不同的資料,畢竟如果是同樣的線形是無法區分開的。

plt.figure(figsize=

(10,8))

for i in range(len(types)):

f=interpolate.interp1d(x=t,y=rates,kind=types[i]

) rates_new=f(t_new)

print(types[i],rates_new)

plt.plot(t_new,rates_new,k1[i]

) plt.plot(t_new,rates_new,k2[i],label=types[i]

) plt.xticks(fontsize=14)

plt.xlabel(u'期限',fontsize=14)

plt.yticks(fontsize=14)

plt.ylabel(u'收益率',fontsize=14,rotation=0)

plt.legend(loc=0,fontsize=14)

plt.grid(

)

結果如下:

可以看出,nearest和zero法得到的結果基本相同,而其他方法得到的結果有些不同。

金融學習之九 票息剝離法求零息利率

計算債券零息利率通常採用票息剝離法。假設有下表 券名剩餘期限 年 票面利率 債券 本金牛奔1號 0.25 099.42 100牛奔2號 0.50 98.83 100牛奔3號 1.02.77 每年付息一次 100.09 100牛奔4號 1.53.46 半年付息一次 101.32 100牛奔4號 2.0...

用插值法求國債收益率

用插值法求國債收益率 created on tue mar 16 20 41 11 2021 author administrator import numpy as np import pandas as pd import matplotlib.pyplot as plt from pylab ...

金融學習之七 統計檢驗方法的使用

今天的內容有點無聊,主要是幾個統計檢驗方法的應用,都是scipy模組中的stas子模組中的函式。幾個統計檢驗分別是k s檢驗,a d檢驗,w檢驗和正態性檢驗。1 k s檢驗 k s檢驗是基於累計分布函式,用以檢驗乙個分布是否服從某種理論分布,或比較兩個分布是否存在顯著差異。k s檢驗所使用的函式是k...