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

15

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

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

模型的系数如下所示:
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

我可以通过执行 model.params.Interceptmodel.params.B 来获取截距和B的值,但是我无法获得每个 CD 的值。

例如,我尝试了 model.params.C[T.foo],但是出现了错误。

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


一个类似的问题:https://dev59.com/VVYN5IYBdhLWcg3wdoAY - Anton Tarasenko
1个回答

19
model.params 是一个 pandas.Series。如果条目名称是有效的 Python 名称,则可以使用属性访问方式。在这种情况下,您需要使用带引号的名称进行索引,例如 model.params["C[T.foo]"]
参见http://pandas.pydata.org/pandas-docs/dev/indexing.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接