您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用scipy.stats和statsmodels计算线性回归时的结果不同

5b51 2022/1/14 8:23:52 python 字数 1866 阅读 595 来源 www.jb51.cc/python

当我尝试OLS适合这两个库时,我得到不同的r ^ 2值(确定系数),我无法弄清楚原因. (为方便起见,删除了一些间距)In [1]: import pandas as pd In [2]: import numpy as np In [3]: import statsmodels.api as sm In [4]: import scipy.s

概述

当我尝试OLS适合这两个库时,我得到不同的r ^ 2值(确定系数),我无法弄清楚原因. (为方便起见,删除了一些间距)

In [1]: import pandas as pd       
In [2]: import numpy as np
In [3]: import statsmodels.api as sm
In [4]: import scipy.stats
In [5]: np.random.seed(100)
In [6]: x = np.linspace(0,10,100) + 5*np.random.randn(100)
In [7]: y = np.arange(100)

In [8]: slope,intercept,r,p,std_err = scipy.stats.linregress(x,y)

In [9]: r**2
Out[9]: 0.22045988449873671

In [10]: model = sm.OLS(y,x)
In [11]: est = model.fit()

In [12]: est.rsquared
Out[12]: 0.5327910685035413

这里发生了什么?我想不出来!某处有错误吗?

基本上,一个包是建模y = bx而另一个(有帮助)假设你也想要一个截距项(即y = a bx). [注意:这个假设的优点是,否则你每次想要运行回归时都必须使用x并将一列1绑定到它上面(否则你最终会得到一个有偏见的模型)]

查看this post进行更长时间的讨论.

祝好运!

总结

以上是编程之家为你收集整理的使用scipy.stats和statsmodels计算线性回归时的结果不同全部内容,希望文章能够帮你解决使用scipy.stats和statsmodels计算线性回归时的结果不同所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶