如何在python 3.6中修改线性回归?
代码如下所示:如何在python 3.6中修改线性回归?,python,statsmodels,patsy,Python,Statsmodels,Patsy,代码如下所示: import statsmodels.formula.api as smf df = pd.read_csv('reg_data.csv') f = 'inf ~ rh*temp*tl*Tt*C(location)' lm = smf.ols(formula = f, data=df).fit() 但它总是给我一个错误: numbers besides '0' and '1' are only allowed with ** 文件中的数据都是不同的数字。有些有2个小数
import statsmodels.formula.api as smf
df = pd.read_csv('reg_data.csv')
f = 'inf ~ rh*temp*tl*Tt*C(location)'
lm = smf.ols(formula = f, data=df).fit()
但它总是给我一个错误:
numbers besides '0' and '1' are only allowed with **
文件中的数据都是不同的数字。有些有2个小数,有些有更多。
有没有办法解决这个问题并得到回归总结?(通过lm.summary()
)
提前谢谢你 哦,你发现了一个有趣的bug 首先,错误消息并不是指数据中的数字。当您在公式中键入文字数字时,会出现此错误消息,如在
中的“y~3*x”
中,它将引发该错误,因为它不喜欢3
但是你的公式里没有任何数字,那怎么回事?好的,您在公式解析器中遇到了一个错误:它检查某个东西是否是数字的方法是检查您是否可以将它传递到int(…)
或float(…)
并获取一个值。但是在Python中,float(“inf”)
是一个有效的表达式,返回表示无穷大的浮点值,即使在Python中纯inf
本身不是一个数字
我在这里提交了错误:
现在的解决方法是避免使用字符串
inf
作为其中一列的名称。(出于同样的原因,您可能也应该避免使用nan
。)抱歉 哦,你发现了一个有趣的bug
首先,错误消息并不是指数据中的数字。当您在公式中键入文字数字时,会出现此错误消息,如在中的“y~3*x”
中,它将引发该错误,因为它不喜欢3
但是你的公式里没有任何数字,那怎么回事?好的,您在公式解析器中遇到了一个错误:它检查某个东西是否是数字的方法是检查您是否可以将它传递到int(…)
或float(…)
并获取一个值。但是在Python中,float(“inf”)
是一个有效的表达式,返回表示无穷大的浮点值,即使在Python中纯inf
本身不是一个数字
我在这里提交了错误:
现在的解决方法是避免使用字符串
inf
作为其中一列的名称。(出于同样的原因,您可能也应该避免使用nan
。)抱歉 多谢各位!这很有帮助!非常感谢你!这很有帮助!