Penalized Composite Link Model for Efficient Estimation of Smooth Distributions from Coarsely Binned Data

CRAN_Version Linux Build Status codecov issues DOI

lifecycle license CRAN_Download_Badge1 CRAN_Download_Badge2

This repository contains a versatile method for ungrouping histograms (binned count data) assuming that counts are Poisson distributed and that the underlying sequence on a fine grid to be estimated is smooth. The method is based on the composite link model and estimation is achieved by maximizing a penalized likelihood. Smooth detailed sequences of counts and rates are so estimated from the binned counts. Ungrouping binned data can be desirable for many reasons: Bins can be too coarse to allow for accurate analysis; comparisons can be hindered when different grouping approaches are used in different histograms; and the last interval is often wide and open-ended and, thus, covers a lot of information in the tail area. Age-at-death distributions grouped in age classes and abridged life tables are examples of binned data. Because of modest assumptions, the approach is suitable for many demographic and epidemiological applications. For a detailed description of the method and applications see Rizzi et al. (2015).


  1. Make sure you have the most recent version of R
  2. Run the following code in your R console

R install.packages("ungroup")

Updating to the latest version of ungroup package

You can track (and contribute to) the development of ungroup at To install it:

  1. Install the release version of devtools from CRAN with install.packages("devtools").

  2. Make sure you have a working development environment.

    • Windows: Install Rtools.
    • Mac: Install Xcode from the Mac App Store.
    • Linux: Install a compiler and various development libraries (details vary across different flavours of Linux).
  3. Install the development version of ungroup.

R devtools::install_github("mpascariu/ungroup")


Get started with ungroup by checking the vignette R browseVignettes(package = "ungroup")


This software is an academic project. We welcome any issues and pull requests. If ungroup is malfunctioning, please report the case by submitting an issue on GitHub. If you wish to contribute, please submit a pull request following the guidelines in


Rizzi S, Gampe J and Eilers PHC. 2015. Efficient Estimation of Smooth Distributions From Coarsely Grouped Data. American Journal of Epidemiology, Volume 182, Issue 2, Pages 138-147.

Eilers PHC. 2007. Ill-posed problems with counts, the composite link model and penalized likelihood. Statistical Modelling, Volume 7, Issue 3, Pages 239-254.


Buy Me A Coffee

Try the ungroup package in your browser

Any scripts or data that you put into this service are public.

ungroup documentation built on June 28, 2021, 5:08 p.m.