Nothing
# Test substantive effects
library(lme4)
set.seed(157)
# Test all user parameters for REimpact----
#context("Test all user parameters for REimpact")
test_that("REimpact parameters are respected", {
skip_on_cran()
g1 <- lmer(y ~ lectage + studage + (1|d) + (1|s), data=InstEval)
#Warning is about %dopar% call in predictInterval
zed <- suppressWarnings(REimpact(g1, newdata = InstEval[9:12, ], groupFctr = "d", n.sims = 50,
include.resid.var = TRUE))
expect_identical(names(zed), c("case", "bin", "AvgFit", "AvgFitSE", "nobs"))
zed2 <- REimpact(g1, newdata = InstEval[9:12, ], groupFctr = "s", n.sims = 50,
include.resid.var = TRUE)
expect_equal(nrow(zed), 3 * nrow(InstEval[9:12, ]))
expect_false(all(zed$AvgFit == zed2$AvgFit))
expect_false(all(zed$AvgFitSE == zed2$AvgFitSE))
expect_identical(names(zed2), c("case", "bin", "AvgFit", "AvgFitSE", "nobs"))
zed <- REimpact(g1, newdata = InstEval[9:12, ], groupFctr = "d", breaks = 5,
n.sims = 50, include.resid.var = TRUE)
expect_equal(nrow(zed), 5 * nrow(InstEval[9:12, ]))
})
test_that("REimpact respects passed values for predictInterval", {
skip_on_cran()
skip_on_travis()
d <- expand.grid(fac1=LETTERS[1:5], grp=factor(1:30),
obs=1:100)
suppressMessages({
d$y <- simulate(~fac1+(1|grp),family = gaussian,
newdata=d,
newparams=list(beta=c(2,1,3,4,7), theta=c(.25),
sigma = c(.23)))[[1]]
})
subD <- d[sample(row.names(d), 1000),]
g1 <- lmer(y ~ fac1 + (1|grp), data=subD)
zed <- REimpact(g1, newdata = subD[23:25, ], groupFctr = "grp", breaks = 5,
include.resid.var = FALSE, n.sims = 100, level = 0.8)
zed2 <- REimpact(g1, newdata = subD[23:25, ], groupFctr = "grp", breaks = 5,
n.sims = 500, include.resid.var = TRUE, level = 0.99)
# expect_true(all(zed2$AvgFitSE > zed$AvgFitSE))
expect_true(!all(zed2$AvgFit > zed$AvgFit))
expect_identical(names(zed), c("case", "bin", "AvgFit", "AvgFitSE", "nobs"))
expect_identical(names(zed2), c("case", "bin", "AvgFit", "AvgFitSE", "nobs"))
})
# Test for slopes, intercepts, and combinations----
#context("Test for slopes, intercepts, and combinations")
test_that("Multiple terms can be accessed", {
skip_on_cran()
data(grouseticks)
grouseticks$HEIGHT <- scale(grouseticks$HEIGHT)
grouseticks <- merge(grouseticks, grouseticks_agg[, 1:3], by = "BROOD")
grouseticks$TICKS_BIN <- ifelse(grouseticks$TICKS >=1, 1, 0)
# GLMER 3 level + slope
form <- TICKS_BIN ~ YEAR + HEIGHT + (1 + HEIGHT|BROOD) + (1|LOCATION) + (1|INDEX)
suppressMessages({
glmer3LevSlope <- glmer(form, family="binomial",data=grouseticks,
control = glmerControl(optimizer="bobyqa",
optCtrl=list(maxfun = 1e5)))
})
# This is the same issue of zero mean zero variance in the predict interval call
zed1 <- suppressWarnings(REimpact(glmer3LevSlope, newdata = grouseticks[5, ], groupFctr = "BROOD",
term = "HEIGHT", n.sims = 500,
include.resid.var = FALSE, breaks = 4, type = "probability"))
# This is the same issue of zero mean zero variance in the predict interval call
zed2 <- suppressWarnings(REimpact(glmer3LevSlope, newdata = grouseticks[5, ], groupFctr = "BROOD",
term = "Intercept",
n.sims = 500,
include.resid.var = FALSE, breaks = 4, type = "probability"))
# This is the same issue of zero mean zero variance in the predict interval call
zed4 <- suppressWarnings(REimpact(glmer3LevSlope, newdata = grouseticks[5, ], groupFctr = "LOCATION",
n.sims = 500,
include.resid.var = FALSE, breaks = 4))
expect_true(all(zed4$AvgFit < zed2$AvgFit))
expect_true(all(zed4$AvgFit < zed1$AvgFit))
expect_false(identical(zed1, zed2))
expect_false(identical(zed1, zed2))
# No longer an error after revision 0.2.3
# expect_error(zed3 <- suppressWarnings(REimpact(glmer3LevSlope, newdata = grouseticks[5, ], groupFctr = "BROOD",
# n.sims = 500,
# include.resid.var = FALSE, breaks = 4)), "Must specify which")
# Don't think we need this ... it throws an subsetting error
expect_error(zed5 <- suppressWarnings(REimpact(glmer3LevSlope, newdata = grouseticks[5, ], groupFctr = "LOCATION",
term = "HEIGHT",
n.sims = 500,
include.resid.var = FALSE, breaks = 4)), "undefined columns selected")
})
# Custom breaks----
#context("Custom breaks")
test_that("Custom breakpoints can be set", {
skip_on_cran()
g1 <- lmer(y ~ lectage + studage + (1|d) + (1|s), data=InstEval)
zed <- REimpact(g1, newdata = InstEval[9, ], breaks = c(0, 10, 50, 90, 100),
groupFctr = "d", n.sims = 50,
include.resid.var = TRUE)
zed2 <- REimpact(g1, newdata = InstEval[9, ], breaks = c(1, 20, 40, 60, 80, 100),
groupFctr = "d", n.sims = 50,
include.resid.var = TRUE)
zed3 <- REimpact(g1, newdata = InstEval[9, ], breaks = 5,
groupFctr = "d", n.sims = 50,
include.resid.var = TRUE)
expect_false(nrow(zed) == nrow(zed2))
expect_gt(sd(zed$nobs), sd(zed2$nobs))
expect_gt(mean(zed$nobs), mean(zed2$nobs))
expect_equal(zed3$nobs, zed2$nobs, tolerance = .05)
})
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.