424 lines
16 KiB
R
424 lines
16 KiB
R
|
#### Testing Examples --- related to the new "sigma = fixed" feature
|
||
|
#### ================================================================
|
||
|
|
||
|
## library(nlme,lib.loc=lib.loc)
|
||
|
library(nlme)
|
||
|
|
||
|
nlme:::doExtras() ## used below {when activated by the tester, e.g., MM..r}
|
||
|
## isSun <- Sys.info()[["sysname"]] == "SunOS"
|
||
|
|
||
|
##=== example 1 general linear model page 251 gls ML and LME ================
|
||
|
##
|
||
|
ex <- "ex1_gls_page251"; .pt <- proc.time()
|
||
|
##
|
||
|
cat("\n example ", ex,"\n")
|
||
|
sigma <- 2
|
||
|
cat("\nFixed sigma= ",sigma," estimation method 'ML'\n")
|
||
|
t1.fix.ML.gls <- gls(distance ~ Sex *I(age-11), data = Orthodont,
|
||
|
correlation = corSymm(form = ~1 | Subject),
|
||
|
weights = varIdent(form = ~1 |age),
|
||
|
control = glsControl(sigma = sigma),
|
||
|
method = "ML")
|
||
|
(s1M <- summary(t1.fix.ML.gls))
|
||
|
(a1M <- anova(t1.fix.ML.gls)) # sequential
|
||
|
(a1Mm<- anova(t1.fix.ML.gls, type = "marginal"))
|
||
|
## t_{n} ^2 == F_{1,n}:
|
||
|
stopifnot(all.equal(as.vector(s1M$tTable[,"t-value"] ^ 2),
|
||
|
a1Mm[,"F-value"], tolerance = 1e-14),
|
||
|
identical(2, sigma(t1.fix.ML.gls)))
|
||
|
|
||
|
##
|
||
|
cat("\nFixed sigma= ",sigma," estimation method 'REML'\n")
|
||
|
t1.fix.REML.gls <- gls(distance ~ Sex*I(age-11), data = Orthodont,
|
||
|
correlation = corSymm(form = ~1 | Subject),
|
||
|
weights = varIdent(form = ~1 |age),
|
||
|
control = glsControl(sigma = sigma,
|
||
|
maxIter = 1000, msMaxIter = 200),
|
||
|
method = "REML")
|
||
|
(s1R <- summary(t1.fix.REML.gls))
|
||
|
(a1R <- anova(t1.fix.REML.gls))
|
||
|
(a1Rm <- anova(t1.fix.REML.gls, type="marginal"))
|
||
|
intervals(t1.fix.REML.gls) # now work (via 'apVar')
|
||
|
## t_{n} ^2 == F_{1,n}:
|
||
|
stopifnot(all.equal(as.vector(s1R$tTable[,"t-value"] ^ 2),
|
||
|
a1Rm[,"F-value"], tolerance = 1e-14))
|
||
|
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|
||
|
|
||
|
##=== example 2 linear mixed model page 147 lme ML and REML ================
|
||
|
ex <- "ex2_lme_page147"; .pt <- proc.time()
|
||
|
##
|
||
|
cat("\n example ", ex,"\n")
|
||
|
##
|
||
|
method <- "ML"
|
||
|
sigma <- 1
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
t1.fix.ML.lme <- lme(distance ~ I(age-11), data = Orthodont,
|
||
|
control = lmeControl(sigma = sigma),
|
||
|
method = method)
|
||
|
summary (t1.fix.ML.lme)
|
||
|
anova (t1.fix.ML.lme)
|
||
|
intervals(t1.fix.ML.lme)
|
||
|
stopifnot(sigma(t1.fix.ML.lme) == 1)
|
||
|
|
||
|
method <- "REML"
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
t1.fix.REML.lme <- lme(distance ~ I(age-11), data = Orthodont,
|
||
|
control = lmeControl(sigma = sigma), method = method)
|
||
|
summary (t1.fix.REML.lme)
|
||
|
anova (t1.fix.REML.lme)
|
||
|
intervals(t1.fix.REML.lme)
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|
||
|
|
||
|
##=== example 3 general non-linear model page 402/ page 512 gnls ls ========
|
||
|
ex <- "ex3_gnls_page402"; .pt <- proc.time()
|
||
|
##
|
||
|
cat("\n example ", ex,"\n")
|
||
|
##
|
||
|
method <- "LS"
|
||
|
sigma <- 1
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
t1.fix.gnls <- gnls( rate ~SSasympOff(pressure, Asym, lrc, c0), data = Dialyzer,
|
||
|
params = list(Asym + lrc ~ QB, c0 ~ 1),
|
||
|
start = c(53.6,8.6,0.51,-0.26, 0.225),
|
||
|
control = gnlsControl(sigma = 1))
|
||
|
stopifnot(is.null(t1.fix.gnls$apVar)) ## as is has *no* varying ranef-parameters
|
||
|
summary (t1.fix.gnls)
|
||
|
anova (t1.fix.gnls)
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n"); .pt <- proc.time()
|
||
|
t1.fix.w <- update(t1.fix.gnls, weights = varPower())
|
||
|
summary (t1.fix.w)
|
||
|
anova (t1.fix.w)
|
||
|
(it1fw <- intervals(t1.fix.w))
|
||
|
stopifnot(all.equal(it1fw$varStruct["power",],
|
||
|
c(lower = 0.33147895,
|
||
|
est. = 0.36474755,
|
||
|
upper = 0.39801614), tol = 1e-6))
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|
||
|
|
||
|
##=== example 4 mixed non-linear model page 363 nlme =======================
|
||
|
ex <- "ex4_nlme_page363"; .pt <- proc.time()
|
||
|
##
|
||
|
cat("\n example ", ex,"\n")
|
||
|
method <- "ML"
|
||
|
cat("\nVariable sigma; estimation method ", method,"\n")
|
||
|
t1.ML.nlme <- nlme(conc ~ SSfol(Dose, Time, lKe, lKa, lCl), data = Theoph,
|
||
|
fixed = lKe + lKa + lCl ~ 1,
|
||
|
method = method, start = c(-2.4,0.45,-3.2))
|
||
|
## default control, no fixed sigma
|
||
|
t1.ML.nlme$numIter # 23 (32-bit)
|
||
|
stopifnot(all.equal(as.vector(t1.ML.nlme$sigma), 0.6818253, tol = 1e-5))
|
||
|
|
||
|
sigma <- 0.7
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
set.seed(44)
|
||
|
system.time(# *not* fast :
|
||
|
t1.fix.ML.nlme <- nlme(conc ~ SSfol(Dose, Time, lKe, lKa, lCl), data = Theoph,
|
||
|
fixed = lKe + lKa + lCl ~ 1,
|
||
|
method = method, start = c(-2.4,0.45,-3.2),
|
||
|
control = nlmeControl(sigma=sigma, maxIter = 200),
|
||
|
verbose = interactive())
|
||
|
)
|
||
|
t1.fix.ML.nlme$numIter # 58 or 61 (and now 22)..
|
||
|
(sM4 <- summary(t1.fix.ML.nlme))
|
||
|
(aM4 <- anova (t1.fix.ML.nlme))
|
||
|
t1.fix.ML.nlme$apVar ## "Non-positive definite approximate variance-covariance"
|
||
|
##(iM4 <- intervals(t1.fix.ML.nlme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t1.fix.ML.nlme),
|
||
|
c(lKe = -2.432512, lKa = 0.450163, lCl = -3.2144713), tol= 8e-6)
|
||
|
,
|
||
|
all.equal(sM4$tTable[,"Std.Error"], # aarch64/linux gave 5.915e-5
|
||
|
c(lKe = 0.0640155, lKa = 0.196058, lCl = 0.0808379), tol = 1e-4)
|
||
|
,
|
||
|
all.equal(aM4[,"F-value"],
|
||
|
c(65.439, 9.09557, 1581.21), tol = 1e-4) # ATLAS had 7.86e-05
|
||
|
)
|
||
|
|
||
|
##
|
||
|
## REML method
|
||
|
if(nlme:::doExtras()) { ## -- takes 2--3 minutes
|
||
|
method <- "REML"
|
||
|
sigma <- 0.7
|
||
|
cat("\nFixed sigma= ", sigma," estimation method ", method,"\n")
|
||
|
##
|
||
|
## only converges when tolerance is not small (and still takes long!) :
|
||
|
t1.fix.REML.nlme <- update(t1.fix.ML.nlme, method = method,
|
||
|
control = nlmeControl(tolerance = 0.0005,
|
||
|
sigma=sigma,
|
||
|
pnlsMaxIter = 20, # not just 7
|
||
|
maxIter = 1000),
|
||
|
verbose = interactive())
|
||
|
cat(" -> numIter: ", t1.fix.REML.nlme$numIter, "\n") # 380 or so
|
||
|
print(summary(t1.fix.REML.nlme))
|
||
|
print( anova(t1.fix.REML.nlme))
|
||
|
it1.fRn <- try( intervals(t1.fix.REML.nlme) ) ## cannot get .. Non-positive ...
|
||
|
}# only if(nlme:::doExtras())
|
||
|
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|
||
|
|
||
|
##=== example 5 mixed non-linear model page 358 nlme =======================
|
||
|
##
|
||
|
##
|
||
|
ex <- "ex5_nlme_page365"; .pt <- proc.time()
|
||
|
cat("\n example ", ex,"\n")
|
||
|
##
|
||
|
method <- "ML"
|
||
|
sigma <- 1
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
t5.fix.ML.nlme <- nlme(circumference ~ SSlogis(age,Asym,xmid,scal), data = Orange,
|
||
|
fixed = Asym + xmid + scal ~ 1,
|
||
|
method = method, start = c(192,727,356),
|
||
|
control = nlmeControl(sigma = sigma))
|
||
|
(sM5 <- summary(t5.fix.ML.nlme))
|
||
|
(aM5 <- anova (t5.fix.ML.nlme))
|
||
|
(t5.fix.ML.nlme$apVar) ## Non-positive definite [FIXME?]
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t5.fix.ML.nlme),
|
||
|
c(Asym= 192.79023, xmid= 726.36351, scal= 355.62941), tol= 1e-7)
|
||
|
,
|
||
|
all.equal(sM5$tTable[,"Std.Error"],
|
||
|
c(Asym= 14.1688, xmid= 35.3425, scal=16.3637), tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aM5[,"F-value"],
|
||
|
c(4879.5, 208.534, 472.316), tol = 5e-5)
|
||
|
)
|
||
|
|
||
|
## REML method
|
||
|
method <-"REML"
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
t5.fix.REML.nlme <- update(t5.fix.ML.nlme, method = method,
|
||
|
control = nlmeControl(sigma=sigma),
|
||
|
verbose = interactive())
|
||
|
## converges very quickly (when started from ML!)
|
||
|
(sR5 <- summary(t5.fix.REML.nlme))
|
||
|
(aR5 <- anova (t5.fix.REML.nlme))
|
||
|
( t5.fix.REML.nlme$apVar) ## Non-positive definite [FIXME?]
|
||
|
stopifnot(
|
||
|
## ML and REML : fixed effects are very close
|
||
|
all.equal(fixef(t5.fix.REML.nlme), fixef(t5.fix.ML.nlme), tol = 1e-6)
|
||
|
,
|
||
|
all.equal(sR5$tTable[,"Std.Error"],
|
||
|
c(Asym= 13.548, xmid= 33.794, scal=15.6467), tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aR5[,"F-value"],
|
||
|
c(5336.29, 228.076, 516.594), tol = 5e-5)
|
||
|
)
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|
||
|
|
||
|
##=== example 6 linear mixed model page 177 lme ML and REML ================
|
||
|
##
|
||
|
ex <- "ex6_lme_page177"; .pt <- proc.time()
|
||
|
cat("\n example ", ex,"\n")
|
||
|
##
|
||
|
method <- "ML"
|
||
|
sigma <- 1
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
t6.fix.ML.lme <- lme(distance ~ I(age-11), data = Orthodont,
|
||
|
weights = varIdent(form = ~1 | Sex),
|
||
|
method = method,
|
||
|
control = lmeControl(sigma = sigma))
|
||
|
(sM6 <- summary (t6.fix.ML.lme))
|
||
|
(aM6 <- anova (t6.fix.ML.lme))
|
||
|
(iM6 <- intervals(t6.fix.ML.lme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t6.fix.ML.lme),
|
||
|
c("(Intercept)"= 24.009565, "I(age - 11)"= 0.64760432), tol= 1e-7)
|
||
|
,
|
||
|
all.equal(sM6$tTable[,"Std.Error"],
|
||
|
c("(Intercept)"= 0.426561, "I(age - 11)"= 0.066832), tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aM6[,"F-value"], c(3162.47, 93.8969), tol = 5e-5)
|
||
|
,
|
||
|
all.equal(iM6$varStruct["Female",], ## Win 32
|
||
|
c(lower = 0.51230063, ## 0.51226722
|
||
|
est. = 0.65065925, ## 0.65065925
|
||
|
upper = 0.82638482), ## 0.82643872
|
||
|
## was tol = if(isSun) 4e-4 else 6e-5)#= 4.39e-5
|
||
|
tol = 4e-4)
|
||
|
## seen 5.35e-5 (Sparc Sol., no long double); later, 6e-5 was not ok
|
||
|
## Windows 64bit w/ OpenBLAS 0.2.18 gave 5.721e-05 (Avi A)
|
||
|
## Win-builder (i386) gave 9.584157e-05
|
||
|
)
|
||
|
|
||
|
##-------------
|
||
|
method <- "REML"
|
||
|
sigma <- 1
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
|
||
|
t6.fix.REML.lme <- lme(distance ~I(age-11), data = Orthodont,
|
||
|
weights = varIdent(form = ~1 | Sex),
|
||
|
method = method,
|
||
|
control = lmeControl(sigma = sigma))
|
||
|
(sR6 <- summary (t6.fix.REML.lme))
|
||
|
(aR6 <- anova (t6.fix.REML.lme))
|
||
|
(iR6 <- intervals(t6.fix.REML.lme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t6.fix.REML.lme),
|
||
|
c("(Intercept)"= 24.010662, "I(age - 11)"= 0.64879966), tol= 1e-7)
|
||
|
,
|
||
|
all.equal(sR6$tTable[,"Std.Error"],
|
||
|
c("(Intercept)"= 0.436365, "I(age - 11)"= 0.0687549), tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aR6[,"F-value"], c(3019.86, 89.046), tol = 5e-5)
|
||
|
,
|
||
|
all.equal(iR6$varStruct["Female",], ## Win 32
|
||
|
c(lower = 0.51774671, ## 0.51778038
|
||
|
est. = 0.66087796, ## 0.66087807
|
||
|
upper = 0.8435779), ## 0.84352331
|
||
|
## was tol = if(isSun) 4e-4 else 5e-5)# 4.37e-5
|
||
|
tol = 4e-4) # was 5.63e-5 without long doubles.
|
||
|
)
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|
||
|
|
||
|
##=== example 7 linear mixed model page 172 lme ML and REML ================
|
||
|
ex <- "ex7_lme_page172"; .pt <- proc.time()
|
||
|
|
||
|
cat("\n example ", ex,"\n")
|
||
|
method <- "ML"
|
||
|
sigma <- 1
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
set.seed(107)
|
||
|
t7.fix.ML.lme <- lme( current ~ voltage + I(voltage^2), data = Wafer,
|
||
|
random = list(Wafer = pdDiag(~voltage + I(voltage^2)),
|
||
|
Site = pdDiag(~voltage + I(voltage^2)) ),
|
||
|
method = method,
|
||
|
control = lmeControl(sigma = 1,
|
||
|
## nlminb: false convergence on 32-bit
|
||
|
msVerbose = TRUE, opt = "optim"))
|
||
|
(ss7 <- summary(t7.fix.ML.lme))
|
||
|
(aa7 <- anova(t7.fix.ML.lme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t7.fix.ML.lme),
|
||
|
c("(Intercept)" = -4.4611657, "voltage" = 5.9033709,
|
||
|
"I(voltage^2)" = 1.1704027), tol = 1e-7)
|
||
|
,
|
||
|
all.equal(ss7$tTable[,"Std.Error"],
|
||
|
c("(Intercept)" = 0.446086, "voltage" = 0.608571,
|
||
|
"I(voltage^2)"= 0.187459), tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aa7[,"F-value"],
|
||
|
c(2634.2137, 8851.0513, 38.981463), tol = 5e-5)
|
||
|
)
|
||
|
##------------------------------------------------------ REML ---
|
||
|
method <- "REML"
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
## This had 'false convergence' on Solaris using nlminb, and
|
||
|
## optim found a portable answer
|
||
|
t7.fix.REML.lme <- lme( current ~ voltage + I(voltage^2), data = Wafer,
|
||
|
random = list(Wafer = pdDiag(~voltage + I(voltage^2)),
|
||
|
Site = pdDiag(~voltage + I(voltage^2)) ),
|
||
|
control = lmeControl(sigma = 1, opt = "optim"),
|
||
|
method = method)
|
||
|
(sR7 <- summary(t7.fix.REML.lme))
|
||
|
(aR7 <- anova(t7.fix.REML.lme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t7.fix.REML.lme), fixef(t7.fix.ML.lme),
|
||
|
## should not change much from ML to REML !
|
||
|
tol = 1e-6)
|
||
|
,
|
||
|
all.equal(sR7$tTable[,"Std.Error"],
|
||
|
c("(Intercept)" = 0.44441, "voltage" = 0.606321,
|
||
|
"I(voltage^2)"= 0.186754), tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aR7[,"F-value"],
|
||
|
c(2584.9515, 8885.0, 39.2760), tol = 1e-6)
|
||
|
)
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|
||
|
|
||
|
##=== example 8 mixed non-linear model page 364 nlme =======================
|
||
|
##
|
||
|
ex <- "ex8_nlme_page364"; .pt <- proc.time()
|
||
|
##
|
||
|
cat("\n example ", ex,"\n")
|
||
|
method <- "ML"
|
||
|
sigma <- 1
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
set.seed(8^2)
|
||
|
t8.fix.ML.nlme <- nlme(conc ~ SSfol(Dose, Time, lKe, lKa, lCl), data = Theoph,
|
||
|
fixed = lKe + lKa + lCl ~ 1,
|
||
|
random = pdDiag(lKe + lKa + lCl ~ 1),
|
||
|
method = method, start = c(-2.4,0.5,-3.3),
|
||
|
control = nlmeControl(sigma = 1))
|
||
|
(sM8 <- summary(t8.fix.ML.nlme))
|
||
|
(aM8 <- anova (t8.fix.ML.nlme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t8.fix.ML.nlme),
|
||
|
c(lKe = -2.4554999, lKa = 0.44870292, lCl = -3.2296957),
|
||
|
tol = 1e-7)
|
||
|
,
|
||
|
all.equal(sM8$tTable[,"Std.Error"],
|
||
|
c(lKe = 0.0739269, lKa = 0.197524, lCl = 0.0683049),
|
||
|
tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aM8[,"F-value"],
|
||
|
c(10.9426, 17.4101, 2235.73), tol = 5e-5)
|
||
|
)
|
||
|
## REML method
|
||
|
method <- "REML"
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
t8.fix.REML.nlme <- update(t8.fix.ML.nlme, method = method)
|
||
|
(sR8 <- summary(t8.fix.REML.nlme))
|
||
|
(aR8 <- anova (t8.fix.REML.nlme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t8.fix.REML.nlme), fixef(t8.fix.ML.nlme),
|
||
|
## should not change much from ML to REML !
|
||
|
tol = 1e-6)
|
||
|
,
|
||
|
all.equal(sR8$tTable[,"Std.Error"],
|
||
|
c(lKe = 0.073082, lKa = 0.195266, lCl = 0.0675243),
|
||
|
tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aR8[,"F-value"],
|
||
|
c(11.1971, 17.815, 2287.72), tol = 5e-5)
|
||
|
)
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|
||
|
|
||
|
##=== example 9 mixed non-linear model page 365 nlme =======================
|
||
|
##
|
||
|
ex <- "ex9_nlme_page365"; .pt <- proc.time()
|
||
|
##
|
||
|
cat("\n example ", ex,"\n")
|
||
|
method <- "ML"
|
||
|
sigma <- 1
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
set.seed(909)
|
||
|
t9.fix.ML.nlme <- nlme(conc ~ SSfol(Dose, Time, lKe, lKa, lCl), data = Theoph,
|
||
|
fixed = lKe + lKa + lCl ~ 1,
|
||
|
random = pdDiag( lKa + lCl ~ 1),
|
||
|
method = method, start = c(-2.4,0.5,-3.3),
|
||
|
control = nlmeControl(sigma = 1))
|
||
|
(sM9 <- summary(t9.fix.ML.nlme))
|
||
|
(aM9 <- anova (t9.fix.ML.nlme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t9.fix.ML.nlme),
|
||
|
c(lKe = -2.4555745, lKa = 0.44894103, lCl = -3.2297273),
|
||
|
tol = 1e-7)
|
||
|
,
|
||
|
all.equal(sM9$tTable[,"Std.Error"],
|
||
|
c(lKe = 0.0739266, lKa = 0.197459, lCl = 0.0683082),
|
||
|
tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aM9[,"F-value"],
|
||
|
c(10.9669, 17.4108, 2235.56), tol = 5e-5)
|
||
|
)
|
||
|
## REML method
|
||
|
method <- "REML"
|
||
|
cat("\nFixed sigma= ",sigma," estimation method ", method,"\n")
|
||
|
t9.fix.REML.nlme <- update(t9.fix.ML.nlme, method = method)
|
||
|
(sR9 <- summary(t9.fix.REML.nlme))
|
||
|
(aR9 <- anova (t9.fix.REML.nlme))
|
||
|
stopifnot(
|
||
|
all.equal(fixef(t9.fix.REML.nlme), fixef(t9.fix.ML.nlme),
|
||
|
## should not change much from ML to REML !
|
||
|
tol = 1e-6)
|
||
|
,
|
||
|
all.equal(sR9$tTable[,"Std.Error"],
|
||
|
c(lKe = 0.0730817, lKa = 0.195202, lCl = 0.0675275),
|
||
|
tol = 5e-5)
|
||
|
,
|
||
|
all.equal(aR9[,"F-value"],
|
||
|
c(11.2219, 17.8157, 2287.55), tol = 5e-5)
|
||
|
)
|
||
|
cat("Time elapsed: ", (proc.time() - .pt)[1:3], "\n")
|