Nothing
if (.Platform$OS.type != "windows") {
library(lme4)
library(testthat)
## [glmer(*, gaussian) warns to rather use lmer()]
m3 <- suppressWarnings(glmer(Reaction ~ Days + (Days|Subject), sleepstudy))
m4 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
m5 <- suppressWarnings(glmer(Reaction ~ Days + (Days|Subject), sleepstudy,
family=gaussian))
expect_equal(fixef(m3),fixef(m5))
## hack call -- comes out unimportantly different
m4@call[[1]] <- quote(lme4::lmer)
expect_equal(m3,m4)
expect_equal(m3,m5)
## would like m3==m5 != m4 ??
expect_equal(VarCorr(m4), VarCorr(m5), tolerance = 1e-14)
print(th4 <- getME(m4,"theta"))
expect_equal(th4, getME(m5,"theta"), tolerance = 1e-14)
## glmer() - poly() + interaction
if (requireNamespace("mlmRev")) withAutoprint({
data(Contraception, package="mlmRev")
## ch := with child
Contraception <- within(Contraception, ch <- livch != "0")
## gmC1 <- glmer(use ~ poly(age,2) + ch + age:ch + urban + (1|district),
## Contraception, binomial)
### not a 'warning' per se {cannot suppressWarnings(.)}:
### fixed-effect model matrix is rank deficient so dropping 1 column / coefficient
### also printed with print(): labeled as "fit warnings"
## ==> from ../R/modular.R chkRank.drop.cols()
## --> Use control = glmerControl(check.rankX = "ignore+drop.cols"))
## because further investigation shows "the problem" is really already
## in model.matrix():
set.seed(101)
dd <- data.frame(ch = c("Y","N")[1+rbinom(12, 1, 0.7)], age = rlnorm(12, 16))
colnames(mm1 <- model.matrix( ~ poly(age,2) + ch + age:ch, dd))
## "(Int.)" "poly(age, 2)1" "poly(age, 2)2" "chY" "chN:age" "chY:age"
## If we make the poly() columns to regular variables, can interact:
d2 <- within(dd, { p2 <- poly(age,2); ageL <- p2[,1]; ageQ <- p2[,2]; rm(p2)})
## then, we can easily get what want
(mm2 <- model.matrix( ~ ageL+ageQ + ch + ageL:ch, d2))
## actually even more compactly now ("drawback": 'ageQ' at end):
(mm2. <- model.matrix( ~ ageL*ch + ageQ, d2))
cn2 <- colnames(mm2)
stopifnot(identical(mm2[,cn2], mm2.[,cn2]))
})
} ## skip on windows (for speed)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.