test_that("model_parameters,mlm", {
set.seed(123)
mod <- lm(formula = cbind(mpg, disp) ~ wt, data = mtcars)
mp <- model_parameters(mod)
expect_equal(
mp$Coefficient,
c(37.28513, -5.34447, -131.14842, 112.47814),
tolerance = 1e-3
)
expect_equal(
colnames(mp),
c(
"Parameter", "Coefficient", "SE", "CI", "CI_low", "CI_high", "t",
"df_error", "p", "Response"
)
)
expect_equal(mp$Response, c("mpg", "mpg", "disp", "disp"))
expect_equal(mp$Parameter, c("(Intercept)", "wt", "(Intercept)", "wt"))
})
test_that("model_parameters,mlm", {
model <- lm(cbind(mpg, hp) ~ cyl * disp, mtcars)
mp <- model_parameters(model)
expect_equal(
mp$Coefficient,
c(49.03721, -3.40524, -0.14553, 0.01585, 23.55, 17.43527, -0.36762, 0.06174),
tolerance = 1e-3
)
expect_equal(
colnames(mp),
c(
"Parameter", "Coefficient", "SE", "CI", "CI_low", "CI_high", "t",
"df_error", "p", "Response"
)
)
expect_equal(mp$Response, c("mpg", "mpg", "mpg", "mpg", "hp", "hp", "hp", "hp"))
expect_equal(mp$Parameter, c("(Intercept)", "cyl", "disp", "cyl:disp", "(Intercept)", "cyl", "disp", "cyl:disp"))
})
test_that("sandwich standard errors", {
skip_if_not_installed("sandwich")
skip_if_not_installed("lmtest")
mod <- lm(formula = cbind(mpg, disp) ~ wt + factor(cyl) + am, data = mtcars)
se1 <- standard_error(mod)
se2 <- standard_error(mod, vcov = "HC3")
se3 <- standard_error(mod, vcov = sandwich::vcovHC)
se4 <- sqrt(diag(sandwich::vcovHC(mod)))
expect_true(all(se1$SE != se2$SE))
expect_true(all(se2$SE == se3$SE))
expect_true(all(se2$SE == se4))
lab <- strsplit(names(se4), ":")
expect_equal(se2$Parameter, sapply(lab, function(x) x[2]))
expect_equal(se2$Response, sapply(lab, function(x) x[1]))
p1 <- parameters(mod)
p2 <- parameters(mod, vcov = "HC3")
expect_true(all(p1$Coefficient == p2$Coefficient))
expect_true(all(p1$SE != p2$SE))
expect_true(all(p1$t != p2$t))
expect_true(all(p1$p != p2$p))
expect_true(all(p1$CI_low != p2$CI_low))
expect_true(all(p1$CI_high != p2$CI_high))
lt <- lmtest::coeftest(mod, vcov = sandwich::vcovHC)
ci <- stats::confint(lt)
expect_equal(p2$Coefficient, lt[, "Estimate"], ignore_attr = TRUE)
expect_equal(p2$SE, lt[, "Std. Error"], ignore_attr = TRUE)
expect_equal(p2$t, lt[, "t value"], ignore_attr = TRUE)
expect_equal(p2$p, lt[, "Pr(>|t|)"], ignore_attr = TRUE)
expect_equal(p2$CI_low, ci[, 1], ignore_attr = TRUE)
expect_equal(p2$CI_high, ci[, 2], ignore_attr = TRUE)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.