gpt4 book ai didi

python - 即使我设置了 fit_intercept= False,为什么我的回归模型仍返回截距?

转载 作者:行者123 更新时间:2023-12-01 01:27:00 33 4
gpt4 key购买 nike

基本上,我尝试基于没有截距的数据帧运行回归,因此我将拟合截距设置为 false,但以下代码生成包含截距的参数。有人知道为什么会出现这种情况吗?

model2 = smf.ols('Y ~ X', data=df_final)
result2 = model2.fit(cov_type = 'HAC', cov_kwds = {'maxlags':5}, fit_intercept= False)
result2.params

Intercept 0.032649
X 0.014521
dtype: float64

最佳答案

使用公式运行 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 documentation 中找不到任何对它的引用。或source code 。也许您正在考虑使用 scikit-learn 进行线性回归,它确实使用一个参数来控制拦截

关于python - 即使我设置了 fit_intercept= False,为什么我的回归模型仍返回截距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53249177/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com