Nothing
library("JointAI")
skip_on_cran()
# Sys.setenv(IS_CHECK = "true")
run_clm_models <- function() {
sink(tempfile())
on.exit(sink())
invisible(force(suppressWarnings({
models <- list(
# no covariates
m0a = clm_imp(O1 ~ 1, data = wideDF, n.adapt = 5, n.iter = 10,
seed = 2020, warn = FALSE, mess = FALSE),
m0b = clm_imp(O2 ~ 1, data = wideDF, n.adapt = 5, n.iter = 10,
seed = 2020, warn = FALSE, mess = FALSE),
# only complete
m1a = clm_imp(O1 ~ C1, data = wideDF, n.adapt = 5, n.iter = 10,
seed = 2020, warn = FALSE, mess = FALSE),
m1b = clm_imp(O2 ~ C1, data = wideDF, n.adapt = 5, n.iter = 10,
seed = 2020, warn = FALSE, mess = FALSE),
# only incomplete
m2a = clm_imp(O1 ~ C2, data = wideDF, n.adapt = 5, n.iter = 10,
seed = 2020, warn = FALSE, mess = FALSE),
m2b = clm_imp(O2 ~ C2, data = wideDF, n.adapt = 5, n.iter = 10,
seed = 2020, warn = FALSE, mess = FALSE),
# as covariate
m3a = lm_imp(C1 ~ O1, data = wideDF, n.adapt = 5, n.iter = 10,
seed = 2020, warn = FALSE, mess = FALSE),
m3b = lm_imp(C1 ~ O2, data = wideDF, n.adapt = 5, n.iter = 10,
seed = 2020, warn = FALSE, mess = FALSE),
# complex structures
m4a = clm_imp(O1 ~ M2 + O2 * abs(C1 - C2) + log(C1), data = wideDF,
n.adapt = 5, n.iter = 10, seed = 2020,
warn = FALSE, mess = FALSE),
m4b = clm_imp(O1 ~ ifelse(as.numeric(O2) > as.numeric(M1), 1, 0) *
abs(C1 - C2) + log(C1), data = wideDF,
n.adapt = 5, n.iter = 10, seed = 2020,
warn = FALSE, mess = FALSE),
# non-proportional effects
# - basic model
m5a = clm_imp(O1 ~ C1 + C2 + M2 + O2, data = wideDF,
n.adapt = 5, n.iter = 10, seed = 2020,
nonprop = list(O1 = ~ C1 + C2),
monitor_params = list(other = "p_O1"),
warn = FALSE, mess = FALSE),
# - interaction in prop. effects
m5b = clm_imp(O1 ~ C1 * C2 + M2 + O2, data = wideDF,
n.adapt = 5, n.iter = 10, seed = 2020,
nonprop = list(O1 = ~ C1 + C2),
monitor_params = list(other = "p_O1"),
warn = FALSE, mess = FALSE),
# - interaction in non-prop effects
m5c = clm_imp(O1 ~ C1 * C2 + M2 + O2, data = wideDF,
n.adapt = 5, n.iter = 10, seed = 2020,
nonprop = list(O1 = ~ C1 * C2),
monitor_params = list(other = "p_O1"),
warn = FALSE, mess = FALSE),
# - interaction between non-prop and prop effects
m5d = clm_imp(O1 ~ C1 + M2 * C2 + O2, data = wideDF,
n.adapt = 5, n.iter = 10, seed = 2020,
nonprop = list(O1 = ~ C1 + C2),
monitor_params = list(other = "p_O1"),
warn = FALSE, mess = FALSE),
# - all effects non-proportional
m5e = clm_imp(O1 ~ C1 + M2 * C2 + O2, data = wideDF,
n.adapt = 5, n.iter = 10, seed = 2020,
nonprop = ~ C1 + M2 * C2 + O2,
monitor_params = list(other = "p_O1"),
warn = FALSE, mess = FALSE)
)
models$m6a <- update(models$m5a, rev = "O1")
models$m6b <- update(models$m5b, rev = "O1")
models$m6c <- update(models$m5c, rev = "O1")
models$m6d <- update(models$m5d, rev = "O1")
models$m6e <- update(models$m5e, rev = "O1")
}
)
))
models
}
models <- run_clm_models()
models0 <- set0_list(models)
test_that("models run", {
for (k in seq_along(models)) {
expect_s3_class(models[[k]], "JointAI")
}
})
test_that("there are no duplicate betas/alphas in the jagsmodel", {
expect_null(unlist(lapply(models, find_dupl_parms)))
})
test_that("MCMC is mcmc.list", {
for (i in seq_along(models)) {
expect_s3_class(models[[i]]$MCMC, "mcmc.list")
}
})
test_that("MCMC samples can be plottet", {
for (k in seq_along(models)) {
expect_silent(traceplot(models[[k]]))
expect_silent(densplot(models[[k]]))
expect_silent(plot(MC_error(models[[k]])))
}
})
test_that("data_list remains the same", {
# skip_on_cran()
expect_snapshot(lapply(models, "[[", "data_list"))
})
test_that("jagsmodel remains the same", {
expect_snapshot(lapply(models, "[[", "jagsmodel"))
})
test_that("GRcrit and MCerror give same result", {
# skip_on_cran()
expect_snapshot(lapply(models0, GR_crit, multivariate = FALSE))
expect_snapshot(lapply(models0, MC_error))
})
test_that("summary output remained the same on Windows", {
# skip_on_cran()
skip_on_os(c("mac", "linux", "solaris"))
expect_snapshot(lapply(models0, print))
expect_snapshot(lapply(models0, coef))
expect_snapshot(lapply(models0, confint))
expect_snapshot(lapply(models0, summary))
expect_snapshot(lapply(models0, function(x) coef(summary(x))))
})
test_that("summary output remained the same on non-Windows", {
# skip_on_cran()
skip_on_os(c("windows"))
expect_snapshot(lapply(models0, print))
expect_snapshot(lapply(models0, coef))
expect_snapshot(lapply(models0, confint))
expect_snapshot(lapply(models0, summary))
expect_snapshot(lapply(models0, function(x) coef(summary(x))))
})
test_that("prediction works", {
expect_equal(class(predict(models$m4a, type = "lp", warn = FALSE)$fitted),
"array")
expect_equal(class(predict(models$m4a, type = "prob", warn = FALSE)$fitted),
"array")
expect_s3_class(predict(models$m4a, type = "class", warn = FALSE)$fitted,
"data.frame")
expect_s3_class(predict(models$m4a, type = "response", warn = FALSE)$fitted,
"data.frame")
expect_s3_class(predict(models$m4a, type = "lp", warn = FALSE)$newdata,
"data.frame")
expect_s3_class(predict(models$m4a, type = "prob", warn = FALSE)$newdata,
"data.frame")
expect_s3_class(predict(models$m4a, type = "class", warn = FALSE)$newdata,
"data.frame")
expect_s3_class(predict(models$m4a, type = "response", warn = FALSE)$newdata,
"data.frame")
expect_equal(class(predict(models$m5d, type = "lp", warn = FALSE)$fitted),
"array")
expect_equal(class(predict(models$m5d, type = "prob", warn = FALSE)$fitted),
"array")
expect_s3_class(predict(models$m5d, type = "class", warn = FALSE)$fitted,
"data.frame")
expect_s3_class(predict(models$m5d, type = "response", warn = FALSE)$fitted,
"data.frame")
expect_s3_class(predict(models$m5d, type = "lp", warn = FALSE)$newdata,
"data.frame")
expect_s3_class(predict(models$m5d, type = "prob", warn = FALSE)$newdata,
"data.frame")
expect_s3_class(predict(models$m5d, type = "class", warn = FALSE)$newdata,
"data.frame")
expect_s3_class(predict(models$m5d, type = "response", warn = FALSE)$newdata,
"data.frame")
expect_s3_class(predict(models$m5e, type = "prob", warn = FALSE)$newdata,
"data.frame")
expect_equal(check_predprob(models$m5a), 0)
expect_equal(check_predprob(models$m5b), 0)
expect_equal(check_predprob(models$m5c), 0)
expect_equal(check_predprob(models$m5d), 0)
expect_equal(check_predprob(models$m5e), 0)
expect_equal(check_predprob(models$m6a), 0)
expect_equal(check_predprob(models$m6b), 0)
expect_equal(check_predprob(models$m6c), 0)
expect_equal(check_predprob(models$m6d), 0)
expect_equal(check_predprob(models$m6e), 0)
})
test_that("residuals", {
# residuals are not yet implemented
expect_error(residuals(models$m4a, type = "working"))
})
test_that("model can be plottet", {
for (i in seq_along(models)) {
if (models[[i]]$analysis_type == "clm") {
expect_error(plot(models[[i]]))
} else {
expect_silent(plot(models[[i]]))
}
}
})
test_that("wrong models give errors", {
skip_on_os("mac")
expect_error(clm_imp(y ~ O1 + C1 + C2, data = wideDF))
expect_error(clm_imp(O2 ~ O1 + C1 + C2 + (1 | id), data = longDF,
warn = FALSE))
expect_error(clm_imp(O2 ~ O1 + C1 + C2 + (1 | id), data = wideDF,
warn = FALSE))
expect_s3_class(clm_imp(O2 ~ I(O1^2) + C1 + C2, data = wideDF, warn = FALSE),
"JointAI_errored")
expect_error(clm_imp(O2 ~ O1 + C1, data = wideDF,
nonprop = list(O2 = ~ C2), warn = FALSE))
})
# Sys.setenv(IS_CHECK = "")
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.