Nothing
library(systemfit)
library(datasets)
# domir.formula and domin tests ----
vs_mgn <- c(
cor(mtcars$mpg, predict(lm(mpg ~ vs, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ vs + cyl, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ cyl, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ vs + carb, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ carb, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ vs + cyl + carb, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ cyl + carb, data = mtcars)))^2)
cyl_mgn <- c(
cor(mtcars$mpg, predict(lm(mpg ~ cyl, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ vs + cyl, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ vs, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ cyl + carb, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ carb, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ vs + cyl + carb, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ vs + carb, data = mtcars)))^2)
carb_mgn <- c(
cor(mtcars$mpg, predict(lm(mpg ~ carb, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ vs + carb, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ vs, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ cyl + carb, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ cyl, data = mtcars)))^2,
cor(mtcars$mpg, predict(lm(mpg ~ vs + cyl + carb, data = mtcars)))^2 -
cor(mtcars$mpg, predict(lm(mpg ~ vs + cyl, data = mtcars)))^2)
vs_c <- c(vs_mgn[[1]], mean(vs_mgn[2:3]), vs_mgn[[4]])
cyl_c <- c(cyl_mgn[[1]], mean(cyl_mgn[2:3]), cyl_mgn[[4]])
carb_c <- c(carb_mgn[[1]], mean(carb_mgn[2:3]), carb_mgn[[4]])
cdl_names <- list(c("vs", "cyl", "carb"), paste0("IVs_", 1:3))
cdl_names_new <- list(c("vs", "cyl", "carb"), paste0("include_at_", 1:3))
cdl_test <- matrix(c(vs_c, cyl_c, carb_c), nrow = 3, ncol = 3,
byrow = TRUE, dimnames = cdl_names)
cdl_test_new <- matrix(c(vs_c, cyl_c, carb_c), nrow = 3, ncol = 3,
byrow = TRUE, dimnames = cdl_names_new)
test_obj <- domin(mpg ~ vs + cyl + carb, "lm", list("summary", "r.squared"),
data = mtcars)
test_obj_new <- domir(mpg ~ vs + cyl + carb,
function(fml, data) {
res <- summary(lm(fml, data = data))
return(res[["r.squared"]])
},
data = mtcars)
test_that("Test Conditional Dominance Computation: domin", {
expect_equal(test_obj$Conditional_Dominance, cdl_test
)}
)
test_that("Test Conditional Dominance Computation: domir", {
expect_equal(test_obj_new$Conditional_Dominance, cdl_test_new
)}
)
gen_test <- rowMeans(cdl_test)
names(gen_test) <- cdl_names[[1]]
test_that("Test General Dominance Computation: domin", {
expect_equal(test_obj$General_Dominance, gen_test
)}
)
test_that("Test General Dominance Computation: domir", {
expect_equal(test_obj_new$General_Dominance, gen_test
)}
)
cyl_vs_cpt <- mean(c(cyl_mgn[[3]] > vs_mgn[[3]],
cyl_mgn[[1]] > vs_mgn[[1]]))
carb_vs_cpt <- mean(c(carb_mgn[[3]] > vs_mgn[[2]],
carb_mgn[[1]] > vs_mgn[[1]]))
carb_cyl_cpt <- mean(c(carb_mgn[[2]] > cyl_mgn[[2]],
carb_mgn[[1]] > cyl_mgn[[1]]))
cpt_test <- matrix(c(NA, cyl_vs_cpt, carb_vs_cpt,
1-cyl_vs_cpt, NA, carb_cyl_cpt,
1-carb_vs_cpt, 1-carb_cyl_cpt, NA),
nrow = 3, ncol = 3)
dimnames(cpt_test) <- list(
paste0(c("vs", "cyl", "carb"), "_>"),
paste0(">_", c("vs", "cyl", "carb"))
)
dmn_trns <- function(val) {
ifelse(val == 1, TRUE, ifelse(val == 0, FALSE, NA))
}
cpt_test_dmn <- matrix(c(NA, dmn_trns(cyl_vs_cpt), dmn_trns(carb_vs_cpt),
dmn_trns(1-cyl_vs_cpt), NA, dmn_trns(carb_cyl_cpt),
dmn_trns(1-carb_vs_cpt), dmn_trns(1-carb_cyl_cpt), NA),
nrow = 3, ncol = 3)
dimnames(cpt_test_dmn) <- list(
paste0("Dmnates_", c("vs", "cyl", "carb")),
paste0("Dmnated_", c("vs", "cyl", "carb"))
)
test_that("Test Complete Dominance Designation: domin", {
expect_equal(test_obj$Complete_Dominance, cpt_test_dmn
)})
test_that("Test Complete Dominance Designation: domir", {
expect_equal(test_obj_new$Complete_Dominance, cpt_test
)})
test_that("Test Overall Fit Statistic Value: domin", {
expect_equal(test_obj$Fit_Statistic_Overall,
cor(mtcars$mpg, predict(lm(mpg ~ vs + cyl + carb, data = mtcars)))^2
)})
test_that("Test Overall Fit Statistic Value: domir", {
expect_equal(test_obj_new$Value,
cor(mtcars$mpg, predict(lm(mpg ~ vs + cyl + carb, data = mtcars)))^2
)})
# domir.formula_list tests ----
baseline_ll <-
logLik(systemfit(list(mpg ~ 1, qsec ~ 1), data = mtcars))[[1]]
vs_fl_mgn <- c(
(1 - logLik(systemfit(list(mpg ~ vs, qsec ~ 1), data = mtcars))[[1]]/baseline_ll),
(1 - logLik(systemfit(list(mpg ~ vs + cyl, qsec ~ 1), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ cyl, qsec ~ 1), data = mtcars))[[1]]/baseline_ll),
(1 - logLik(systemfit(list(mpg ~ vs, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ 1, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) ,
(1 - logLik(systemfit(list(mpg ~ vs + cyl, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ cyl, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) )
cyl_fl_mgn <- c(
(1 - logLik(systemfit(list(mpg ~ cyl, qsec ~ 1), data = mtcars))[[1]]/baseline_ll),
(1 - logLik(systemfit(list(mpg ~ vs + cyl, qsec ~ 1), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ vs, qsec ~ 1), data = mtcars))[[1]]/baseline_ll),
(1 - logLik(systemfit(list(mpg ~ cyl, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ 1, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) ,
(1 - logLik(systemfit(list(mpg ~ vs + cyl, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ vs, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) )
carb_fl_mgn <- c(
(1 - logLik(systemfit(list(mpg ~ 1, qsec ~ carb), data = mtcars))[[1]]/baseline_ll),
(1 - logLik(systemfit(list(mpg ~ vs, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ vs, qsec ~ 1), data = mtcars))[[1]]/baseline_ll),
(1 - logLik(systemfit(list(mpg ~ cyl, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ cyl, qsec ~ 1), data = mtcars))[[1]]/baseline_ll) ,
(1 - logLik(systemfit(list(mpg ~ vs + cyl, qsec ~ carb), data = mtcars))[[1]]/baseline_ll) -
(1 - logLik(systemfit(list(mpg ~ vs + cyl, qsec ~ 1), data = mtcars))[[1]]/baseline_ll) )
vs_fl_c <- c(vs_fl_mgn[[1]], mean(vs_fl_mgn[2:3]), vs_fl_mgn[[4]])
cyl_fl_c <- c(cyl_fl_mgn[[1]], mean(cyl_fl_mgn[2:3]), cyl_fl_mgn[[4]])
carb_fl_c <- c(carb_fl_mgn[[1]], mean(carb_fl_mgn[2:3]), carb_fl_mgn[[4]])
cdl_fl_names_new <- list(c("mpg~vs", "mpg~cyl", "qsec~carb"), paste0("include_at_", 1:3))
cdl_fl_test_new <- matrix(c(vs_fl_c, cyl_fl_c, carb_fl_c), nrow = 3, ncol = 3,
byrow = TRUE, dimnames = cdl_fl_names_new)
test_fl_obj_new <-
domir(formula_list(
mpg ~ vs + cyl,
qsec ~ carb),
function(fml, data, b_ll) {
res <- logLik(
systemfit(fml, data = data)
)[[1]]
(1 - res/b_ll)
},
data = mtcars, b_ll = baseline_ll)
test_that("Test Conditional Dominance Computation: domir.formula_list", {
expect_equal(test_fl_obj_new$Conditional_Dominance, cdl_fl_test_new
)}
)
gen_fl_test <- rowMeans(cdl_fl_test_new)
names(gen_fl_test) <- cdl_fl_names_new[[1]]
test_that("Test General Dominance Computation: domir.formula_list", {
expect_equal(test_fl_obj_new$General_Dominance, gen_fl_test
)}
)
cyl_vs_cpt_fl <-
mean(c(cyl_fl_mgn[[3]] > vs_fl_mgn[[3]],
cyl_fl_mgn[[1]] > vs_fl_mgn[[1]]))
carb_vs_cpt_fl <-
mean(c(carb_fl_mgn[[3]] > vs_fl_mgn[[2]],
carb_fl_mgn[[1]] > vs_fl_mgn[[1]]))
carb_cyl_cpt_fl <-
mean(c(carb_fl_mgn[[2]] > cyl_fl_mgn[[2]],
carb_fl_mgn[[1]] > cyl_fl_mgn[[1]]))
cpt_fl_test <-
matrix(c(NA, cyl_vs_cpt_fl, carb_vs_cpt_fl,
1-cyl_vs_cpt_fl, NA, carb_cyl_cpt_fl,
1-carb_vs_cpt_fl, 1-carb_cyl_cpt_fl, NA),
nrow = 3, ncol = 3)
dimnames(cpt_fl_test) <- list(
paste0(cdl_fl_names_new[[1]], "_>"),
paste0(">_", cdl_fl_names_new[[1]])
)
test_that("Test Complete Dominance Designation: domir.formula_list", {
expect_equal(test_fl_obj_new$Complete_Dominance, cpt_fl_test
)})
test_that("Test Overall Fit Statistic Value: domir.formula_list", {
expect_equal(
test_fl_obj_new$Value,
(1 - logLik(systemfit(list(mpg ~ vs + cyl, qsec ~ carb), data = mtcars))[[1]]/baseline_ll)
)})
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.