ama*_*ouq 6 python linear-regression statsmodels
我正在使用statsmodels(向其他python选项开放)运行一些线性回归。我的问题是我需要回归分析不具有截距并将其约束在(0,1)范围内,并且总和为1。
我尝试过这样的事情(至少为1):
from statsmodels.formula.api import glm
import pandas as pd
df = pd.DataFrame({'revised_guess':[0.6], "self":[0.55], "alter_1":[0.45], "alter_2":[0.2],"alter_3":[0.8]})
mod = glm("revised_guess ~ self + alter_1 + alter_2 + alter_3 - 1", data=df)
res = mod.fit_constrained(["self + alter_1 + alter_2 + alter_3 = 1"],
start_params=[0.25,0.25,0.25,0.25])
res.summary()
Run Code Online (Sandbox Code Playgroud)
但仍在努力实施“非负”系数约束。
Rub*_*res -2
简单地进行 L1 正则化回归:
import statsmodels.api as sm
from statsmodels.regression.linear_model import OLS
model = sm.OLS(Y,X)
model2=model.fit_regularized(method='elastic_net', alpha=0.0, L1_wt=1.0, start_params=None, profile_scale=False, refit=False)
model2.params
Run Code Online (Sandbox Code Playgroud)
...并调整超参数。
| 归档时间: |
|
| 查看次数: |
563 次 |
| 最近记录: |