【发布时间】:2018-09-24 09:07:07
【问题描述】:
我有以下代码在提供的数据集上成功运行 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 中?)
【问题讨论】:
-
@sacul 这似乎是我正在寻找的东西,但我没有看到任何选项来提供我的 x 和 y?
-
查看链接页面的 Examples 部分,它显示了一个不错的小示例。
-
@sacul 很有用,你可以从编辑中看到它。但是,要么我没有得到正确的结果,要么没有正确运行回归。
-
Lasso 有一个参数“alpha”。它是一个平衡回归线的拟合和使用(即非零)系数的数量的术语。
标签: python pandas regression lasso-regression