nlme {nlme} | R Documentation |
Nonlinear Mixed-Effects Models
Description
This generic function fits a nonlinear mixed-effects model in the
formulation described in Lindstrom and Bates (1990) but allowing for nested
random effects. The within-group errors are allowed to be correlated
and/or have unequal variances.
Usage
nlme(model, data, fixed, random, groups, start, correlation, weights,
subset, method, na.action, naPattern, control, verbose)
Arguments
model |
a nonlinear model formula, with the response on the left
of a ~ operator and an expression involving parameters and
covariates on the right, or an nlsList object. If
data is given, all names used in the formula should be
defined as parameters or variables in the data frame. The method
function nlme.nlsList is documented separately.
|
data |
an optional data frame containing the variables named in
model , fixed , random , correlation ,
weights , subset , and naPattern . By default the
variables are taken from the environment from which nlme is
called.
|
fixed |
a two-sided linear formula of the form
f1+...+fn~x1+...+xm , or a list of two-sided formulas of the form
f1~x1+...+xm , with possibly different models for different
parameters. The f1,...,fn are the names of parameters included on
the right hand side of model and the x1+...+xm
expressions define linear models for these parameters (when the left
hand side of the formula contains several parameters, they all are
assumed to follow the same linear model, described by the right hand
side expression).
A 1 on the right hand side of the formula(s) indicates a single
fixed effects for the corresponding parameter(s).
|
random |
optionally, any of the following: (i) a two-sided formula
of the form r1+...+rn~x1+...+xm | g1/.../gQ , with
r1,...,rn naming parameters included on the right
hand side of model , x1+...+xm specifying the
random-effects model for
these parameters and g1/.../gQ the grouping structure
(Q may be equal to 1, in which case no / is
required). The random effects formula will be repeated
for all levels of grouping, in the case of multiple levels of
grouping; (ii) a two-sided formula of the form
r1+...+rn~x1+..+xm , a list of two-sided formulas of the form
r1~x1+...+xm , with possibly different random-effects models
for different parameters, a pdMat object with a two-sided
formula, or list of two-sided formulas (i.e. a non-NULL value for
formula(random) ), or a list of pdMat objects with two-sided
formulas, or lists of two-sided formulas. In this case, the grouping
structure formula will be given in groups , or derived from the
data used to fit the nonlinear mixed-effects model, which should
inherit from class groupedData ,; (iii) a named list
of formulas, lists of formulas, or pdMat objects as in (ii),
with the grouping factors as names. The order of nesting will be
assumed the same as the order of the order of the elements in the
list; (iv) an reStruct object. See the documentation on
pdClasses for a description of the available pdMat
classes. Defaults to fixed ,
resulting in all fixed effects having also random effects.
|
groups |
an optional one-sided formula of the form ~g1
(single level of nesting) or ~g1/.../gQ (multiple levels of
nesting), specifying the partitions of the data over which the random
effects vary. g1,...,gQ must evaluate to factors in
data . The order of nesting, when multiple levels are present,
is taken from left to right (i.e. g1 is the first level,
g2 the second, etc.).
|
start |
an optional numeric vector, or list of initial estimates
for the fixed effects and random effects. If declared as a numeric
vector, it is converted internally to a list with a single component
fixed , given by the vector. The fixed component
is required, unless the model function inherits from class
selfStart , in which case initial values will be derived from a
call to nlsList . An optional random component is used to specify
initial values for the random effects and should consist of a matrix,
or a list of matrices with length equal to the number of grouping
levels. Each matrix should have as many rows as the number of groups
at the corresponding level and as many columns as the number of
random effects in that level.
|
correlation |
an optional corStruct object describing the
within-group correlation structure. See the documentation of
corClasses for a description of the available corStruct
classes. Defaults to NULL , corresponding to no within-group
correlations.
|
weights |
an optional varFunc object or one-sided formula
describing the within-group heteroscedasticity structure. If given as
a formula, it is used as the argument to varFixed ,
corresponding to fixed variance weights. See the documentation on
varClasses for a description of the available varFunc
classes. Defaults to NULL , corresponding to homoscedastic
within-group errors.
|
subset |
an optional expression indicating the subset of the rows of
data that should be used in the fit. This can be a logical
vector, or a numeric vector indicating which observation numbers are
to be included, or a character vector of the row names to be
included. All observations are included by default.
|
method |
a character string. If "REML" the model is fit by
maximizing the restricted log-likelihood. If "ML" the
log-likelihood is maximized. Defaults to "ML" .
|
na.action |
a function that indicates what should happen when the
data contain NA s. The default action (na.fail ) causes
nlme to print an error message and terminate if there are any
incomplete observations.
|
naPattern |
an expression or formula object, specifying which returned
values are to be regarded as missing.
|
control |
a list of control values for the estimation algorithm to
replace the default values returned by the function nlmeControl .
Defaults to an empty list.
|
verbose |
an optional logical value. If TRUE information on
the evolution of the iterative algorithm is printed. Default is
FALSE .
|
Value
an object of class nlme
representing the nonlinear
mixed-effects model fit. Generic functions such as print
,
plot
and summary
have methods to show the results of the
fit. See nlmeObject
for the components of the fit. The functions
resid
, coef
, fitted
, fixed.effects
, and
random.effects
can be used to extract some of its components.
Note
The function does not do any scaling internally: the optimization will
work best when the response is scaled so its variance is of the order
of one.
Author(s)
José Pinheiro and Douglas Bates bates@stat.wisc.edu
References
The model formulation and computational methods are described in
Lindstrom, M.J. and Bates, D.M. (1990). The variance-covariance
parametrizations are described in Pinheiro, J.C. and Bates., D.M.
(1996). The different correlation structures available for the
correlation
argument are described in Box, G.E.P., Jenkins,
G.M., and Reinsel G.C. (1994), Littel, R.C., Milliken, G.A., Stroup,
W.W., and Wolfinger, R.D. (1996), and Venables, W.N. and Ripley,
B.D. (2002). The use of variance functions for linear and nonlinear
mixed effects models is presented in detail in Davidian, M. and
Giltinan, D.M. (1995).
Box, G.E.P., Jenkins, G.M., and Reinsel G.C. (1994) "Time Series
Analysis: Forecasting and Control", 3rd Edition, Holden-Day.
Davidian, M. and Giltinan, D.M. (1995) "Nonlinear Mixed Effects Models
for Repeated Measurement Data", Chapman and Hall.
Laird, N.M. and Ware, J.H. (1982) "Random-Effects Models for
Longitudinal Data", Biometrics, 38, 963-974.
Littel, R.C., Milliken, G.A., Stroup, W.W., and Wolfinger, R.D. (1996)
"SAS Systems for Mixed Models", SAS Institute.
Lindstrom, M.J. and Bates, D.M. (1990) "Nonlinear Mixed Effects Models
for Repeated Measures Data", Biometrics, 46, 673-687.
Pinheiro, J.C. and Bates., D.M. (1996) "Unconstrained
Parametrizations for Variance-Covariance Matrices", Statistics and
Computing, 6, 289-296.
Pinheiro, J.C., and Bates, D.M. (2000) "Mixed-Effects Models
in S and S-PLUS", Springer.
Venables, W.N. and Ripley, B.D. (2002) "Modern Applied Statistics with
S", 4th Edition, Springer-Verlag.
See Also
nlmeControl
, nlme.nlsList
,
nlmeObject
, nlsList
,
nlmeStruct
,
pdClasses
,
reStruct
, varFunc
,
corClasses
, varClasses
Examples
fm1 <- nlme(height ~ SSasymp(age, Asym, R0, lrc),
data = Loblolly,
fixed = Asym + R0 + lrc ~ 1,
random = Asym ~ 1,
start = c(Asym = 103, R0 = -8.5, lrc = -3.3))
summary(fm1)
fm2 <- update(fm1, random = pdDiag(Asym + lrc ~ 1))
summary(fm2)
[Package
nlme version 3.1-139
Index]