使用pandas pd.cut生成带有statsmodels的分类变量

时间:2014-11-12 04:29:24

标签: python pandas statsmodels categorical-data

我尝试使用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()

我确信我做的事情显然是错的。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

我不确定statsmodels在包含对pandas中新Categorical类型的支持方面的确切位置。目前,您可能需要将分类转换回对象类型才能使用(请检查结果ols是否合理,我不知道您尝试的内容的全部细节做):

df['ttt_fixed'] = df.ttt.astype(np.object)
test = smf.ols('A ~ B + ttt_fixed', data=df).fit()
test.summary()