我正在尝试对一年中工人缺勤天数的计数数据(因变量)进行建模。我有一组预测变量,包括有关工人、有关他们的工作等的信息,其中大多数是分类变量。因此,需要估计大量系数 (83),但由于我有超过 600 000 行,我认为这应该不会有问题。
此外,我的数据集中没有缺失值。
我的因变量包含很多零值,所以我想估计一个零膨胀模型(泊松或负二项式),其函数zeroinfl
of the pscl
包,代码:
zpoisson <- zeroinfl(formule,data=train,dist = "poisson",link="logit")
但长时间运行后出现以下错误:
Error in solve.default(as.matrix(fit$hessian)) : system is computationally singular: reciprocal condition number = 1.67826e-41
我认为这个错误意味着我的一些协变量是相关的,但在检查成对相关性和方差膨胀因子(VIF)时似乎并非如此。此外,我还估计了其他模型,如 logit 和 Poisson 或负二项式计数模型,没有出现问题,而这些类型的模型对相关预测变量也很敏感。
你知道为什么zeroinfl
功能不起作用?这是否与我有太多预测变量这一事实有关,即使它们不相关?我已经尝试用以下方法删除一些预测变量Boruta
算法,但它保留了所有这些。
在此先感谢您的帮助。
- A 回归量之间的共线性是此错误的潜在原因之一。然而,还有其他一些。
- 问题实际上可能是计算地从某种意义上说回归量的缩放不好。某些回归器可能采用数千或数百万的值,然后具有很小的系数,而其他回归器则采用较小的值并具有巨大的系数。这会导致数值不稳定的 Hessian 矩阵以及上述反演时的错误。典型的原因包括当 x 本身已经很大时,平方回归量 x^2 。只需取 x/1000 左右即可解决问题。
- 问题也可能是分离 or 缺乏变化在回应中。例如,如果对于某些组或因子水平,只有零,则相应的系数估计可能会发散并具有巨大的标准误差。很像二元回归中的(准)完全分离。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)