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