use*_*053 8 python numpy scipy scikit-learn statsmodels
我们有以下线性回归:y~b0 + b1*x1 + b2*x2.我知道Matlab中的回归函数确实计算了它,但是numpy的linalg.lstsq没有(https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html).
您可以使用 scipy 的线性回归,它计算 r/p 值和标准误差:http://docs.scipy.org/doc/scipy-0.14.0/reference/ generated/scipy.stats.linregress.html
编辑:正如 Brian 所强调的,我从 scipy 文档中获取了代码:
from scipy import stats
import numpy as np
x = np.random.random(10)
y = np.random.random(10)
slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)
confidence_interval = 2.58*std_err
Run Code Online (Sandbox Code Playgroud)
StatsModels' RegressionResults有一个conf_int()方法.这是一个使用它的例子(普通最小二乘示例的最小修改版本):
import numpy as np, statsmodels.api as sm
nsample = 100
x = np.linspace(0, 10, nsample)
X = np.column_stack((x, x**2))
beta = np.array([1, 0.1, 10])
e = np.random.normal(size=nsample)
X = sm.add_constant(X)
y = np.dot(X, beta) + e
mod = sm.OLS(y, X)
res = mod.fit()
print res.conf_int(0.01) # 99% confidence interval
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12553 次 |
| 最近记录: |