首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >以变量为约束的约束回归python

以变量为约束的约束回归python
EN

Stack Overflow用户
提问于 2018-06-30 00:41:39
回答 2查看 284关注 0票数 0

我尝试先使用sm.GLM模型,然后使用model.fit_constrained代码,在Python语言中运行约束回归。

我在两个虚拟变量旁边输入了两个变量,这些虚拟变量是我试图约束的。我希望两个虚拟变量的系数乘以一个权重等于零。

当我将系数乘以整数权重时,这种方法效果很好,如下所示

results = model.fit_constrained('BOATS * 1 + CARS * 0.5')

然而,我希望这些整数是可变的,并且依赖于我的数据的比例,每个虚拟变量都有一个1。我已经计算了系列SectorWgt中的比例,但不知道如何将其输入到model.fit_constrained代码中。

这是我最好的尝试

results = model.fit_constrained('SIZE*int(SectorWgt.iloc[0])+VQMadj*int(SectorWgt.iloc[1])')

但是我得到了一个错误

patsy.PatsyError: unrecognized token in constraint

由于

int(SectorWgt.iloc[0])

部分代码。

有谁有什么想法吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-30 03:08:12

使用字符串格式:

x = int(SectorWgt.iloc[0])
y = int(SectorWgt.iloc[1])

results = model.fit_constrained('SIZE*{}+VQMadj*{}'.format(x, y))
票数 0
EN

Stack Overflow用户

发布于 2018-07-03 21:00:43

如果使用Python3.6或更新版本,您可以使用Python3.6或更新版本的f-strings来利用更清晰的字符串插值语法。

constraint_str = f"SIZE*{int(SectorWgt.iloc[0])}+VQMadj*{int(SectorWgt.iloc[1])}"
results = model.fit_constrained(constraint_str)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51106180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档