R glm 和 glmnet 使用不同的算法。
当我同时使用两者时,我注意到估计系数之间存在不小的差异。
我感兴趣的是什么时候一个比另一个更准确,以及解决/准确性权衡的时间。
具体来说,我指的是在 glmnet st 中设置 lambda=0 的情况,它估计与 glm 相同的东西。
R glm 和 glmnet 使用不同的算法。
当我同时使用两者时,我注意到估计系数之间存在不小的差异。
我感兴趣的是什么时候一个比另一个更准确,以及解决/准确性权衡的时间。
具体来说,我指的是在 glmnet st 中设置 lambda=0 的情况,它估计与 glm 相同的东西。
glmnet 用于弹性网络回归。这会惩罚估计系数的大小(通过混合 L1 和 L2 惩罚)。它试图通过模型尽可能多地解释数据中的差异,同时保持模型系数很小。我发现这些幻灯片有助于理解它。
glm 不使用惩罚项。
据我了解,效果是,使用弹性网络,您可能会接受一些偏差,以换取估计量方差的减少。因此,哪个最好必须取决于您如何根据偏差和方差定义“最佳”。(例如,我知道 glmnet 与观察相比具有许多特征时具有优势)