簡體   English   中英

如何在python的線性回歸模型中計算斜率的99%置信區間?

[英]How to calculate the 99% confidence interval for the slope in a linear regression model in python?

我們有以下線性回歸:y~b0 + b1 * x1 + b2 * x2。 我知道Matlab中的回歸函數確實計算了它,但是numpy的linalg.lstsq沒有( https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html )。

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

您可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM