We visualize children reference populations for height, weight and body mass index by plotting percentiles of the population as a function of age. Besides the epidemiological interest in these anthropometric curves, they have dual-use potential for reproducible birthday cards.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. The R-markdown source code of this blog is available under a GNU General Public License (GPL v3) license from GitHub.
Percentiles of a reference population at a given age are often used to assess under- and overweight of children. As an example, the WHO defines obesity for children under 5 years of age when the weight-for-height of a child is greater than 3 standard deviations above WHO Child Growth Standards median for that age](https://www.who.int/news-room/fact-sheets/detail/obesity-and-overweight) (see also the WHO R package anthro.
In order to estimate these percentiles, data from a sample of the
reference population is often fitted using flexible regression models
such as GAMLSS (Rigby and Stasinopoulos
2005) or quantile regression (Koenker 2005). This allows for a
flexible modelling of the percentiles as smooth functions of age (Fenske et al.
2013). The reference curves used in Germany are based on the
Box-Cox Cole and Green distribution (Kromeyer-Hauschild et al.
2001) (aka. the LMS method). The childsds
R package contains an implementation of these curves as
data(kro.ref). Furthermore, the package contains similar
reference curves for several other countries as well as the WHO
In what follows, we will re-purpose the package as work-horse for generating individualized birthday cards for children.
Quantiles of the reference population are obtained with the
childsds::make_percentile_tab function. As an example,
let’s get the 5th, 50th and 95th percentile of the height distribution
for the population of girls in Germany aged 0 and 4 years,
library(childsds) data(kro.ref) ::make_percentile_tab( childsdsref = kro.ref, item = "height", age=c(0,4), perc=c(5,50,95), include.pars= FALSE %>% filter(sex == "female") )
## sex age perc_05_0 perc_50_0 perc_95_0 ## 1 female 0 47.39498 51.1112 54.82742 ## 2 female 4 96.33650 103.6051 110.87370
The main result of this short blog post is an Rmd file, which contains a visualization of an imaginary child’s growth trajectory: Albert B. Cook born on 2018-06-11. The data of Albert are stored in a CSV file. We show the trajectories for height, weight and BMI and compare to 5 quantiles of the German reference population, i.e. the 2.5%, 5%, 50%, 95% and 97.5% quantile. The resulting visualization looks as follows:
Albert B. Cook
Albert’s height of 108 cm at age 4.0 years corresponds to the 81.4% quantile among boys in Germany of that age.
Albert’s weight of 19,100 g at age 4.0 years corresponds to the 82.6% quantile among boys in Germany of that age.
Albert’s BMI of 16.4 kg/m² at age 4.0 years corresponds to the 73.3% quantile among boys in Germany of that age.
The Rmd file can be obtained from GitHub and serves as a template for creating html based congratulation cards in response to news of newborn (which usually are annotated with birth height and birth weight) or to track the growth of your own kids.
Percentile curves for longitudinal trajectories in populations can also be used in very different contexts than anthropometry. As an example consider the development of your solve time for the 3x3x3 Rubik’s cube as a function of time since first WCA competition.
According to Kromeyer-Hauschild, K., Wabitsch, M., Kunze, D. et al. Perzentile für den Body-mass-Index für das Kindes- und Jugendalter unter Heranziehung verschiedener deutscher Stichproben. Monatsschr Kinderheilkd 149, 807–818 (2001). https://doi.org/10.1007/s001120170107↩︎
- Vogel M (2022). childsds: Data and
Methods Around Reference Values in Pediatrics. R package version