2016-11-17 45 views
0

我試圖從statsmodels.api.anova_lm的幫助字符串重現例如:蟒蛇statsmodels.formula.api.ols:ValueError異常:對於數值的因素,必須NUM_COLUMNS是int

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: For numerical factors, num_columns must be an int

這是數據看起來的樣子:

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

我遇到了與我實際感興趣的數據集相同的問題;那麼是什麼原因導致這個錯

在附註中,C(<column>, Sum)是做什麼用的?

回答

1

更新糊狀:

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

在我的情況,它是從0.4版本到 '0.4.1 +開發'

「C」 代表分類變量