statsmodels add_constant用于OLS拦截,这实际上是做什么的?

Tim*_*sey 6 python linear-regression statsmodels

通过statsmodels OLS拟合回顾线性回归我看到你必须使用add_constant在拟合之前为自变量中的所有点添加常量'1'.然而,当我们的x等于0时,我在这个上下文中对截距的唯一理解是y的值,所以我不清楚是什么目的总是在这里注入'1'.这个常数实际上告诉OLS适合什么?

wi3*_*i3o 9

statsmodel中的sm.add_constant与LinearRegression()中sklearn的fit_intercept参数相同。如果你不做 sm.add_constant 或当 LinearRegression(fit_intercept=False) 时,那么 statsmodels 和 sklearn 算法都假设 y = mx + b 中的 b=0,并且它将使用 b=0 而不是计算来拟合模型b 应该基于您的数据。


Bre*_*arn 6

它不会为您的值添加常量,它会为其拟合的线性方程添加一个常数项.在单预测器的情况下,它是将y = mx数据拟合到数据与拟合之间的差异y = mx + b.

  • @TimLindsey:本质上,是的。它告诉模型拟合“b”的值以及预测变量的系数。我从来没有真正理解为什么 statsmodels 要求你明确添加这个,因为如 [here](http://stats.stackexchange.com/questions/7948/when-is-it-ok-to-remove-the-线性回归模型中的截取)您几乎总是想这样做,除非您有不这样做的具体理由。 (3认同)