mkran generates random effect terms from simple grouping
variables, for use in nonparametric mixed-effect models as described
in Gu and Ma (2005a, b). The syntax of the formula resembles that
of similar utilities for linear and nonlinear mixed-effect models,
as described in Pinheiro and Bates (2000).
Currently, mkran takes only two kinds of basic formulas,
~1|grp2 or ~grp1|grp2. Both grp1 and
grp2 should be factors, and for the second formula, the
levels of grp2 should be nested under those of grp1.
The Z matrix is determined by grp2. When observations are
ordered according to the levels of grp2, the Z matrix is
block diagonal of 1 vectors.
The Sigma matrix is diagonal. For ~1|grp2, it has one tuning
parameter. For ~grp1|grp2, the number of parameters equals
the number of levels of grp1, with each parameter shared by
the grp2 levels nested under the same grp1 level.
mkran1 adds together two independent random effects, and can
be used recursively to add more than two terms. The arguments are
of the form of the value of mkran or mkran1, which may
or may not be created by mkran or mkran1.
Multiple terms of random effects can also be specified via the likes
of mkran(~1|grp1+1|grp2,data), which is equivalent to
mkran1(mkran(~1|grp1,data),mkran(~1|grp2,data)).