使用 statsmodel 在 Python 中从 GLM 中提取系数
Extracting coefficients from GLM in Python using statsmodel
我有一个定义如下的模型:
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.Intercept
和 model.params.B
获取 Intercept
和 B
的值,但我无法获取每个 [=17= 的值] 和 D
.
例如,我已经尝试 model.params.C[T.foo]
,但出现错误。
如何从模型中获取特定值?
model.params
是一个pandas.Series。仅当条目的名称是有效的 python 名称时才能作为属性访问。
在这种情况下,您需要使用引号中的名称进行索引,即 model.params["C[T.foo]"]
我有一个定义如下的模型:
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.Intercept
和 model.params.B
获取 Intercept
和 B
的值,但我无法获取每个 [=17= 的值] 和 D
.
例如,我已经尝试 model.params.C[T.foo]
,但出现错误。
如何从模型中获取特定值?
model.params
是一个pandas.Series。仅当条目的名称是有效的 python 名称时才能作为属性访问。
在这种情况下,您需要使用引号中的名称进行索引,即 model.params["C[T.foo]"]