Nothing
# Test Parallel----
test_that("parallelization does not throw errors and generates good results", {
skip_on_cran()
skip_on_ci()
library(foreach)
set.seed(1241)
m1 <- lmer(Reaction ~ Days + (1 | Subject), sleepstudy)
predA <- predictInterval(m1, newdata = m1@frame, n.sims = 2200, seed = 54,
include.resid.var = FALSE, stat = "median") |> suppressWarnings()
predB <- predictInterval(m1, newdata = m1@frame, n.sims = 1750, seed = 54,
include.resid.var = FALSE, stat = "median")
expect_equal(mean(predA$fit - predB$fit), 0 , tolerance = .2)
predA <- predictInterval(m1, newdata = m1@frame, n.sims = 2500, seed = 2141,
include.resid.var = FALSE)
predB <- predictInterval(m1, newdata = m1@frame, n.sims = 1500, seed = 2141,
include.resid.var = FALSE)
expect_equal(mean(predA$fit - predB$fit), 0 , tolerance = .01)
moddf <- InstEval[sample(rownames(InstEval), 5000),]
g1 <- lmer(y ~ lectage + studage + (1|d) + (1|s), data = moddf)
predA <- predictInterval(g1, newdata = g1@frame, n.sims = 2500, seed = 2141,
include.resid.var = FALSE)
predB <- predictInterval(g1, newdata = g1@frame, n.sims = 1500, seed = 2141,
include.resid.var = FALSE)
expect_equal(mean(predA$fit - predB$fit), 0 , tolerance = .01)
predA <- predictInterval(g1, newdata = g1@frame[1:499,], n.sims = 2500, seed = 2141,
include.resid.var = TRUE)
predB <- predictInterval(g1, newdata = g1@frame[1:501,], n.sims = 2500, seed = 2141,
include.resid.var = TRUE)
expect_equal(mean(predA$fit[1:499] - predB$fit[1:499]), 0 , tolerance = .0025)
detach("package:foreach", character.only=TRUE)
})
#context("Test returning predict interval components")
test_that("Output is correct dimensions", {
skip_on_cran()
###########################################
# Test the option to return different predictInterval components
m1 <- lmer(Reaction ~ Days + (1 | Subject), sleepstudy)
m2 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
form <- TICKS_BIN ~ YEAR + HEIGHT +(1 + HEIGHT|BROOD) + (1|LOCATION) + (1|INDEX)
data(grouseticks)
grouseticks$TICKS_BIN <- ifelse(grouseticks$TICKS >=1, 1, 0)
grouseticks$YEAR <- as.numeric(grouseticks$YEAR)
grouseticks$HEIGHT <- grouseticks$HEIGHT - 462.2
glmer3LevSlope <- glmer(form, family="binomial",data=grouseticks) |>
suppressMessages()
#############################################
pred1 <- predictInterval(m1, which = "random")
pred2 <- predictInterval(m2, which = "fixed")
pred3 <- predictInterval(m2, which = "all")
expect_equal(nrow(pred1), nrow(pred2))
expect_equal(ncol(pred1), 3)
expect_equal(ncol(pred2), 3)
expect_equal(ncol(pred3), 5)
expect_equal(nrow(pred3), 180*3)
expect_equal(nrow(pred1), 180)
expect_false(nrow(pred3) == nrow(pred2))
expect_true(nrow(pred3) > nrow(pred2))
pred1 <- predictInterval(m1, which = "random", stat = "mean")
pred2 <- predictInterval(m2, which = "fixed", stat = "mean")
pred3 <- predictInterval(m2, which = "all", stat = "mean")
expect_equal(nrow(pred1), nrow(pred2))
expect_equal(ncol(pred1), 3)
expect_equal(ncol(pred2), 3)
expect_equal(ncol(pred3), 5)
expect_equal(nrow(pred3), 180*3)
expect_equal(nrow(pred1), 180)
expect_false(nrow(pred3) == nrow(pred2))
expect_true(nrow(pred3) > nrow(pred2))
pred1 <- suppressWarnings(predictInterval(glmer3LevSlope, which = "random",
type = "linear.prediction"))
pred2 <- suppressWarnings(predictInterval(glmer3LevSlope, which = "random",
type = "probability"))
pred3 <- suppressWarnings(predictInterval(glmer3LevSlope, which = "all",
type = "linear.prediction"))
pred4 <- suppressWarnings(predictInterval(glmer3LevSlope, which = "all",
type = "probability"))
expect_equal(nrow(pred1), nrow(pred2))
expect_equal(nrow(pred3), nrow(pred4))
expect_equal(ncol(pred1), 3)
expect_equal(ncol(pred2), 3)
expect_equal(ncol(pred3), 5)
expect_equal(ncol(pred3), 5)
expect_true(mean(pred2$fit) > mean(pred1$fit))
expect_equal(mean(pred2$fit), 0.5, tolerance = 0.05)
expect_equal(mean(pred1$fit), 0.00, tolerance = 0.05)
# Tolerance meaning has changed
expect_equal(mean(pred4$fit), mean(grouseticks$TICKS_BIN), tolerance = 0.2)
expect_false(mean(pred4$fit) == mean(pred3$fit))
expect_equal(nrow(pred1), 403)
expect_equal(nrow(pred2), 403)
expect_equal(nrow(pred3), 403*5)
expect_equal(nrow(pred4), 403*5)
})
test_that("Compare random, fixed, include-resid", {
skip_on_cran()
######################################
# Test the option to return different predictInterval components
m1 <- lmer(Reaction ~ Days + (1 | Subject), sleepstudy)
m2 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
form <- TICKS_BIN ~ YEAR + HEIGHT +(1 + HEIGHT|BROOD) + (1|LOCATION) + (1|INDEX)
data(grouseticks)
grouseticks$TICKS_BIN <- ifelse(grouseticks$TICKS >=1, 1, 0)
grouseticks$YEAR <- as.numeric(grouseticks$YEAR)
grouseticks$HEIGHT <- grouseticks$HEIGHT - 462.2
glmer3LevSlope <- glmer(form, family="binomial",data=grouseticks) |>
suppressMessages()
################################################
predInt1 <- predictInterval(m1)
predInt1$width <- predInt1[, 2] - predInt1[, 3]
predInt2 <- predictInterval(m1, which = "random")
predInt2$width <- predInt2[, 2] - predInt2[, 3]
predInt3 <- predictInterval(m1, which = "fixed")
predInt3$width <- predInt3[, 2] - predInt3[, 3]
predInt4 <- predictInterval(m1, which = "all")
predInt4$width <- predInt4[, 3] - predInt4[, 4]
predInt1b <- predictInterval(m1, include.resid.var = FALSE)
predInt1b$width <- predInt1b[, 2] - predInt1b[, 3]
predInt2b <- predictInterval(m1, which = "random", include.resid.var = FALSE)
predInt2b$width <- predInt2b[, 2] - predInt2b[, 3]
predInt3b <- predictInterval(m1, which = "fixed", include.resid.var = FALSE)
predInt3b$width <- predInt3b[, 2] - predInt3b[, 3]
predInt4b <- predictInterval(m1, which = "all", include.resid.var = FALSE)
predInt4b$width <- predInt4b[, 3] - predInt4b[, 4]
# These should be fairly close now since residual variance is the biggest
expect_true(!all(predInt1$width > predInt2$width))
expect_true(!all(predInt3$width > predInt2$width))
expect_true(!all(predInt4$width[predInt4$effect == "combined"] > predInt1$width))
expect_true(!all(predInt4$width[predInt4$effect == "combined"] > predInt2$width))
expect_true(!all(predInt4$width[predInt4$effect == "combined"] > predInt3$width))
#
expect_true(all(predInt1b$width > predInt2b$width))
expect_true(all(predInt3b$width != predInt2b$width))
expect_true(all(predInt4b$width[predInt4b$effect == "combined"] > predInt2b$width))
expect_true(!all(predInt4b$width[predInt4b$effect == "combined"] > predInt1b$width))
# Fits
expect_true(all(predInt1$fit > predInt2$fit))
expect_true(all(predInt3$fit > predInt2$fit))
expect_true(all(predInt1$upr > predInt1b$upr))
expect_true(all(predInt1$lwr < predInt1b$lwr))
expect_true(all(predInt2$upr > predInt2b$upr))
expect_true(all(predInt2$lwr < predInt2b$lwr))
expect_true(all(predInt2$upr > predInt2b$upr))
expect_true(all(predInt3$lwr < predInt3b$lwr))
expect_true(all(predInt4$upr > predInt4b$upr))
expect_true(all(predInt4$lwr < predInt4b$lwr))
predInt1 <- predictInterval(m2)
predInt1$width <- predInt1[, 2] - predInt1[, 3]
predInt2 <- predictInterval(m2, which = "random")
predInt2$width <- predInt2[, 2] - predInt2[, 3]
predInt3 <- predictInterval(m2, which = "fixed")
predInt3$width <- predInt3[, 2] - predInt3[, 3]
predInt4 <- predictInterval(m2, which = "all")
predInt4$width <- predInt4[, 3] - predInt4[, 4]
predInt1b <- predictInterval(m2, include.resid.var = FALSE)
predInt1b$width <- predInt1b[, 2] - predInt1b[, 3]
predInt2b <- predictInterval(m2, which = "random", include.resid.var = FALSE)
predInt2b$width <- predInt2b[, 2] - predInt2b[, 3]
predInt3b <- predictInterval(m2, which = "fixed", include.resid.var = FALSE)
predInt3b$width <- predInt3b[, 2] - predInt3b[, 3]
predInt4b <- predictInterval(m2, which = "all", include.resid.var = FALSE)
predInt4b$width <- predInt4b[, 3] - predInt4b[, 4]
# These should be fairly close now since residual variance is the biggest variance
expect_true(!all(predInt1$width > predInt2$width))
expect_true(!all(predInt3$width > predInt2$width))
expect_true(!all(predInt4$width[predInt4$effect == "combined"] > predInt1$width))
expect_true(!all(predInt4$width[predInt4$effect == "combined"] > predInt2$width))
expect_true(!all(predInt4$width[predInt4$effect == "combined"] > predInt3$width))
#
expect_true(all(predInt1b$width > predInt2b$width))
expect_true(all(predInt3b$width != predInt2b$width))
expect_true(all(predInt4b$width[predInt4b$effect == "combined"] > predInt2b$width))
expect_true(!all(predInt4b$width[predInt4b$effect == "combined"] > predInt1b$width))
# Fits
expect_true(all(predInt1$fit > predInt2$fit))
expect_true(all(predInt3$fit > predInt2$fit))
expect_true(all(predInt1$upr > predInt1b$upr))
expect_true(all(predInt1$lwr < predInt1b$lwr))
expect_true(all(predInt2$upr > predInt2b$upr))
expect_true(all(predInt2$lwr < predInt2b$lwr))
expect_true(all(predInt2$upr > predInt2b$upr))
expect_true(all(predInt3$lwr < predInt3b$lwr))
expect_true(all(predInt4$upr > predInt4b$upr))
expect_true(all(predInt4$lwr < predInt4b$lwr))
})
test_that("Default is set to all effects", {
skip_on_cran()
######################################
# Test the option to return different predictInterval components
m1 <- lmer(Reaction ~ Days + (1 | Subject), sleepstudy)
m2 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
form <- TICKS_BIN ~ YEAR + HEIGHT +(1 + HEIGHT|BROOD) + (1|LOCATION) + (1|INDEX)
data(grouseticks)
grouseticks$TICKS_BIN <- ifelse(grouseticks$TICKS >=1, 1, 0)
grouseticks$YEAR <- as.numeric(grouseticks$YEAR)
grouseticks$HEIGHT <- grouseticks$HEIGHT - 462.2
glmer3LevSlope <- glmer(form, family="binomial",data=grouseticks) |>
suppressMessages()
################################################
predInt1 <- predictInterval(m1, seed = 8231)
predInt2 <- predictInterval(m1, which = "full", seed = 8231)
expect_identical(predInt1, predInt2)
predInt1 <- predictInterval(m1, seed = 8231, include.resid.var = TRUE)
predInt2 <- predictInterval(m1, which = "full", seed = 8231,
include.resid.var = TRUE)
expect_identical(predInt1, predInt2)
predInt1 <- predictInterval(m1, seed = 8231, include.resid.var = TRUE)
predInt2 <- predictInterval(m1, which = "all", seed = 8231,
include.resid.var = TRUE)
expect_equal(mean(predInt1$fit - predInt2$fit[predInt2$effect == "combined"]),
0, tolerance =0.14)
expect_equal(mean(predInt1$lwr - predInt2$lwr[predInt2$effect == "combined"]),
0, tolerance =0.1)
expect_equal(mean(predInt1$upr - predInt2$upr[predInt2$effect == "combined"]),
0, tolerance=0.1)
})
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.