2016-12-31 831 views
2

通過statsmodels檢查線性迴歸OLS適合我看到您必須使用add_constant在擬合之前向自變量中的所有點添加常數「1」。然而,只有當我們的x等於0時,我對這個上下文中截取的唯一理解纔是y的價值,所以我不清楚在這裏注入'1'的目的是什麼。實際上這個常量是否告訴OLS適合什麼?statsmodels add_constant用於OLS攔截,這實際上是在做什麼?

回答

2

它不會爲您的值添加常數,它會爲其擬合的線性方程添加常數項。在單預測案例中,這與將數據擬合y = mx與擬合y = mx + b擬合的區別。

+0

所以所有的常量在做的是表明在方程中有*是* a「b」? –

+1

@TimLindsey:本質上,是的。它告訴模型適合'b'的值以及預測變量的係數。我從來沒有真正理解爲什麼statsmodels需要你明確地添加這個,因爲[描述](http://stats.stackexchange.com/questions/7948/when-is-it-ok-to-remove-the-在一個線性迴歸模型中)你幾乎總是想要這樣做,除非你有特定的理由不這樣做。 – BrenBarn

1

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應該基於你的數據。

相關問題