skip_on_cran()
skip_on_os(c("mac", "solaris"))
skip_if_not_installed("gamlss")
test_that("ggpredict", {
data(iris)
m1 <- suppressMessages(gamlss::gamlss(
Sepal.Length ~ Sepal.Width + gamlss::random(Species),
sigma.formula = ~Sepal.Width,
data = iris
))
p <- ggpredict(m1, "Sepal.Width")
expect_equal(
p$predicted,
c(
6.0235, 5.98971, 5.95592, 5.92213, 5.88834, 5.85455, 5.82076,
5.78697, 5.75318, 5.71939, 5.6856, 5.65181, 5.61802
),
tolerance = 1e-2
)
# validate against predict()
expect_equal(
p$predicted,
predict(m1, newdata = data_grid(m1, "Sepal.Width")),
tolerance = 1e-3,
ignore_attr = TRUE
)
expect_named(p, c("x", "predicted", "std.error", "conf.low", "conf.high", "group"))
expect_equal(
p$conf.low,
c(
5.66308, 5.69061, 5.71514, 5.73386, 5.74045, 5.7232, 5.67382,
5.60019, 5.51415, 5.42217, 5.32713, 5.23036, 5.13254
),
tolerance = 1e-2
)
})
skip_if_not_installed("withr")
withr::with_environment(
new.env(),
test_that("ggpredict, gamlss, scale-non-focal", {
set.seed(123)
dat <<- data.frame(
Y = sample(20:50, 100, replace = TRUE),
date = sample(seq(as.Date('1999/01/01'), as.Date('2000/01/01'), by = "day"), 10),
cont1 = rchisq(100, df = 2),
cont2 = runif(100),
cat1 = sample(LETTERS[1:3], 100, replace = TRUE),
stringsAsFactors = FALSE
)
m <- suppressMessages(gamlss::gamlss(
Y ~ date + scale(cont1) + scale(cont2) + I(scale(cont2)^2) * cat1,
data = dat
))
expect_warning(expect_message(
predict_response(m, "cont2"),
regex = "is used on"
))
skip_if(getRversion() > "4.4.2")
out <- suppressWarnings(predict_response(m, "cont2", verbose = FALSE))
expect_true(all(out$conf.low[1:6] < -170))
})
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.