修改了Python中的负二项GLM

时间:2017-10-19 16:57:09

标签: python glm statsmodels pymc3

软件包pymc3statsmodels可以在Python中处理负二项GLM,如here所示:

E(Y)= e ^(beta_0 + Sigma(X_i * beta_i))

X_i s是我的预测变量,Y是我的因变量。有没有办法强制我的变量(例如X_1)拥有beta_1=1,以便算法优化其他系数。我愿意同时使用pymc3statsmodels。感谢。

1 个答案:

答案 0 :(得分:3)

GLM和statsmodels.discrete中的计数模型包括和可选的关键字offset,它完全适用于此用例。它被添加到线性预测部分,因此对应于固定系数等于1的附加变量。

http://www.statsmodels.org/devel/generated/statsmodels.genmod.generalized_linear_model.GLM.html http://www.statsmodels.org/devel/generated/statsmodels.discrete.discrete_model.NegativeBinomial.html

除此之外:具有族NegativeBinomial的GLM将负二项分散参数视为固定,而离散模型NegativeBinomial通过MLE与平均参数一起估计色散参数。

另一方面:GLM对参数进行线性或仿射限制的fit_constrained方法。这通过转换设计矩阵并使用offset作为常量部分来实现。在问题中固定参数的简单情况下,这会以与上述相同的方式减少使用偏移量(虽然fit_constrained必须经历更昂贵的一般情况。)