的平方残差之和我正在使用sklearn.linear_model.LinearRegression并希望计算我的系数的标准误差。据我所知,sklearn不包含这样做的函数,所以我需要手动计算它们(有关线性回归系数估计的标准误差示例,请参阅https://en.wikipedia.org/wiki/Ordinary_least_squares)。sklearn.linear_model.LinearRegression
我使用我的线性回归的残差_属性来得到平方残差的总和。我的问题是关于http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html的文档,它将_residues定义为:
residues_:array,shape(n_targets,)或(1,)或空。 总和 残差。在 期间通过的每个目标的平方欧几里德2-范数。如果线性回归问题未被确定(训练矩阵的线性无关行数 小于其线性无关列的数目 ),则这是一个空数组。如果 在拟合过程中传递的目标矢量是1维的,这是一个 (1,)形状数组。
“残差总和”是否是文档中的错误?我认为它应该说“残差平方和”。 (如果线性回归包括一个常数,则训练数据上的残差总和为零:参见https://stats.stackexchange.com/questions/194523/why-does-the-sum-of-residuals-equal-0-from-a-graphical-perspective。另外,文档中的以下句子表示“平方欧几里德2-范数”,它是平方和。 )如果文档确实是错误的,我该如何纠正?
编辑:
import numpy as np
from sklearn import linear_model
n_obs = 5
X = np.ones((n_obs, 1), dtype=float)
X[3] = 7.0
y = np.ones((n_obs,))
y[1] = 10.0
y[3] = 9.0
model = linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)
np.isclose(np.sum(np.power(y - model.predict(X=X), 2)), model.residues_) # True
如果你认为这是一个错误,你可以将它发布在他们的[github问题页面](https://github.com/scikit-learn/scikit-learn/issues)上。如果你是对的,那么他们会纠正这个错误,如果你不是这样,你仍然可以获得关于为什么这样写(或执行)的信息。 –
@VivekKumar感谢您的链接,我会这样做。 – Adrian
发表于https://github.com/scikit-learn/scikit-learn/issues/9491 – Adrian