Как рассчитать 99% доверительный интервал для наклона в модели линейной регрессии в python?

У нас есть следующая линейная регрессия: y ~ b0 + b1 * x1 + b2 * x2. Я знаю, что функция регрессии в Matlab действительно вычисляет ее, но linalg.lstsq numpy - нет (https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html).


person user2558053    schedule 04.04.2016    source источник


Ответы (2)


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
person Ulrich Stern    schedule 04.04.2016
comment
Я был бы признателен, если бы вы могли взглянуть на это и поблагодарить вас: stackoverflow.com/questions/44923808/ - person Desta Haileselassie Hagos; 05.07.2017

Вы можете использовать линейную регрессию scipy, которая вычисляет значение r/p и стандартную ошибку: 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
person CoMartel    schedule 04.04.2016
comment
Как рассчитать 99% доверительный интервал для наклона, используя значение r/p и стандартную ошибку? - person user2558053; 04.04.2016
comment
Если я не ошибаюсь, доверительный интервал 99% соответствует 2,58*stderr. источник: en.wikipedia.org/wiki/Confidence_interval - person CoMartel; 04.04.2016
comment
Значение r можно использовать как показатель качества регрессии: чем больше оно близко к 1, тем лучше регрессия. - person CoMartel; 04.04.2016
comment
2.58*stderr корректно только для больших выборок. Раздел Основные шаги на странице доверительного интервала Википедии дает 2,58 только для известных стандартное отклонение. - person Ulrich Stern; 04.04.2016
comment
В дополнение к моему последнему комментарию, таблица N Multiplier на GraphPad Доверительный интервал средней страницы показывает, как значение 1,96 (для доверительного интервала 95 %) корректируется для малых размеров выборки. - person Ulrich Stern; 04.04.2016
comment
Это не сработало для многомерного случая. - person Mina; 04.05.2021