In the GAMLSS implementation in R, the function gamlss() allows modelling all the distribution parameters μ, σ, ν and τ as linear and/or non-linear and/or ‘non- parametric’ smoothing functions of the explanatory variables. This allows the explanatory variables to effect the predictors, (the η’s), of the specific parameters and therefore the parameters themselves. As a result the shape of the distribution of the response variable, (not only the mean), is effected by the explanatory variables.

All the standard linear terms as used in the lm() and glm() functions can be used here. In addition the following smoothing additive term functions can be used:

  • pb(), pbm(), pvc() and pbc(): based on P-splines,
  • cs() and scs(): based on cubic splines,
  • fp(): fractional polynomials
  • fk(): free knot smoothing (break points)
  • lo(): local regression based on the loess() R function
  • nn(): neural network based on the function nnet() of the package nnet (in package gamlss.add)
  • nl(), non-linear term fitting based on the nlm() R function (in package gamlss.nl)
  • random() : simple random effect
  • re() : an interface for the lie() function of the package nlme
  • ri(): for ridge regression and LASSO using P-splines  methodology
  • gnet(): for ridge elastic net and LASSO regressing using the package glmnet
  • ga(), ba(): an interface for the functions gam() and bam() respectively of Simon Wood from the package mvcv (in package gamlss.add)
  • tr() : an interface for the function rpart() of package rpart (in package gamlss.add)
  • pc(), pcr() principal component regression using the package gamlss.foreach

For more information see Chapter 10 of the book `Flexible Regression and Smoothing: Using GAMLSS in R’. New additive terms can be added relatively easily to the gamlss() function.