繁体   English   中英

sklearn/statsmodels 奇异协方差矩阵下普通最小二乘法的结果

[英]Results of sklearn/statsmodels ordinary least squares under singular covariance matrix

当使用sklearn.linear_model.LinearRegressionstatsmodels.regression.linear_model.OLS计算普通最小二乘回归时,当协方差矩阵完全为奇异时,它们似乎不会抛出任何错误。 看起来他们在幕后使用 Moore-Penrose 伪逆而不是通常的逆,这在奇异协方差矩阵下是不可能的。

那么问题是双重的:

  1. 这个设计的重点是什么? 无论协方差矩阵是否奇异,在什么情况下计算 OLS 被认为是有用的?

  2. 那么 output 是什么系数呢? 据我了解,由于协方差矩阵是奇异的,因此通过伪逆将有无限数量的解决方案(在比例常数的意义上)。

两个相关的问题和答案

R 和 Python 中线性回归的差异

具有部分识别的 model 的 Statsmodels

1)在什么情况下,无论协方差矩阵是否为奇异矩阵,都认为计算 OLS 是有用的?

尽管某些参数没有被无限可能的解决方案中的“任意”唯一解决方案识别和挑选,但一些结果统计不受非识别的影响,主要是可估计的线性组合、预测和 r 平方。

即使不是所有参数都被单独识别,一些参数的线性组合也会被识别。 例如,我们仍然可以测试单向分类变量中的所有均值是否相等。 即使在奇点下,这些也是可估计的函数,并且 statsmodels 从其前身 package 继承了pinv行为的原因。 但是,statsmodels 没有从参数估计的奇异协方差矩阵中识别estimable functions的函数。

我们对解释变量的任何值都有一个独特的预测,如果完美的共线性持续存在,这仍然是有用的。

像 Rsquared 这样的一些汇总和推理统计数据与选择唯一参数的方式无关。 这有时很方便并被使用,例如,在诊断和规范测试中,可以从 rsquared 计算 LM-test。

到 2) 那么 output 作为系数是什么?

Moore-Penrose 逆估计的参数可以解释为对称惩罚或正则化估计。 当我们有岭回归并且惩罚权重变为零时,摩尔-彭罗斯解决方案也得到了。 (我不记得我在哪里读到的。)

此外,在某些采用奇异设计的情况下,不确定性仅影响某些参数。 尽管我们在推断这些参数时必须小心,但其他参数仍可能被识别并且不受完美共线部分的影响。

一个软件 package 基本上有 3 个选项来处理奇异情况

  • 引发异常并拒绝计算任何东西
  • 删除一些变量,问题是要删除哪些变量
  • 切换到惩罚解决方案,包括广义逆

statsmodels 选择 3 主要是因为变量的对称处理。 R 和 Stata 在许多模型中选择 2(我认为很难预测哪个变量会丢失)。

对称处理的一个原因是它可以更容易地比较许多数据集的相同回归,如果在使用案例 2 时不总是删除相同的变量,这将更加困难。

确实如此。 正如你在这里看到的

  • sklearn.linear_model.LinearRegression基于scipy.linalg.lstsqscipy.optimize.nnls ,这反过来通过 SVD 分解计算特征矩阵的伪逆(他们没有利用提到的问题 - 你会遇到- 因为它的效率较低)。 此外,观察每个sklearn.linear_model.LinearRegression的实例将特征矩阵的奇异值返回到singular_属性中,并将其等级返回到rank_属性中。
  • 类似的论点适用于statsmodels.regression.linear_model.OLS ,其中 class RegressionModelfit()方法使用以下内容:

拟合方法使用设计/外生变量的伪逆来求解最小二乘最小化。

(请参阅此处以供参考)。

我注意到同样的事情,似乎 sklearn 和 statsmodel 非常健壮,有点过于健壮,让你想知道如何解释结果。 猜测仍然需要建模者进行尽职调查以识别变量之间的任何共线性并消除不必要的变量。 有趣的 sklearn 甚至不会给你 pvalue,这是这些回归中最重要的衡量标准。 当使用变量时,系数会发生变化,这就是为什么我更加关注 pvalues。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM