编程语言
首页 > 编程语言> > python-从scipy.linalg.lstsq获取R ^ 2值

python-从scipy.linalg.lstsq获取R ^ 2值

作者:互联网

我使用scipy.linalg.lstsq函数具有适合的3D数据集.
我正在使用:

# best-fit quadratic curve    
A = np.c_[np.ones(data.shape[0]), data[:,:2], np.prod(data[:,:2], axis=1), data[:,:2]**2]    
C,_,_,_ = scipy.linalg.lstsq(A, data[:,2])    
#evaluating on grid      
Z = np.dot(np.c_[np.ones(XX.shape), XX, YY, XX*YY, XX**2, YY**2], C).reshape(X.shape)

但是我怎么能从中得到R ^ 2值给拟合曲面.
有什么方法可以检查拟合结果的重要性?

任何与此有关的想法将不胜感激.
谢谢.

解决方法:

http://en.wikipedia.org/wiki/Coefficient_of_determination以下:

B = data[:,2]

SStot = ((B - B.mean())**2).sum()
SSres = ((B - np.dot(A,C))**2).sum()
R2 = 1 - SSres / SStot

如Wikipedia文章所述,R2有很多缺点.就我所知,scipy / numpy与statsmodels之类的库相比差强人意.

如果要运行多元回归,则需要计算事后估算的系数标准误差,t统计量,p值等等,如果您想了解数据的变化,等等.

有很多文章专门介绍如何使用Python运行OLS,因此只需选择一个,例如:http://www.datarobot.com/blog/ordinary-least-squares-in-python/

标签:least-squares,scipy,python,numpy
来源: https://codeday.me/bug/20191120/2042925.html