## Not run:
# data(dataEP05A2_2)
#
# # assuming 'day' as fixed, 'run' as random
# remlMM(y~day/(run), dataEP05A2_2)
#
# # assuming both as random leads to same results as
# # calling anovaVCA
# remlMM(y~(day)/(run), dataEP05A2_2)
# anovaVCA(y~day/run, dataEP05A2_2)
#
# # use different approaches to estimating the covariance of
# # variance components (covariance parameters)
# dat.ub <- dataEP05A2_2[-c(11,12,23,32,40,41,42),] # get unbalanced data
# m1.ub <- remlMM(y~day/(run), dat.ub, SSQ.method="qf", VarVC.method="scm")
# m2.ub <- remlMM(y~day/(run), dat.ub, SSQ.method="qf", VarVC.method="gb") # is faster
# V1.ub <- round(vcovVC(m1.ub), 12)
# V2.ub <- round(vcovVC(m2.ub), 12)
# all(V1.ub == V2.ub)
#
# # make it explicit that "gb" is faster than "scm"
# # compute variance-covariance matrix of VCs 10-times
#
# system.time(for(i in 1:500) vcovVC(m1.ub)) # "scm"
# system.time(for(i in 1:500) vcovVC(m2.ub)) # "gb"
#
#
# # fit a larger random model
# data(VCAdata1)
# fitMM1 <- remlMM(y~((lot)+(device))/(day)/(run), VCAdata1[VCAdata1$sample==1,])
# fitMM1
# # now use function tailored for random models
# fitRM1 <- anovaVCA(y~(lot+device)/day/run, VCAdata1[VCAdata1$sample==1,])
# fitRM1
#
# # there are only 3 lots, take 'lot' as fixed
# fitMM2 <- remlMM(y~(lot+(device))/(day)/(run), VCAdata1[VCAdata1$sample==2,])
#
# # the following model definition is equivalent to the one above,
# # since a single random term in an interaction makes the interaction
# # random (see the 3rd reference for details on this topic)
# fitMM3 <- remlMM(y~(lot+(device))/day/run, VCAdata1[VCAdata1$sample==2,])
#
# # fit same model for each sample using by-processing
# lst <- remlMM(y~(lot+(device))/day/run, VCAdata1, by="sample")
# lst
#
# # fit mixed model originally from 'nlme' package
#
# library(nlme)
# data(Orthodont)
# fit.lme <- lme(distance~Sex*I(age-11), random=~I(age-11)|Subject, Orthodont)
#
# # re-organize data for using 'remlMM'
# Ortho <- Orthodont
# Ortho$age2 <- Ortho$age - 11
# Ortho$Subject <- factor(as.character(Ortho$Subject))
# fit.remlMM1 <- remlMM(distance~Sex*age2+(Subject)*age2, Ortho)
#
# # use simplified formula avoiding unnecessary terms
# fit.remlMM2 <- remlMM(distance~Sex+Sex:age2+(Subject)+(Subject):age2, Ortho)
#
# # and exclude intercept
# fit.remlMM3 <- remlMM(distance~Sex+Sex:age2+(Subject)+(Subject):age2-1, Ortho)
#
# # now use exclude covariance of per-subject intercept and slope
# # as for models fitted by function 'anovaMM'
# fit.remlMM4 <- remlMM(distance~Sex+Sex:age2+(Subject)+(Subject):age2-1, Ortho, cov=FALSE)
#
# # compare results
# fit.lme
# fit.remlMM1
# fit.remlMM2
# fit.remlMM3
# fit.remlMM4
#
# # are there a sex-specific differences?
# cmat <- getL(fit.remlMM3, c("SexMale-SexFemale", "SexMale:age2-SexFemale:age2"))
# cmat
#
# test.fixef(fit.remlMM3, L=cmat)
# ## End(Not run)
Run the code above in your browser using DataLab