如何通过 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.......
注意:这不是重复的,因为其中一篇文章没有按照我的意愿参考如何使用 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.......