Nothing
context("rma.uni location-scale models")
skip_if_not_installed("metadat")
skip_if_not_installed("metafor", minimum_version = "3.4-0")
library(metadat)
suppressMessages(library(metafor, quietly=TRUE))
dat <- dat.bangertdrowns2004
dat$ni100 <- dat$ni/100
dat$meta[is.na(dat$meta)] <- 0
res <- rma(yi, vi, mods = ~ ni100 + meta, scale = ~ ni100 + imag, data = dat)
test_that("bread works", {
expect_true(check_bread(res, cluster = dat$id, y = dat$yi))
vcov_mat <- bread(res) / nobs(res)
attr(vcov_mat, "dimnames") <- attr(vcov(res)$beta, "dimnames")
expect_equal(vcov(res)$beta, vcov_mat)
})
CR_types <- paste0("CR",0:4)
test_that("order doesn't matter", {
skip_on_cran()
check_sort_order(res, dat, cluster = "id")
})
test_that("clubSandwich works with dropped covariates", {
dat_miss <- dat.bangertdrowns2004
expect_warning(res_drop <- rma(yi, vi, mods = ~ length + feedback + info, scale = ~ wic, data = dat))
subset_ind <- with(dat_miss, complete.cases(length, feedback, info, wic, yi, vi))
res_complete <- rma(yi, vi, mods = ~ length + feedback + info, scale = ~ wic, data = dat_miss[subset_ind,])
expect_error(vcovCR(res_complete, type = "CR0", cluster = dat_miss$id))
CR_drop <- lapply(CR_types, function(x) vcovCR(res_drop, type = x, cluster = dat_miss$id))
CR_complete <- lapply(CR_types, function(x) vcovCR(res_complete, type = x, cluster = dat_miss$id[subset_ind]))
expect_equal(CR_drop, CR_complete)
test_drop <- lapply(CR_types, function(x) coef_test(res_drop, vcov = x, cluster = dat_miss$id, test = "All", p_values = FALSE))
test_complete <- lapply(CR_types, function(x) coef_test(res_complete, vcov = x, cluster = dat_miss$id[subset_ind], test = "All", p_values = FALSE))
compare_ttests(test_drop, test_complete)
})
test_that("clubSandwich works with missing variances", {
dat_miss <- dat
dat_miss$vi[sample.int(nrow(dat_miss), size = round(nrow(dat_miss) / 10))] <- NA
expect_warning(res_drop <- rma(yi, vi, mods = ~ ni100 + meta, scale = ~ ni100 + imag, data = dat_miss))
subset_ind <- with(dat_miss, !is.na(vi))
res_complete <- rma(yi, vi, mods = ~ ni100 + meta, scale = ~ ni100 + imag, data = dat_miss, subset = !is.na(vi))
expect_error(vcovCR(res_complete, type = "CR0", cluster = dat_miss$id))
CR_drop <- lapply(CR_types, function(x) vcovCR(res_drop, type = x, cluster = dat_miss$id))
CR_complete <- lapply(CR_types, function(x) vcovCR(res_complete, type = x, cluster = dat_miss$id[subset_ind]))
expect_equal(CR_drop, CR_complete)
})
test_that("vcovCR options work for CR2", {
RE_var <- res$tau2 + dat$vi
CR2_iv <- vcovCR(res, type = "CR2", cluster = dat$id)
expect_equal(vcovCR(res, type = "CR2", cluster = dat$id, inverse_var = TRUE), CR2_iv)
CR2_not <- vcovCR(res, type = "CR2", cluster = dat$id, inverse_var = FALSE)
attr(CR2_iv, "inverse_var") <- FALSE
attr(CR2_iv, "target") <- attr(CR2_not, "target")
expect_equal(CR2_not, CR2_iv)
expect_equal(vcovCR(res, type = "CR2", cluster = dat$id, target = RE_var), CR2_not)
expect_equal(vcovCR(res, type = "CR2", cluster = dat$id, target = RE_var, inverse_var = FALSE), CR2_not)
expect_false(identical(vcovCR(res, type = "CR2", cluster = dat$id, target = dat$vi), CR2_not))
})
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.