python-使用pandas pd.cut生成带有statsmodels的分类变量
作者:互联网
我尝试使用pd.cut从连续变量创建分类变量.我想在随后的statsmodel定义的包括此虚拟变量的回归中使用它.当我创建以这种方式创建的类别变量时,出现错误
TypeError: data type not understood.
下面包括一个测试用例.
import numpy as np
import pandas as pd
import statsmodels as sm
import statsmodels.formula.api as smf
df = pd.DataFrame(np.random.randn(6,4))
df.columns = ['A', 'B', 'C', 'D']
df['ttt']=pd.cut(df['D'], bins=2)
test = smf.ols('A ~ B + ttt', data=df).fit()
我确定我做错了明显的事情.任何帮助,将不胜感激.
解决方法:
我不确定statsmodels到底在哪儿,在熊猫中是否包括对新的分类类型的支持.目前,您可能必须将分类转换回对象类型才能正常工作(请检查所生成的ols是否合适,我不知道您尝试执行的操作的全部详细信息):
df['ttt_fixed'] = df.ttt.astype(np.object)
test = smf.ols('A ~ B + ttt_fixed', data=df).fit()
test.summary()
标签:categorical-data,pandas,python,statsmodels 来源: https://codeday.me/bug/20191121/2048892.html