软件包pymc3
和statsmodels
可以在Python中处理负二项GLM,如here所示:
E(Y)= e ^(beta_0 + Sigma(X_i * beta_i))
X_i
s是我的预测变量,Y
是我的因变量。有没有办法强制我的变量(例如X_1
)拥有beta_1=1
,以便算法优化其他系数。我愿意同时使用pymc3
和statsmodels
。感谢。
答案 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必须经历更昂贵的一般情况。)