skip_if_not_installed("mediation")
skip_if_not_installed("MASS")
data(jobs, package = "mediation")
b <- lm(job_seek ~ treat + econ_hard + sex + age, data = jobs)
c <- lm(depress2 ~ treat + job_seek + econ_hard + sex + age, data = jobs)
set.seed(1234)
m1 <- mediation::mediate(b, c, sims = 50, treat = "treat", mediator = "job_seek")
b2 <- lm(job_seek ~ educ + sex, data = jobs)
c2 <- lm(depress2 ~ educ + job_seek + sex, data = jobs)
set.seed(1234)
m2 <- mediation::mediate(b2, c2,
treat = "educ", mediator = "job_seek", sims = 50,
control.value = "gradwk", treat.value = "somcol"
)
test_that("model_parameters.mediate-1", {
params <- model_parameters(m1)
expect_equal(params$Estimate, c(-0.01488, -0.04753, -0.06242, 0.16635), tolerance = 1e-2)
expect_equal(params$Parameter, c("ACME", "ADE", "Total Effect", "Prop. Mediated"))
})
test_that("model_parameters.mediate-2", {
params <- model_parameters(m2)
expect_equal(params$Estimate, c(0.02484, -0.05793, -0.03309, -0.27914), tolerance = 1e-2)
expect_equal(params$Parameter, c("ACME", "ADE", "Total Effect", "Prop. Mediated"))
})
test_that("model_parameters.mediate-3", {
skip_on_cran()
jobs$job_disc <- as.factor(jobs$job_disc)
b.ord <- MASS::polr(
job_disc ~ treat + econ_hard + sex + age,
data = jobs,
method = "probit",
Hess = TRUE
)
d.bin <- glm(
work1 ~ treat + job_disc + econ_hard + sex + age,
data = jobs,
family = binomial(link = "probit")
)
set.seed(1234)
m3 <- mediation::mediate(b.ord, d.bin, sims = 50, treat = "treat", mediator = "job_disc")
params <- model_parameters(m3)
expect_equal(params$Estimate, c(
0.00216, 0.00231, 0.0486, 0.04875, 0.05091, 0.03981, 0.04829,
0.00223, 0.04868, 0.04405
), tolerance = 1e-2)
expect_equal(params$Parameter, c(
"ACME (control)", "ACME (treated)", "ADE (control)", "ADE (treated)",
"Total Effect", "Prop. Mediated (control)", "Prop. Mediated (treated)",
"ACME (average)", "ADE (average)", "Prop. Mediated (average)"
))
expect_equal(params$Component, c(
"control", "treated", "control", "treated", "Total Effect",
"control", "treated", "average", "average", "average"
))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.