python statsmodels.formula.api.ols:ValueError:对于数字因子,num_columns必须是int

时间:2016-11-17 08:28:15

标签: python statsmodels

我正在尝试从statsmodels.api.anova_lm的帮助字符串中重现该示例:

import statsmodels.api as sm
from statsmodels.formula.api import ols

moore = sm.datasets.get_rdataset("Moore", "car",
                                 cache=True) # load data
data = moore.data
data = data.rename(columns={"partner.status" :
                            "partner_status"}) # make name pythonic
moore_lm = ols('conformity ~ C(fcategory, Sum)*C(partner_status, Sum)',
                data=data).fit()

table = sm.stats.anova_lm(moore_lm, typ=2) # Type 2 ANOVA DataFrame
print table

但是,我从moore_lm = ols('conformity ~ C(fcategory, Sum)*C(partner_status, Sum)', data=data)收到以下错误消息:

  

ValueError:对于数字因子,num_columns必须是int

这就是数据的样子:

>>> print data
      partner_status  conformity fcategory  fscore
0                low           8       low      37
1                ...         ...       ...     ...

我遇到了与我真正感兴趣的数据集相同的问题;是什么导致了这个错误?

另一方面,C(<column>, Sum)做了什么?

1 个答案:

答案 0 :(得分:2)

更新糊状:

 pip install https://github.com/pydata/patsy/archive/master.zip 

在我的情况下,它是从版本0.4到&#39; 0.4.1 + dev&#39;

&#34; C&#34;代表分类变量