我正在尝试从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)
做了什么?
答案 0 :(得分:2)
更新糊状:
pip install https://github.com/pydata/patsy/archive/master.zip
在我的情况下,它是从版本0.4到&#39; 0.4.1 + dev&#39;
&#34; C&#34;代表分类变量