包pymc3
和statsmodels
可以处理Python中的负二项式GLM,如图here :
E(Y) = e^(beta_0 + Sigma (X_i * beta_i))
其中 X_i
是我的预测变量,Y
是我的因变量。有没有一种方法可以强制我的变量(例如X_1
)具有beta_1=1
,以便算法优化其他系数。我愿意同时使用 pymc3 和 statsmodels。谢谢。
最佳答案
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 必须经历成本更高的一般情况。)
关于python - Python 中改进的负二项式 GLM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46835123/