线性回归系数

Linear Regression Coefficients

我目前正在使用 statsmodels(尽管我也很乐意使用 Scikit)来创建线性回归。在这个特定模型上,我发现当向模型添加多个因子时,OLS 算法会吐出百搭系数。这些系数都非常高和非常低,这似乎是通过取平均来优化算法。它导致所有因素在统计上都不显着。我只是想知道是否有一种方法可以对系数设置上限或下限,以便 OLS 必须在这些新边界内进行优化?

不知道能不能给OLS设置一个条件,让系数的绝对值都小于一个常数

虽然正则化是解决此类问题的一个很好的替代方法。基本上,L1 或 L2 正则化会惩罚优化函数中系数的总和,这会将最不重要变量的系数推近零,因此它们不会提高成本函数的值。

看看 lasso, ridge and elastic net 回归。他们分别使用 L1、L2 和两种形式的正则化。

您可以在 statsmodels 中尝试以下操作:

# Import OLS
from statsmodels.regression.linear_model import OLS

# Initialize model
reg = OLS(endog=y, exog=X)

# Fit model
reg = reg.fit_regularized()