Я использую statsmodel для подгонки GLM (отрицательный бином) и хочу добавить некоторые ограничения к подгонке
В регрессии используются пять параметров: a,b,c,d
и ограничение состоит в a+b=0
Соответствующий код следующий:
model = sm.GLM(y_metrics, X, family=sm.families.NegativeBinomial(alpha=1))
result = model.fit_constrained("a + b = 0")
, но когда я запускаю код, у меня появляется следующая ошибка:
44
45 model = sm.GLM(y_metrics, X, family=sm.families.NegativeBinomial(alpha=1))
---> 46 result = mod.fit_constrained("a + b = 0")
47
48
~/opt/anaconda3/lib/python3.7/site-packages/statsmodels/genmod/generalized_linear_model.py in fit_constrained(self, constraints, start_params, **fit_kwds)
1345
1346 # same pattern as in base.LikelihoodModel.t_test
-> 1347 lc = DesignInfo(self.exog_names).linear_constraint(constraints)
1348 R, q = lc.coefs, lc.constants
1349
~/opt/anaconda3/lib/python3.7/site-packages/patsy/design_info.py in linear_constraint(self, constraint_likes)
534 di.linear_constraint("x1 = x2 = 3")
535 """
--> 536 return linear_constraint(constraint_likes, self.column_names)
537
538 def describe(self):
~/opt/anaconda3/lib/python3.7/site-packages/patsy/constraint.py in linear_constraint(constraint_like, variable_names)
401 if not isinstance(code, str):
402 raise ValueError("expected a string, not %r" % (code,))
--> 403 tree = parse_constraint(code, variable_names)
404 evaluator = _EvalConstraint(variable_names)
405 constraints.append(evaluator.eval(tree, constraint=True))
~/opt/anaconda3/lib/python3.7/site-packages/patsy/constraint.py in parse_constraint(string, variable_names)
235
236 def parse_constraint(string, variable_names):
--> 237 return infix_parse(_tokenize_constraint(string, variable_names),
238 _ops, _atomic)
239
~/opt/anaconda3/lib/python3.7/site-packages/patsy/constraint.py in _tokenize_constraint(string, variable_names)
177
178 # Prefer long matches:
--> 179 variable_names = sorted(variable_names, key=len, reverse=True)
180 variable_re = "|".join([re.escape(n) for n in variable_names])
181
TypeError: object of type 'int' has no len()
Любая идея, почему это это происходит? Заранее спасибо