Python 具有两个以上参数的最小二乘优化

Python 具有两个以上参数的最小二乘优化,python,optimization,scipy,least-squares,Python,Optimization,Scipy,Least Squares,我有一个三列的数据框架,一列是债券到期时间、息票价值和市场要求价值,而所有债券没有相同的时间间隔和每年两次的息票支付,我试图拟合一个四次多项式来拟合市场利率。债券的实际价值在询问栏中 我试过了,它一直在出问题。你能帮我一下吗 #tzvika and brothers import matplotlib.pyplot as plt import numpy as np import pandas as pd from scipy.optimize import leastsq as lsq df=

我有一个三列的数据框架,一列是债券到期时间、息票价值和市场要求价值,而所有债券没有相同的时间间隔和每年两次的息票支付,我试图拟合一个四次多项式来拟合市场利率。债券的实际价值在询问栏中 我试过了,它一直在出问题。你能帮我一下吗

#tzvika and brothers
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from scipy.optimize import leastsq as lsq
df=pd.read_csv('bonds2.csv')
#today=pd.datetime.today()
today=pd.to_datetime('2018-03-28')
def rate(alpha,time):
    power=4-np.arange(5)
    return (alpha*time**power).sum()

#caluclate the present value of
def value_of_flow(alpha,maturity,coupon):
    '''if today>pd.to_datetime(maturity):
        #raise Exception('The bond is off date.')
        return -1'''
    today=pd.to_datetime('2018-03-23')
    maturity=pd.to_datetime(maturity)
    coupon_paying_dates=pd.date_range('{}/{}/{}'.format(today.year-1,maturity.month,maturity.day),maturity,freq='12SM-15')
    coupon_paying_dates=coupon_paying_dates[coupon_paying_dates>today]
    day_interval=(coupon_paying_dates-today).days/365

    pv=0
    r_t=0
    period=0
    for period in day_interval:
        r_t=rate(alpha,period)
        pv+=coupon*0.5*np.exp(-r_t*period)

    #get the rate in the last period to calculate present value of face value
    r_t=rate(alphas,day_interval[-1])
    pv+=1*np.exp(-r_t*day_interval[-1])
    return pv
def Errorfun(alpha,maturity,coupon,asked):
    return value_of_flow(alpha,maturity,coupon)-asked
today=pd.to_datetime('2018-03-23')
alphas=np.array([0.0,0.0,0.0,0.0,0.0])
alphas_value,success=lsq(Errorfun,alphas,args=(df.Maturity,df.Coupon,df.Asked))
我不断地发现这个错误:

而如果我在“成熟度”列上运行其他代码,它将运行平稳

AttributeError: 'Series' object has no attribute 'month'