使用statsmodel从Python中提取GLM中的系数

use*_*485 9 python pandas statsmodels

我有一个模型,定义如下:

import statsmodels.formula.api as smf
model = smf.glm(formula="A ~ B + C + D", data=data, family=sm.families.Poisson()).fit()
Run Code Online (Sandbox Code Playgroud)

该模型具有如下所示的系数:

Intercept   0.319813
C[T.foo]   -1.058058
C[T.bar]   -0.749859
D[T.foo]    0.217136
D[T.bar]    0.404791
B           0.262614
Run Code Online (Sandbox Code Playgroud)

我可以抓住的值Intercept,并B通过做model.params.Interceptmodel.params.B,但我不能让每个值CD.

我试过model.params.C[T.foo],例如,我得到了错误.

我如何从模型中获取特定值?

Jos*_*sef 13

model.params是一只熊猫.系列.只有当条目的名称是有效的python名称时,才能访问as属性.

在这种情况下,您需要使用引号中的名称进行索引,即 model.params["C[T.foo]"]

请参阅 http://pandas.pydata.org/pandas-docs/dev/indexing.html