在Python中使用NumPy进行多元回归?
在Python中,使用NumPy进行多变量回归是否可行?
文档这里提到可以这样做,但我找不到更多的具体信息。
3 个回答
1
你可以看看这个 scipy.optimize.leastsq
函数。这个函数有点复杂,但我记得当我想做多变量回归的时候会用到它。(不过我记得的时间有点久了,可能记错了)
2
你链接的网页提到了 numpy.linalg.lstsq,这个函数用来找到一个向量 x,使得 |b - Ax|
的值最小。下面是一个简单的例子,展示它是怎么用的:
首先,我们准备一些“随机”的数据:
import numpy as np
c1,c2 = 5.0,2.0
x = np.arange(1,11)/10.0
y = c1*np.exp(-x)+c2*x
b = y + 0.01*max(y)*np.random.randn(len(y))
A = np.column_stack((np.exp(-x),x))
c,resid,rank,sigma = np.linalg.lstsq(A,b)
print(c)
# [ 4.96579654 2.03913202]
3
是的,下载这个文件( http://www.scipy.org/Cookbook/OLS?action=AttachFile&do=get&target=ols.0.2.py )从 http://www.scipy.org/Cookbook/OLS。
或者你可以安装R语言,并且使用一个Python和R的连接工具。R语言可以做很多事情。