我正在对两组数据Y和X执行OLS。我使用statsmodel.api.OLS。 但是,无论是否在X之前添加常量,我都发现了一些截然不同的结果。 这是代码:

import statsmodels.api as sm
import numpy as np

mess = "SELECT .... FROM... WHERE ...."
data = np.array(db.extractData(mess))
Y = data[,:0]
X = data[,:1]
#Option1 
res = sm.OLS(Y,X).fit().rsquared ---> will return 0.76
#Option2
X = sm.add_constant(X)
res = sm.OLS(Y,X).fit().rsquared ---> will return 0.06

考虑到是否要添加常数,存在巨大差异,我认为自己做错了。 非常感谢你花时间陪伴。

===============>>#1 票数:2

您需要添加常数。 从文档中获取: http : //www.statsmodels.org/devel/generation/statsmodels.regression.linear_model.OLS.html

An intercept is not included by default and should be added by the user. See statsmodels.tools.add_constant.

  ask by Dirty_Fox translate from so

未解决问题?本站智能推荐: