如果有任何错误,请更正我的代码。我要做的就是使函数最小化以找到参数“ a”和“ b”,以及如何仅通过查看函数来确定初始猜测。
import numpy as np
import pandas as pd
data=pd.read_csv("C:\\Users\\Bza\\Documents\\Project\\Python files\\Default Dataset.csv", header=None)
x=data.iloc[:,0]
events=data.iloc[:,1]
def f(params):
a, b = params
s=0.0
for i in range(0,71):
s+=((events[i]-x[i]**(a+b*np.log(x[i]))))/np.sqrt(events[i])
return s
guess=[1,1]
from scipy.optimize import minimize
result=minimize(f,guess,method='Nelder-Mead')
print (result)
顺便说一句,函数是卡方函数。在mathematica中,a和b分别为-1.2和-0.045。