如何在python的线性回归模型中计算斜率的99%置信区间?

时间:2016-04-04 10:42:11

标签: 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)。

2 个答案:

答案 0 :(得分:6)

StatsModels' RegressionResultsVS Code API方法。这是一个使用它的示例(他们的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

答案 1 :(得分:1)

您可以使用scipy的线性回归,它可以计算r / p值和标准误差:http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.linregress.html

编辑:正如Brian所强调的那样,我从scipy文档获得了代码:

def create
 super do |user|
   language_user_params = params[:user][:langauges_user].permit(:language_id,:level)
   user.languages_users.create(language_id: language_user_params[:language_id], level: language_user_params[:level])
 end 
end