Python statsmodels.glm - TypeError когда family = Poisson () - PullRequest
0 голосов
/ 05 июня 2018

У меня есть список y эндогенных значений, где len(y) = n У меня есть тревожный массив 5 nympy X экзогенных значений

, когда я запускаю

import statsmodels.api as sm
sm.GLM(y, X).fit().summary() 

все работает нормально.

Однако, когда я добавляю аргумент family:

sm.GLM(y, X, family=Poisson()).fit().summary()

я получаю сообщение об ошибке:

TypeError: __init__() missing 2 required positional arguments: 'endog' and 'exog'

Я попытался преобразовать объект y в виде массива numpyЯ попытался явно объявить аргументы - кажется, ничто не помогает, и я не могу найти ничего в документах, чтобы помочь.

1 Ответ

0 голосов
/ 05 июня 2018

Использование GLM является правильным.

Однако, я думаю, ваш Пуассон - это discrete_model.Poisson, который представляет собой отдельную модель.GLM нуждается в семействе Пуассона.

Правильное использование API должно быть

sm.GLM(y, X, family=sm.families.Poisson()).fit().summary()

или с прямым импортом из примера, над которым я работал

from statsmodels.genmod.generalized_linear_model import GLM
from statsmodels.genmod import families

mod = GLM(y, x, family=families.Poisson())
res = mod.fit()
print(res.summary())
...