python statsmodels.formula.api.ols: ValueError: For numerical factors, num_columns must be an int
python statsmodels.formula.api.ols: ValueError: For numerical factors, num_columns must be an int
我正在尝试从 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: 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)
有什么作用?
更新馅饼:
pip install https://github.com/pydata/patsy/archive/master.zip
就我而言,它是从版本 0.4 到“0.4.1+dev”
"C"表示分类变量
我正在尝试从 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: 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)
有什么作用?
更新馅饼:
pip install https://github.com/pydata/patsy/archive/master.zip
就我而言,它是从版本 0.4 到“0.4.1+dev”
"C"表示分类变量