При запуске модели OLS по формуле перехват добавляется по умолчанию.Один из способов пропустить член перехвата - добавить -1
в формулу:
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
df = pd.DataFrame({'X': np.random.randint(0, 100, size=20),
'Y': np.random.randint(0, 100, size=20)})
model = smf.ols('Y ~ X - 1', data=df)
result = model.fit()
Теперь в подгонянной модели содержится только один параметр (для X
):
X 0.691876
dtype: float64
Если вы не используете формулу api, тогда модель OLS не включает перехват, поэтому вам не нужно об этом беспокоиться (в этом случае вам нужно явно добавить ее к своим данным)
Я не уверен, откуда вы взяли параметр fit_intercept
, так как я не могу найти какую-либо ссылку на него в statsmodels документация или исходный код .Возможно, вы думаете о линейной регрессии, используя scikit-learn , который использует параметр для управления перехватом