如何解决PatsyError:错误评估因素:NameError:名称''由于列名中的特殊字符而未定义回归
我正在实施回归。在我的回归方程中,Output_variable是我的y变量,input2,input4,Input5&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时出现相同错误。
基本上只要我的列名具有特殊字符(例如Input5中包含&,而input6中具有-登录),就会出现问题,并且我会出现patsyerror。 / p>
该如何解决?
解决方法
您可以执行以下操作:
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")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。