首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从scipy.linalg.lstsq获取R^2值

从scipy.linalg.lstsq获取R^2值
EN

Stack Overflow用户
提问于 2015-05-19 16:00:48
回答 1查看 1.2K关注 0票数 3

我有一个使用scipy.linalg.lstsq函数的拟合3D数据集。

我使用的是:

代码语言:javascript
复制
# 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值呢?

有什么方法可以检查拟合结果的重要性吗?

任何与此相关的想法都将受到高度赞赏。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-05-21 16:55:43

关注http://en.wikipedia.org/wiki/Coefficient_of_determination

代码语言:javascript
复制
B = data[:,2]

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

正如维基百科上的文章所指出的,R2有很多缺点。据我所知,scipy/numpy与statsmodel之类的库相比很差。

如果你想要运行多元回归,因为你需要计算事后估计的系数标准误差,t统计量,p值等等,如果你想知道数据中发生了什么。

有很多帖子致力于用Python运行OLS,所以只需选择一个,例如:http://www.datarobot.com/blog/ordinary-least-squares-in-python/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30319891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档