在使用python中statsmodels.api模块时,在多元线性回归拟合过程中,会出现以下报错:
model = sm.formula.ols("y1~土壤蒸发量mm+土壤蒸发量(mm)+x3+x4+x5+x6+x7", data = train).fit()
patsy.PatsyError: Error evaluating factor: NameError: name '土壤蒸发量' is not defined
原因是字段中没法识别(),当把括号去掉,仅包含中文和英文是可以的。
sm.formula.ols("y1~土壤蒸发量mm+温度℃+x3+x4+x5+x6+x7", data = train).fit()
当字段中包含其它字符如,℃,也会报错:
patsy.PatsyError: error tokenizing input (maybe an unclosed string?)
处理方式是把字段的特殊符号去掉,如,(),℃,等等,或者读取数据后,更换列字段,用x1,x2符号表示。