- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Python 的 statsmodels 包进行负二项式回归。该模型在使用 GLM 例程时估计很好,即
model = smf.glm(formula="Sales_Focus_2016 ~ Sales_Focus_2015 + A_Calls + A_Ed", data=df, family=sm.families.NegativeBinomial()).fit()
model.summary()
但是,GLM 例程不估计 alpha,即色散项。我尝试直接使用负二项式例程(它估计 alpha)即
nb = smf.negativebinomial(formula="Sales_Focus_2016 ~ Sales_Focus_2015 + A_Calls + A_Ed", data=df).fit()
nb.summary()
但这并不收敛。相反,我收到消息:
Warning: Desired error not necessarily achieved due to precision loss.
Current function value: nan
Iterations: 0
Function evaluations: 1
Gradient evaluations: 1
我的问题是:
这两个例程是否使用了不同的估计方法? 有没有办法让 smf.NegativeBinomial 例程使用与 GLM 例程相同的估计方法?
最佳答案
discrete.NegativeBinomial
使用 statsmodels 中的牛顿方法(默认)或 scipy 优化器。主要问题是当我们距离最优值还很远时,指数均值函数很容易导致溢出问题或大梯度和 hessian 的问题。在 fit 方法中有一些尝试以获得良好的起始值,但这并不总是有效。
我通常尝试的几种可能性
GLM 默认使用迭代重新加权最小二乘法 IRLS,它仅适用于一个参数族,即它采用给定的色散参数。因此,同样的方法不能直接用于离散 NegativeBinomial 中的完整 MLE。
GLM 负二项式仍然指定完整的对数。因此,可以使用 GLM.fit() 对色散参数进行网格搜索,以估计色散参数的每个值的平均参数。这应该等同于相应的离散 NegativeBinomial 版本(nb2?我不记得了)。它也可以用作离散版本的 start_params。
在 statsmodels 主版本中,现在有一个连接允许任意 scipy 优化器而不是硬编码的优化器。 scipy最近获得了trust region newton methods, future 会得到更多,这应该比statsmodels中的simple newton method适用于更多的情况。(但是,很可能目前对于离散 NegativeBinomial 不起作用,我刚刚发现了一个可能的问题 https://github.com/statsmodels/statsmodels/issues/3747 )
关于python - Statsmodels - 负二项式不收敛,而 GLM 确实收敛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44398081/
使用 glm 时,binomial、binomial() 和 'binomial' 之间有什么区别。它们并不相同,如以下代码所示: > library(MASS) > bwdf = birthwt[-
我一直在用我的(非 r-savvy)大脑来让 R 产生二项式 glmer 模型的正确预测的百分比。我知道这不是统计上的 super 信息,但经常被报道;所以我也想举报。 数据: 因变量:Tipo,它有
我一直在寻找一种方法来使数据符合 beta 二项分布并估计 alpha 和 beta,类似于 VGAM 库中的 vglm 包的方式。我一直无法找到如何在 python 中执行此操作。有一个 scipy
如何在 Julia 中提取一般线性模型中指定的数据分布?例如,下面我安装了一个玩具示例 Poisson GLM。我想从模型中提取一个字符串“Poisson”。同样,如果使用数据分布指定模型 = Bin
我是一名优秀的程序员,十分优秀!