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

标签 python pandas statsmodels

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

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 获取 InterceptB 的值 但我无法获取每个 CD 的值。

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

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

最佳答案

model.params 是一个 pandas.Series。仅当条目的名称是有效的 Python 名称时,才能作为属性访问。

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

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

关于python - 使用 statsmodel 在 Python 中从 GLM 中提取系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29165601/

相关文章:

python - pandas read_csv 中的转义引号

python - sklearn.linear_model.ridge 中的统计汇总表?

Python:逆经验累积分布函数(ECDF)?

python - 查找落入范围内的值

python - 延迟的 GAE 重定向

python - 如何在新的 Ubuntu 实例上安装 Hadoop 和 Pydoop

python - Statsmodels 抛出 "overflow in exp"和 "divide by zero in log"警告,伪 R 平方是 -inf

python - 如何获取wget下载的文件的文件名

python - 当一个列表的所有元素都在另一个列表中时如何分组和求和

python - Pandas 按两列分组并在第三列中计算共享值