web-dev-qa-db-ja.com

Pythonの線形回帰モデルで勾配の99%信頼区間を計算する方法は?

次の線形回帰があります:y〜b0 + b1 * x1 + b2 * x2。 Matlabの回帰関数がそれを計算することは知っていますが、numpyのlinalg.lstsqは計算しません( https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users。 html )。

9
user2558053

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
6
Ulrich Stern

R/p値と標準誤差を計算するscipyの線形回帰を使用できます: http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.linregress .html

編集:ブライアンによる下線として、私は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
2
CoMartel