Как получить ошибки для коэффициентов из линейной регрессии? - PullRequest
0 голосов
/ 24 сентября 2019

Мне удалось вычислить коэффициенты линейной регрессии.Но есть ли способ получить связанные ошибки коэффициентов?Мой код показан ниже.

from scipy.interpolate import *
from numpy import *
x = np.array([4, 12, 56, 58.6,67, 89])
y = np.array([5, 6, 7, 16,18, 19])

degrees = [0,1]       # list of degrees of x to use
matrix = np.stack([x**d for d in degrees], axis=-1)    
coeff = np.linalg.lstsq(matrix, y)[0]     
print("Coefficients", coeff)
fit = np.dot(matrix, coeff)
print("Linear regression", fit)
p1=polyfit(x,y,1)

Вывод:

Coefficients for y=a +bx [3.70720668 0.17012128]
Linear fit [ 4.38769182  5.74866209 13.23399857 13.67631391 15.10533269 18.84800093]

Ошибки не отображаются!Как рассчитать ошибки?

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Вы можете сгенерировать «прогнозируемые» значения для y, назовем его y_pred и сравнить их с y, чтобы получить ошибки.

predicted_line = poly1d(coeff)
y_pred = predicted_line(x)
errors = y-y_pred
0 голосов
/ 24 сентября 2019

Althorugh Мне нравится решение Дэвида Мозелера, если вы хотите, чтобы ошибка оценила правильность вашей регрессии, вы могли бы использовать R2 score (который использует квадратную ошибку), уже реализованный в sklearn:

from sklearn.linear_model import LinearRegression
import numpy as np

x = np.array([4, 12, 56, 58.6,67, 89]).reshape(-1, 1)
y = np.array([5, 6, 7, 16,18, 19])

reg = LinearRegression().fit(x, y)
reg.score(x, y) # R2 score
# 0.7481301984276703

Если значение R2 близко к 1, модель будет хорошая одна

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...