我有y
= len(y)
的内生值列表n
我有一个n x 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数组,我尝试明确声明参数 - 似乎没有任何帮助,也无法在docs中找到任何帮助。
答案 0 :(得分:0)
GLM的使用是正确的。
但是,我猜你的Poisson是discrete_model.Poisson,它是一个单独的模型。 GLM需要Poisson家族。
使用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())