我有以下代码在提供的数据集上成功运行OLS回归:
y = df['SPXR_{}D'.format(window)]
x = df[cols]
x = sm.add_constant(x)
mod = sm.OLS(y, x)
res = mod.fit()
我将如何运行套索和山脊?我似乎无法找到任何statsmodels函数或包来执行此操作。
使用sklearn更新代码:
y = df['SPXR_{}D'.format(window)]
x = df[cols]
x = sm.add_constant(x)
mod = linear_model.Lasso()
res = mod.fit(x, y)
print(res.coef_)
print(res.intercept_)
res.coef_看起来像这样:
[ 0. 0. -0. 0. -0. -0. -0. 0. 0. -0. 0. 0. 0. -0. -0. 0. -0.]
我是如何使用该功能的? (也许我不应该使用statsmodels将alpha常量添加到我的DF中?)
答案 0 :(得分:1)
正如sacul所写,最好使用sklearn来做这些事情。在这种情况下,
from sklearn import linear_model
rgr = linear_model.Ridge().fit(x, y)
请注意以下事项:
fit_intercept=True
的{{1}}参数减少了您手动添加常量的需要。ibex
,这是一个旨在通过Ridge
让sklearn
更好地工作的图书馆。