## Disable test
quit()
require(lme4)
require(robustlmm)
## generate data with multiple grouping effects
group1 <- rep(letters[1:10], each = 32)
group2 <- rep(LETTERS[1:8], each = 4)
treat1 <- rep(c(TRUE, FALSE), each = 2)
treat2 <- c(TRUE, FALSE)
data <- data.frame(group1 = factor(group1), group2 = factor(group2),
treat1 = factor(treat1), treat2 = factor(treat2))
table(data)
data <- data[rep(1L:NROW(data), 3), ]
set.seed(123)
group1means <- 4 * rnorm(10)
group2means <- 4 * rnorm(8)
treat1means <- 2 * rnorm(18)
treat2means <- 2 * rnorm(18)
treatsInter <- 2 * rnorm(80)
errors <- 0.5 * rnorm(NROW(data))
data <- within(data, {
resp1 <- group1means[group1] + errors
resp2 <- resp1 + group2means[group2]
resp3 <- resp2 + as.logical(treat1) * (1 + treat1means[group1])
resp4 <- resp3 + as.logical(treat2) * (1 + treat2means[10 + as.integer(group2)])
resp5 <- resp4 + as.logical(treat2) * (1 + treat2means[group1])
resp6 <- resp5 + as.logical(treat1) * (1 + treat1means[10 + as.integer(group2)])
resp7 <- resp6 + as.logical(treat1) * as.logical(treat2) * (1 + treatsInter[interaction(group1, group2)])
})
testFormula <- function(formula, data) {
print(summary(fm <- lmer(formula, data, control=lmerControl(optimizer="bobyqa"))))
print(summary(rm <- rlmer(formula, data, rho.e = cPsi, rho.b = cPsi, init = lmerNoFit)))
ranef.fm <- ranef(fm, condVar=FALSE)
stopifnot(all.equal(coef(fm), coef(rm), tolerance = 1e-1, check.attributes = FALSE),
all.equal(fixef(fm), fixef(rm), tolerance = 1e-2, check.attributes = FALSE),
all.equal(ranef.fm , ranef(rm), tolerance = 1e-1, check.attributes = FALSE))
invisible(list(fm, rm))
}
testFormula(resp1 ~ (1|group1), data)
testFormula(resp2 ~ (1|group1) + (1|group2), data)
testFormula(resp3 ~ treat1 + (1 + treat1|group1) + (1|group2), data)
testFormula(resp4 ~ treat1 + treat2 + (1 + treat1|group1) + (1 + treat2|group2), data)
testFormula(resp5 ~ treat1 + treat2 + (1 + treat1 + treat2|group1) + (1 + treat2|group2), data)
testFormula(resp6 ~ treat1 + treat2 + (1 + treat1 + treat2|group1) + (1 + treat1 + treat2|group2), data)
testFormula(resp7 ~ treat1*treat2 + (1 + treat1*treat2|group1) + (1 + treat1*treat2|group2), data)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.