glm2: Fitting Generalized Linear Models with Convergence Problems

The R function glm uses step-halving to deal with certain types of convergence problems when using iteratively reweighted least squares to fit a generalized linear model. This works well in some circumstances but non-convergence remains a possibility, particularly with a non-standard link function. In some cases this is because step-halving is never invoked, despite a lack of convergence. In other cases step-halving is invoked but is unable to induce convergence. One remedy is to impose a stricter form of step-halving than is currently available in glm, so that the deviance is forced to decrease in every iteration. This has been implemented in the glm2 function available in the glm2 package. Aside from a modified computational algorithm, glm2 operates in exactly the same way as glm and provides improved convergence properties. These improvements are illustrated here with an identity link Poisson model, but are also relevant in other contexts.

Ian C. Marschner

CRAN packages used


CRAN Task Views implied by cited packages


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".


For attribution, please cite this work as

Marschner, "glm2: Fitting Generalized Linear Models with Convergence Problems", The R Journal, 2011

BibTeX citation

  author = {Marschner, Ian C.},
  title = {glm2: Fitting Generalized Linear Models with Convergence Problems},
  journal = {The R Journal},
  year = {2011},
  note = {},
  doi = {10.32614/RJ-2011-012},
  volume = {3},
  issue = {2},
  issn = {2073-4859},
  pages = {12-15}