
The print
, summary
methods (including the
print
for the summary()
result) in lme4 are
modular, using about ten small utility functions. Other packages,
building on lme4 can use the same utilities for ease of
programming and consistency of output.
Notably see the Examples.
llikAIC()
extracts the log likelihood, AIC, and related
statics from a Fitted LMM.
formatVC()
“format()”s the VarCorr
matrix of the
random effects -- for print()
ing and
show()
ing; it is also the “workhorse” of
.prt.VC()
, and returns a character
matrix.
llikAIC(object, devianceFUN = devCrit, chkREML = TRUE,
devcomp = object@devcomp)methTitle(dims)
.prt.methTit(mtit, class)
.prt.family (famL)
.prt.resids (resids, digits, title = "Scaled residuals:", …)
.prt.call (call, long = TRUE)
.prt.aictab (aictab, digits = 1)
.prt.grps (ngrps, nobs)
.prt.warn (optinfo, summary = FALSE, …)
.prt.VC (varcor, digits, comp, formatter = format, …)
formatVC(varcor, digits = max(3, getOption("digits") - 2),
comp = "Std.Dev.", formatter = format,
useScale = attr(varcor, "useSc"), …)
a LMM model fit
the function to be used for computing the deviance; should not be changed for lme4 created objects.
optional logical indicating if object
maybe a REML
fit.
for lme4 always the equivalent of
object@devcomp
; here a list
the result of methTitle(object)
typically class(object)
.
numeric vector of model residuals
.
non-negative integer of (significant) digits to print minimally.
character
string.
optional arguments passed on, e.g., to residuals()
.
logical indicating if the output may be long, e.g.,
printing the control
part of the call if there is one.
typically the AICtab
component of the result of
llikAIC()
.
typically the result of VarCorr()
.
optional ...
a function
used for formatting the numbers.
integer (vector), typically the result of
ngrps(object)
.
integer; the number of observations, e.g., the result
of nobs
.
typically object @ optinfo
, the optimization
infos, including warnings if there were.
logical
(logical) whether the parent model estimates a scale parameter
llikAIC()
returns a list
with components
which is logLik(object)
, and
a “table” of AIC
, BIC
,
logLik
, deviance and df.residual()
values.
# NOT RUN {
## Create a few "lme4 standard" models ------------------------------
fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
fmM <- update(fm1, REML=FALSE) # -> Maximum Likelihood
gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
data = cbpp, family = binomial)
gmA <- update(gm1, nAGQ = 5)
(lA1 <- llikAIC(fm1))
(lAM <- llikAIC(fmM))
(lAg <- llikAIC(gmA))
(m1 <- methTitle(fm1 @ devcomp $ dims))
(mM <- methTitle(fmM @ devcomp $ dims))
(mG <- methTitle(gm1 @ devcomp $ dims))
(mA <- methTitle(gmA @ devcomp $ dims))
.prt.methTit(m1, class(fm1))
.prt.methTit(mA, class(gmA))
.prt.family(gaussian())
.prt.family(binomial())
.prt.family( poisson())
.prt.resids(residuals(fm1), digits = 4)
.prt.resids(residuals(fmM), digits = 2)
.prt.call(getCall(fm1))
.prt.call(getCall(gm1))
.prt.aictab ( lA1 $ AICtab ) # REML
.prt.aictab ( lAM $ AICtab ) # ML --> AIC, BIC, ...
V1 <- VarCorr(fm1)
m <- formatVC(V1)
stopifnot(is.matrix(m), is.character(m), ncol(m) == 4)
print(m, quote = FALSE) ## prints all but the first line of .prt.VC() below:
.prt.VC( V1, digits = 4, formatter = format)
## Random effects:
## Groups Name Std.Dev. Corr
## Subject (Intercept) 24.740
## Days 5.922 0.07
## Residual 25.592
p1 <- capture.output(V1)
p2 <- capture.output( print(m, quote=FALSE) )
pX <- capture.output( .prt.VC(V1, digits = max(3, getOption("digits")-2)) )
stopifnot(identical(p1, p2),
identical(p1, pX[-1])) # [-1] : dropping 1st line
.prt.grps(ngrps = ngrps(fm1),
nobs = nobs (fm1))
## --> Number of obs: 180, groups: Subject, 18
.prt.warn(fm1 @ optinfo) # nothing .. had no warnings
# }
Run the code above in your browser using DataLab