simple regresion polinomial multiple modelos modelo machine lineales lineal learning graficar ejemplos python numpy scipy scikit-learn statsmodels

regresion - ¿Cómo calcular el intervalo de confianza del 99% para la pendiente en un modelo de regresión lineal en python?



regresion lineal simple machine learning (2)

Tenemos la siguiente regresión lineal: y ~ b0 + b1 * x1 + b2 * x2. Sé que la función de regresión en Matlab lo calcula, pero linalg.lstsq de numpy no ( https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html ).


Puede usar la regresión lineal de scipy, que sí calcula el valor de r / p y el error estándar: http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.linregress.html

EDITAR: como subraya Brian, tuve el código de la documentación 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


StatsModels '' RegressionResults tiene un método conf_int() . Aquí un ejemplo que lo usa (versión mínimamente modificada de su ejemplo de Mínimos Cuadrados Ordinarios ):

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