我正在实施回归。Output_variable是我的y变量,input2,input4,input6 5&1,input6-3是回归方程中的x变量。所有这些基本上都是df中的列。
import statsmodels.formula.api as sm
model = sm.ols(formula='Output_variable ~ Input2 + input4 + Input5&1 + input6-3', data=df)
fitted1 = model.fit()
fitted1.summary()
我得到了错误:
PatsyError Traceback (most recent call last)
<ipython-input-73-20a8ca10f7b8> in <module>
1 import statsmodels.formula.api as sm
----> 2 model = sm.ols(formula='Output_variable ~ Input2 + input4 + Input5&1 + input6-3', data=df)
PatsyError: Error evaluating factor: NameError: name 'Input5' is not defined
对于未定义的input6,我得到了相同的错误。
基本上,每当我的列名中有像一样的特殊字符和input6在其中都有符号时,就会有一个 patsyerror ,而我得到了一个patsyerror。
如何解决这个问题?
发布于 2020-10-16 11:47:01
您可以执行以下操作:
import statsmodels.formula.api as sm
model = sm.ols(formula='Output_variable ~ Input2 + input4 + Q("Input5&1") + Q("input6-3")', data=df)
fitted1 = model.fit()
fitted1.summary()
问题是在patsy
中,您不能使用“&”和“-”这样的特殊字符。幸运的是,开发人员解决了这个问题,允许使用Q("full text")
绕过
https://stackoverflow.com/questions/64387952
复制相似问题