注意:这不是重复的,因为其中一篇帖子没有引用如何使用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.
我正在寻找的是实现以下伪代码的最简单方法:
If (OLS output has Warning [2])
do something.........
注意:这不是重复的,因为其中一篇帖子没有引用如何使用if语句实现找到我的特定错误。 (两个警告,只检测其中一个)
答案 0 :(得分:3)
结果对象没有包含警告的属性。这是因为在调用summary
方法时会立即生成警告文本。 (有关代码,请参阅here)
相反,您必须自己检查最小特征值的值。 statsmodels
使用的最小特征值的限制是1e-10,所以对应的代码是:
if results.eigenvals[-1] < 1e-10:
#Do something.......