skip_if_not_installed("mmrm")
# see https://github.com/georgheinze/logistf/pull/54
skip_if(
"as.character.formula" %in% methods(as.character),
"Package `logistf` is loaded and breaks `mmrm::mmrm()`"
)
data(fev_data, package = "mmrm")
mod_mmrm <- mmrm::mmrm(
formula = FEV1 ~ RACE + SEX + ARMCD * AVISIT + us(AVISIT | USUBJID),
data = fev_data
)
test_that("model_info", {
expect_true(model_info(mod_mmrm)$is_linear)
expect_true(model_info(mod_mmrm)$is_mixed)
})
test_that("loglik", {
expect_equal(get_loglikelihood(mod_mmrm, estimator = "REML"), logLik(mod_mmrm), ignore_attr = TRUE)
expect_equal(get_loglikelihood(mod_mmrm), logLik(mod_mmrm), ignore_attr = TRUE)
})
test_that("get_df", {
expect_equal(get_df(mod_mmrm), c(
218.8018, 168.6657, 157.1382, 166.1324, 145.552, 143.8758,
155.5575, 138.4708, 138.5643, 158.1651, 129.7204
), ignore_attr = TRUE, tolerance = 1e-4)
expect_equal(get_df(mod_mmrm, type = "model"), 12, ignore_attr = TRUE)
})
test_that("n_parameters", {
expect_identical(n_parameters(mod_mmrm), 11L)
})
test_that("find_offset", {
model_off <- mmrm::mmrm(
log(FEV1) ~ RACE + SEX + ARMCD * AVISIT + us(AVISIT | USUBJID) + offset(log(FEV1_BL)),
data = fev_data
)
expect_identical(find_offset(model_off), "FEV1_BL")
})
test_that("find_predictors", {
expect_identical(
find_predictors(mod_mmrm, effects = "all"),
list(conditional = c("RACE", "SEX", "ARMCD", "AVISIT"), random = "USUBJID")
)
expect_identical(
find_predictors(mod_mmrm, effects = "all", flatten = TRUE),
c("RACE", "SEX", "ARMCD", "AVISIT", "USUBJID")
)
expect_identical(
find_predictors(mod_mmrm, effects = "fixed"),
list(conditional = c("RACE", "SEX", "ARMCD", "AVISIT"))
)
expect_identical(
find_predictors(mod_mmrm, effects = "fixed", flatten = TRUE),
c("RACE", "SEX", "ARMCD", "AVISIT")
)
expect_identical(
find_predictors(mod_mmrm, effects = "random"),
list(random = "USUBJID")
)
expect_identical(
find_predictors(mod_mmrm, effects = "random", flatten = TRUE),
"USUBJID"
)
expect_null(find_predictors(mod_mmrm, effects = "all", component = "zi"))
})
test_that("find_random", {
expect_identical(find_random(mod_mmrm), list(random = "USUBJID"))
expect_identical(find_random(mod_mmrm, flatten = TRUE), "USUBJID")
})
test_that("find_response", {
expect_identical(find_response(mod_mmrm), "FEV1")
})
test_that("get_response", {
expect_equal(get_response(mod_mmrm), na.omit(fev_data$FEV1), ignore_attr = TRUE, tolerance = 1e-4)
})
test_that("link_inverse", {
expect_identical(link_inverse(mod_mmrm)(0.2), 0.2)
})
test_that("get_data", {
expect_identical(colnames(get_data(mod_mmrm)), c("FEV1", "RACE", "SEX", "ARMCD", "AVISIT", "USUBJID"))
expect_identical(colnames(get_data(mod_mmrm, effects = "fixed")), c("FEV1", "RACE", "SEX", "ARMCD", "AVISIT"))
expect_identical(colnames(get_data(mod_mmrm, effects = "random")), "USUBJID")
expect_identical(dim(get_data(mod_mmrm)), c(537L, 6L))
})
test_that("find_formula", {
expect_length(find_formula(mod_mmrm), 2)
expect_equal(
find_formula(mod_mmrm, component = "conditional"),
list(
conditional = as.formula("FEV1 ~ RACE + SEX + ARMCD * AVISIT"),
random = as.formula("~AVISIT | USUBJID")
),
ignore_attr = TRUE
)
})
test_that("find_terms", {
expect_identical(
find_terms(mod_mmrm),
list(response = "FEV1", conditional = c(
"RACE", "SEX", "ARMCD",
"AVISIT"
), random = c("AVISIT", "USUBJID"))
)
expect_identical(
find_terms(mod_mmrm, flatten = TRUE),
c("FEV1", "RACE", "SEX", "ARMCD", "AVISIT", "USUBJID")
)
})
test_that("get_predictors", {
expect_identical(colnames(get_predictors(mod_mmrm)), c("RACE", "SEX", "ARMCD", "AVISIT"))
})
test_that("get_random", {
expect_identical(colnames(get_random(mod_mmrm)), "USUBJID")
})
test_that("linkfun", {
expect_false(is.null(link_function(mod_mmrm)))
})
test_that("find_parameters", {
expect_identical(
find_parameters(mod_mmrm),
list(conditional = c(
"(Intercept)", "RACEBlack or African American",
"RACEWhite", "SEXFemale", "ARMCDTRT", "AVISITVIS2", "AVISITVIS3",
"AVISITVIS4", "ARMCDTRT:AVISITVIS2", "ARMCDTRT:AVISITVIS3", "ARMCDTRT:AVISITVIS4"
))
)
expect_identical(nrow(get_parameters(mod_mmrm)), 11L)
expect_identical(
get_parameters(mod_mmrm)$Parameter,
c(
"(Intercept)", "RACEBlack or African American", "RACEWhite",
"SEXFemale", "ARMCDTRT", "AVISITVIS2", "AVISITVIS3", "AVISITVIS4",
"ARMCDTRT:AVISITVIS2", "ARMCDTRT:AVISITVIS3", "ARMCDTRT:AVISITVIS4"
)
)
})
test_that("is_multivariate", {
expect_false(is_multivariate(mod_mmrm))
})
test_that("find_random_slopes", {
expect_identical(find_random_slopes(mod_mmrm), list(random = "AVISIT"))
})
test_that("get_varcov", {
expect_identical(dim(get_varcov(mod_mmrm)), c(11L, 11L))
})
test_that("find_statistic", {
expect_identical(find_statistic(mod_mmrm), "t-statistic")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.