https://github.com/cran/gss
Tip revision: f94db59525ac703ae61713a19f26ac72f0b9562a authored by Chong Gu on 07 August 2023, 21:00:06 UTC
version 2.2-6
version 2.2-6
Tip revision: f94db59
mkran.Rd
\name{mkran}
\alias{mkran}
\alias{mkran1}
\title{
Generating Random Effects in Mixed-Effect Models
}
\description{
Generate entries representing random effects in mixed-effect models.
}
\usage{
mkran(formula, data)
mkran1(ran1, ran2)
}
\arguments{
\item{formula}{Symbolic description of the random effects.}
\item{data}{Data frame containing the variables in the model.}
\item{ran1}{Random effects in the form of the value of \code{mkran}}.
\item{ran2}{Random effects in the form of the value of \code{mkran}}.
}
\details{
\code{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, \code{mkran} takes only two kinds of basic formulas,
\code{~1|grp2} or \code{~grp1|grp2}. Both \code{grp1} and
\code{grp2} should be factors, and for the second formula, the
levels of \code{grp2} should be nested under those of \code{grp1}.
The Z matrix is determined by \code{grp2}. When observations are
ordered according to the levels of \code{grp2}, the Z matrix is
block diagonal of 1 vectors.
The Sigma matrix is diagonal. For \code{~1|grp2}, it has one tuning
parameter. For \code{~grp1|grp2}, the number of parameters equals
the number of levels of \code{grp1}, with each parameter shared by
the \code{grp2} levels nested under the same \code{grp1} level.
\code{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 \code{mkran} or \code{mkran1}, which may
or may not be created by \code{mkran} or \code{mkran1}.
Multiple terms of random effects can also be specified via the likes
of \code{mkran(~1|grp1+1|grp2,data)}, which is equivalent to
\code{mkran1(mkran(~1|grp1,data),mkran(~1|grp2,data))}.
}
\value{
A list of three elements.
\item{z}{Z matrix.}
\item{sigma}{Sigma matrix to be evaluated through
\code{sigma$fun(para,sigma$env)}.}
\item{init}{Initial parameter values.}
}
\note{
One may pass a formula or a list to the argument \code{random} in
calls to \code{\link{ssanova}} or\code{\link{gssanova}} to fit
nonparametric mixed-effect models. A formula will be converted to a
list using \code{mkran}. A list should be of the same form as the
value of \code{mkran}.
}
\references{
Gu, C. and Ma, P. (2005), Optimal smoothing in nonparametric
mixed-effect models. \emph{The Annals of Statistics}, \bold{33},
1357--1379.
Gu, C. and Ma, P. (2005), Generalized nonparametric mixed-effect
models: computation and smoothing parameter selection.
\emph{Journal of Computational and Graphical Statistics}, \bold{14},
485--504.
Pinheiro and Bates (2000), \emph{Mixed-Effects Models in S and
S-PLUS}. New York: Springer-Verlag.
}
\examples{
## Toy data
test <- data.frame(grp=as.factor(rep(1:2,c(2,3))))
## First formula
ran.test <- mkran(~1|grp,test)
ran.test$z
ran.test$sigma$fun(2,ran.test$sigma$env) # diag(10^(-2),2)
## Second formula
ran.test <- mkran(~grp|grp,test)
ran.test$z
ran.test$sigma$fun(c(1,2),ran.test$sigma$env) # diag(10^(-1),10^(-2))
## Clean up
\dontrun{rm(test,ran.test)}
}
\keyword{internal}