首页 > 编程知识 正文

python如何计算平方Python lmfit如何计算R平方,定制衣柜如何计算平方

时间:2023-05-04 05:54:53 阅读:219079 作者:426

这可能是个愚蠢的问题,但我在lmfit's documentation中找不到答案。我的问题很简单:如何检索R的平方?(我知道我可以用1 - SS_res / SS_tot手动计算)

更新:

我试着自己计算R平方,并将其与statsmodels中的R平方进行了比较。

两种估计中的参数是相同的,但R平方不是。在

代码:from lmfit import minimize, Parameters

import numpy as np

import statsmodels.api as sm

import random

x = np.linspace(0, 15, 10)

x_ols = sm.add_constant(x)

y = [random.randint(0,15) for r in xrange(10)]

model = sm.OLS(y,x_ols)

results = model.fit()

print "OLS: ", format(results.params[0], '.5f'), format(results.params[1], '.5f'), "R^2: ", results.rsquared

# 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(0,1):

# 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))

yhat = params['a'].value + params['b'].value * x

ybar = np.sum(y)/len(y)

ssreg = np.sum((yhat-ybar)**2) # or sum([ (yihat - ybar)**2 for yihat in yhat])

sstot = np.sum((y - ybar)**2) # or sum([ (yi - ybar)**2 for yi in y])

r2 = ssreg / sstot

print "lmfit: ", format(params['a'].value, '.5f'), format(params['b'].value, '.5f'), "R^2: ", r2

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。