如何通过 OLS 回归输出摘要检测 python 中的特定警告

How to detect a specific warning in python via OLS Regression output summary

注意:这不是重复的,因为其中一篇文章没有按照我的意愿参考如何使用 if 语句实现查找我的特定错误。 (两次警告,仅检测到其中一次)

如何检测 OLS 回归输出中的特定警告,以便我可以在 if 语句中使用它来进行另一次回归?

还有一个警告我想忽略,所以我只想注意具体的警告:

[2] The smallest eigenvalue is 0. This might indicate that there are strong multicollinearity problems or that the design matrix is singular.

例如:图像下方显示的警告 [2]。

我正在寻找的是实现如下伪代码的最简单方法:

If (OLS output has Warning [2])
         do something.........

注意:这不是重复的,因为其中一篇文章没有按照我的意愿参考如何使用 if 语句实现查找我的特定错误。 (两次警告,仅检测到其中一次)

没有包含警告的结果对象的属性。这是因为警告文本是在调用 summary 方法时即时生成的。 (相关代码见here

相反,您必须自己检查最小特征值的值。 statsmodels 使用的最小特征值的限制是 1e-10 所以你的等效代码是:

if results.eigenvals[-1] < 1e-10:
    #Do something.......