奇异协方差矩阵下sklearn/stats模型的结果

2024-09-14 23:01:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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

问题有两个方面:

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

  2. 那么它作为系数输出什么呢?根据我的理解,因为协方差矩阵是奇异的,所以通过伪逆,会有无穷多个解(在标度常数的意义上)


Tags: 目的model错误常数情况矩阵sklearnlinear
3条回答

两个相关的问题和答案

Differences in Linear Regression in R and Python

Statsmodels with partly identified model

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

即使某些参数未被识别,且未被“任意”唯一解从无限可能解中选取,但某些结果静态不受非识别的影响,主要是可估计线性组合、预测和r平方

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

对于解释变量的任何值,我们都可以得到一个唯一的预测,如果完美共线持续存在,该预测仍然有用

一些汇总和推断统计数据(如Rsquared)与唯一参数的选择方式无关。这有时很方便,例如在诊断和规格测试中使用,其中LM测试可以从rsquared计算出来

到2)它作为系数输出什么

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

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

软件包基本上有3个选项来处理单一情况

  • 引发异常并拒绝计算任何内容
  • 删除一些变量,问题是删除哪些变量
  • 切换到包含广义逆的惩罚解

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

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

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

事实确实如此。如你所见here

  • sklearn.linear_model.LinearRegression是基于{}或{}的,这反过来又通过SVD分解计算特征矩阵的伪逆(它们不利用正态方程-对于正态方程,您可能会遇到上述问题-因为它效率较低)。此外,请注意,每个sklearn.linear_model.LinearRegression实例将特征矩阵的奇异值返回到singular_属性中,并将其秩返回到rank_属性中
  • 类似的参数适用于statsmodels.regression.linear_model.OLS,其中类RegressionModelfit()方法使用以下参数:

The fit method uses the pseudoinverse of the design/exogenous variables to solve the least squares minimization.

(参考见here

相关问题 更多 >