GAMLSS vs VGAM for percentile curves (Growth chart) It seems that there are two methods and packages in R to calculate the Percentile curves based on LMS (Lambda for the skew, Mu for the median, and Sigma for the generalized coefficient of variation; Cole, 1990).
-- GAMLSS (Generalized Additive Model for Location, Scale and Shape)
-- VGAM (Vector generalized additive model)

*

*Which one of these two techniques and their corresponding R packages can estimate more accurate estimation for percentile curves?


*Among lms.bcn (LMS Quantile Regression with a Box-Cox Transformation to Normality) and lms.yjn (LMS quantile regression with the Yeo-Johnson transformation to normality) in VGAM method/package, which function is more appropriate to calculate the percentile curves?
Thank you so much for your time and advice.
 A: The accuracy of estimated centile curves will depend on how well the model fits the data.
The chosen distribution used is important.
gamlss allows a wide choice of distributions,
including BCCG(mu,sigma,nu) which is the LMS distribution
and models location, scale and skewness.
This was generalised to the
BCT(mu, sigma, nu, tau) and
BCPE(mu, sigma, nu, tau)
distributions which also model kurtosis.
One approach is to fit the BCT distribution,
and then use chooseDist() to compare all distributions on (0, ∞)
in gamlss using a generalised Akaike information criterion:
m1 <- gamlss(y~pb(x), sigma.fo=~pb(x), nu.fo=~pb(x), tau.fo=~pb(x),
family=BCT)
m2 <- chooseDist(m1, type = "realplus", k=c(2,4,8), parallel="snow", ncpus=4)
getOrder(m2,1)[1:20]
getOrder(m2,2)[1:20]
getOrder(m2,3)[1:20]
centiles(m2, xvar=x)
You could also try fitting models to log(Y):
ly <- log(y)
m3 <- gamlss(ly~pb(x), sigma.fo=~pb(x), nu.fo=~pb(x), tau.fo=~pb(x),
family=SHASH)
m4 <- chooseDist(m3, type = "realline", k=c(2,4,8), parallel="snow", ncpus=4)
centiles(m4, xvar=x)
