固定收益

哪條曲線更適合近似債券收益率(python)

  • July 15, 2020

我想用python估算債券收益率。但是問題出現了,哪條曲線更好地描述了這一點?

import numpy as np
import matplotlib.pyplot as plt

x = [0.02, 0.22, 0.29, 0.38, 0.52, 0.55, 0.67, 0.68, 0.74, 0.83, 1.05, 1.06, 1.19, 1.26, 1.32, 1.37, 1.38, 1.46, 1.51, 1.61, 1.62, 1.66, 1.87, 1.93, 2.01, 2.09, 2.24, 2.26, 2.3, 2.33, 2.41, 2.44, 2.51, 2.53, 2.58, 2.64, 2.65, 2.76, 3.01, 3.17, 3.21, 3.24, 3.3, 3.42, 3.51, 3.67, 3.72, 3.74, 3.83, 3.84, 3.86, 3.95, 4.01, 4.02, 4.13, 4.28, 4.36, 4.4]
y = [3, 3.96, 4.21, 2.48, 4.77, 4.13, 4.74, 5.06, 4.73, 4.59, 4.79, 5.53, 6.14, 5.71, 5.96, 5.31, 5.38, 5.41, 4.79, 5.33, 5.86, 5.03, 5.35, 5.29, 7.41, 5.56, 5.48, 5.77, 5.52, 5.68, 5.76, 5.99, 5.61, 5.78, 5.79, 5.65, 5.57, 6.1, 5.87, 5.89, 5.75, 5.89, 6.1, 5.81, 6.05, 8.31, 5.84, 6.36, 5.21, 5.81, 7.88, 6.63, 6.39, 5.99, 5.86, 5.93, 6.29, 6.07]

a = np.polyfit(np.power(x,0.5), y, 1)
y1 = a[0]*np.power(x,0.5)+a[1]

b = np.polyfit(np.log(x), y, 1)
y2 = b[0]*np.log(x) + b[1]

c = np.polyfit(x, y, 2)
y3 = c[0] * np.power(x,2) + np.multiply(c[1], x) + c[2]

plt.plot(x, y, 'ro', lw = 3, color='black')
plt.plot(x, y1, 'g', lw = 3, color='red')
plt.plot(x, y2, 'g', lw = 3, color='green')
plt.plot(x, y3, 'g', lw = 3, color='blue')
plt.axis([0, 4.5, 2, 8])
plt.rcParams['figure.figsize'] = [10, 5]

拋物線也在末端下降**(藍色),對數曲線在開始時過快到零(綠色),平方根有一個奇怪的駝峰(紅色)**。有沒有其他更準確的近似方法,或者我已經做得很好了?

在此處輸入圖像描述

是什麼讓特別合身?

自然對於量化金融(實際上對於任何量化科學)來說,雖然我們有時可以通過肉眼評估某事物的表現,但這並不是一個可靠的指標。通常,僅在丟棄壞/糟糕的配合時才可以接受肉眼評估。您不應使用此類定性方法來評估或比較執行合理工作的模型。由於您提出的每個擬合乍一看似乎都是合理的,這意味著您不應再追求定性方法。

既然您需要一種定量方法來評估各種配合的性能,那麼您可以採取幾種不同的方法。重要的是要強調這些是相互競爭的標準,有時是相互矛盾的,此時重要的是要知道你的優先事項是什麼。(具有諷刺意味的是,儘管我已經說過是時候使用定量方法了,但選擇哪種方法更像是一門藝術而不是一門科學)。僅舉幾例,您可以這樣做:哪個具有最小二乘誤差(最小 $ l^2 $ -錯誤), $ l^1 $ -錯誤, $ l^\infty $ -錯誤?哪種型號的 AIC/BIC 最好?哪個在交叉驗證中表現更好?對於預期目的,哪個在分析/數學上更好?

這些只是一些數學上的考慮,一些實際的考慮可能是最簡單的,數值上最快的,穩定的或對異常值敏感的等等。可以實時完成,有過度擬合的風險。

所有的點都是平等的嗎?

從統計或財務的角度來看,還值得注意的是,並非所有點都是平等的。我的意思是,在正確安裝它們時,當然有些比其他更重要。也許其中一些比其他的更具流動性,也許一些體積更大,等等。這可能導致加權最小二乘、一些特定的損失函式等。

引用自:https://quant.stackexchange.com/questions/55684