Я пытаюсь сделать прогноз libor на основе модели Vasicek. Я изо всех сил пытаюсь сделать калибровку Vasicek, основываясь на исторических данных libor и используя python. Итак, я пытаюсь решить это уравнение, зная libor и не зная a, b и sigma. Я думал, что лучше всего использовать scipy.optimize, но я не знаю, как его кодировать. Это мой код:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize_scalar
def vasicek(r0, a, b, sigma, N=10000, seed=777):
np.random.seed(seed)
dt = 1/float(N)
rates = [r0]
for i in range(N):
dr = a*dt*(b-rates[-1]) + sigma*np.random.normal()
rates.append(rates[-1] + dr)
return range(N+1), rates
table = pd.read_excel(r'/Users/abderrahmane/Downloads/HP Libor Weekly.xlsx')
x, y = vasicek(r0, a, b, sigma, 110)
plt.plot(x,y)
plt.xlabel('time')
plt.ylabel('rate')
plt.show()