Извлечение коэффициентов из GLM в Python с использованием 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

Я могу получить значения Intercept и B, выполнив model.params.Intercept и model.params.B, но не могу получить значения каждого C и D.

Например, я пробовал model.params.C[T.foo], и я получаю ошибку.

Как я могу получить определенные значения из модели?


person user2844485    schedule 20.03.2015    source источник
comment
Аналогичный вопрос: stackoverflow.com/questions/47388258/   -  person Anton Tarasenko    schedule 05.12.2018


Ответы (1)


model.params — это pandas.Series. Доступ в качестве атрибута возможен только в том случае, если имя записи является допустимым именем Python.

В этом случае вам нужно индексировать имя в кавычках, то есть model.params["C[T.foo]"]

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

person Josef    schedule 20.03.2015