【发布时间】:2014-03-22 17:20:24
【问题描述】:
我试图弄清楚使用lmfit 包的截距估计如何产生不同的结果,具体取决于起始值。我使用statsmodels 将估计结果与标准OLS 估计的结果进行比较。
有人可以帮忙吗?
代码:
from lmfit import minimize, Parameters
import numpy as np
import statsmodels.api as sm
x = np.linspace(0, 15, 10)
x_ols = sm.add_constant(x)
y = range(0,10)
model = sm.OLS(y,x_ols)
results = model.fit()
print "OLS: ", format(results.params[0], '.10f'), format(results.params[1], '.10f')
# define objective function: returns the array to be minimized
def fcn2min(params, x, data):
a = params['a'].value
b = params['b'].value
model = a + b * x
return model - data
for i in range(-2,3):
# create a set of Parameters
params = Parameters()
params.add('a', value= i)
params.add('b', value= 20)
# do fit, here with leastsq model
result = minimize(fcn2min, params, args=(x, y))
# print "lmfit: ",result.values # older usage
print "lmfit: ",result.params.values # newer syntax
【问题讨论】:
标签: python scipy least-squares