Python statsmodels.glm - family=Poisson() 时的类型错误
Python statsmodels.glm - TypeError when family=Poisson()
我有一个内生值列表 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 数组,我试过显式声明参数 - 似乎没有任何帮助,也无法在文档中找到任何帮助。
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())
我有一个内生值列表 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 数组,我试过显式声明参数 - 似乎没有任何帮助,也无法在文档中找到任何帮助。
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())