test_that("merMod residual diagnostics fail for GLMMs", {
skip_on_cran()
data(cbpp, package = "lme4")
gm1 <- lme4::glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
data = cbpp, family = binomial,
nAGQ = 0)
expect_error(residualDiagnostics(gm1))
})
test_that("merMod residual diagnostics work for LMMs", {
skip_on_cran()
m <- lme4::lmer(extra ~ group + (1 | ID), data = sleep)
mrd <- residualDiagnostics(m)
expect_s3_class(mrd, c("residualDiagnostics.merMod", "residualDiagnostics"))
expect_s3_class(JWileymisc::as.residualDiagnostics(mrd),
c("residualDiagnostics.merMod", "residualDiagnostics"))
expect_identical(nrow(sleep), nrow(mrd$Residuals))
expect_equal(
mean(mrd$Residuals$Residuals, na.rm = TRUE),
0,
tolerance = .05)
})
test_that("merMod residual diagnostics work with missing data", {
skip_on_cran()
sleep[1,1] <- NA
m <- lme4::lmer(extra ~ group + (1 | ID), data = sleep,
na.action = na.omit)
mrd <- residualDiagnostics(m)
expect_s3_class(mrd, c("residualDiagnostics.merMod", "residualDiagnostics"))
expect_s3_class(JWileymisc::as.residualDiagnostics(mrd),
c("residualDiagnostics.merMod", "residualDiagnostics"))
expect_true(nrow(mrd$Residuals) < nrow(sleep))
expect_equal(
mean(mrd$Residuals$Residuals, na.rm = TRUE),
0,
tolerance = .05)
})
test_that("merMod residual diagnostics work for LMMs with on the fly functions", {
skip_on_cran()
data(aces_daily, package = "JWileymisc")
aces_daily <- subset(aces_daily, !is.na(STRESS))
m <- lme4::lmer(PosAff ~ poly(STRESS, 3) + (1 | UserID),
data = aces_daily)
suppressWarnings(mrd <- residualDiagnostics(m))
expect_s3_class(mrd, c("residualDiagnostics.merMod", "residualDiagnostics"))
expect_s3_class(JWileymisc::as.residualDiagnostics(mrd),
c("residualDiagnostics.merMod", "residualDiagnostics"))
expect_true(nrow(mrd$Residuals) <= nrow(aces_daily))
expect_equal(
mean(mrd$Residuals$Residuals, na.rm = TRUE),
0,
tolerance = .05)
})
test_that("merMod model diagnostics fail for GLMMs", {
skip_on_cran()
data(cbpp, package = "lme4")
gm1 <- lme4::glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
data = cbpp, family = binomial,
nAGQ = 0)
expect_error(modelDiagnostics(gm1))
})
test_that("merMod model diagnostics work for LMMs, ev.perc = 0", {
skip_on_cran()
m <- lme4::lmer(extra ~ group + (1 | ID), data = sleep)
md <- modelDiagnostics(m, ev.perc = 0)
expect_s3_class(md, c("modelDiagnostics.merMod", "modelDiagnostics"))
expect_s3_class(JWileymisc::as.modelDiagnostics(md),
c("modelDiagnostics.merMod", "modelDiagnostics"))
expect_length(md$modelDiagnostics, 1)
expect_identical(nrow(md$extremeValues), 0L)
})
test_that("merMod model diagnostics work for LMMs, ev.perc = .5", {
skip_on_cran()
m <- lme4::lmer(extra ~ group + (1 | ID), data = sleep)
md <- modelDiagnostics(m, ev.perc = .5)
expect_s3_class(md, c("modelDiagnostics.merMod", "modelDiagnostics"))
expect_s3_class(JWileymisc::as.modelDiagnostics(md),
c("modelDiagnostics.merMod", "modelDiagnostics"))
expect_length(md$modelDiagnostics, 1)
expect_true(nrow(md$extremeValues) > 0)
})
test_that("merMod model diagnostics work with missing data", {
skip_on_cran()
sleep[1,1] <- NA
m <- lme4::lmer(extra ~ group + (1 | ID), data = sleep,
na.action = na.omit)
md <- modelDiagnostics(m)
expect_s3_class(md, c("modelDiagnostics.merMod", "modelDiagnostics"))
expect_s3_class(JWileymisc::as.modelDiagnostics(md),
c("modelDiagnostics.merMod", "modelDiagnostics"))
expect_length(md$modelDiagnostics, 1)
})
test_that("merMod model diagnostics work for LMMs with on the fly functions and multiple random effects", {
skip_on_cran()
data(aces_daily, package = "JWileymisc")
aces_daily <- subset(aces_daily, !is.na(STRESS))
strictControl <- lme4::lmerControl(optCtrl = list(
algorithm = "NLOPT_LN_NELDERMEAD",
xtol_abs = 1e-10,
ftol_abs = 1e-10))
suppressWarnings(
m <- lme4::lmer(PosAff ~ poly(STRESS, 2) + (1 + poly(STRESS, 2) | UserID),
data = aces_daily, control = strictControl))
suppressWarnings(md <- modelDiagnostics(m, ev.perc = .1))
expect_s3_class(md, c("modelDiagnostics.merMod", "modelDiagnostics"))
expect_s3_class(JWileymisc::as.modelDiagnostics(md),
c("modelDiagnostics.merMod", "modelDiagnostics"))
expect_length(md$modelDiagnostics, 4)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.