The default integration method for proc nlmixed is adaptive Gauss-Hermite quadrature (Pinheiro and Bates 1995), other integration methods can be requested using the method option. Users can select from three additional methods, the first-order method (Beal and Sheiner 1982), Hardy quadrature, or adaptive importance sampling (Pinheiro and Bates 1995). Not all methods are available for all models. The first order method is available only when the outcome is specified as normal and the random option is used. Hardy quadrature allows only one random effect. For the Gauss-Hermite and importance sampling methods, the use of adaptive quadrature and adaptive scaling can be suppressed using the noad and noadscale options respectively. For adaptive importance sampling an additional option, seed, is available to specify the value of the starting seed for the random number generator. The valid values for method as well as the associated techniques are listed in the table below.
Value | Technique |
FIRO | first order method |
GAUSS | Gauss-Hermite quadrature (default) |
HARDY | Hardy quadrature based on an adaptive trapezoidal rule |
ISAMP | adaptive importance sampling |
Below are examples of how to specify methods and their options.
/* Using the first order method (method=firo) */ proc nlmixed data="d:datahsb" method=firo ; pred = b0 + u + b1*female ; model mathach ~ normal(pred,sd); random u ~ normal(0,s2u) subject=id; run; /* Using Hardy quadrature (method=hardy) */ proc nlmixed data="d:datahsb" method=hardy ; pred = b0 + u + b1*female ; model mathach ~ normal(pred,sd); random u ~ normal(0,s2u) subject=id; run; /* non-adaptive (noad) Gauss-Hermite quadrature */ proc nlmixed data="d:datahsb" noad; pred = b0 + u + b1*female ; model mathach ~ normal(pred,sd); random u ~ normal(0,s2u) subject=id; run; /* importance sampling (method=isamp) without adaptive scaling (noadscale) */ proc nlmixed data="d:datahsb" method=isamp noscale ; pred = b0 + u + b1*female ; model mathach ~ normal(pred,sd); random u ~ normal(0,s2u) subject=id; run; /* non-adaptive importance sampling without adaptive scaling */ proc nlmixed data="d:datahsb" method=isamp noad noscale; pred = b0 + u + b1*female ; model mathach ~ normal(pred,sd); random u ~ normal(0,s2u) subject=id; run; /* adaptive importance sampling, setting the seed (seed=1234) */ proc nlmixed data="d:datahsb" method=isamp seed=1234; pred = b0 + u + b1*female ; model mathach ~ normal(pred,sd); random u ~ normal(0,s2u) subject=id; run;
References
Pinheiro, Jose C., and Douglas M. Bates (1995) "Approximations to the Log-Likelihood Function in the Nonlinear Mixed-Effects Model," Journal of Computational and Graphical Statistics, Vol. 4, No. 1, pp. 12-35.
Beal, Stuart L. and Lewis B. Sheiner (1982), “Estimating Population Kinetics,” Critical Reviews in Biomedical Engineering, Vol. 8, No. 3, pp. 195-222.