Nothing
context("Test nlpMarginal with groups")
library("mombf")
source(test_path("data-for-tests.R"))
tolerance <- 1e-6
patrick::with_parameters_test_that(
"check_sel_groups works", {
groups <- c(1,2,2,2,3,3,4,5)
expect_error(check_sel_groups(sel, groups), error_msg)
},
patrick::cases(
sel_outofbounds=list(sel=c(1,7,20), error_msg="sel larger than"),
sel_incompatible_groups=list(sel=c(1,2,7), error_msg="incompatible with .+ groups"),
sel_good_int=list(sel=c(2,3,4,7,8), error_msg=NA),
sel_good_bool=list(sel=c(TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE, FALSE), error_msg=NA)
)
)
test_that(
"nlpMarginal ignores sel argument when its a formula", {
pCoef <- momprior(tau=0.348)
ans1 <- nlpMarginal(seq(4), y3, X3, priorCoef=pCoef)
formula <- y3~X3[,2]+X3[,3]+X3[,4]
expect_warning(ans2 <- nlpMarginal(c(1,2), y=formula, priorCoef=pCoef), "ignoring sel")
expect_equal(ans1, ans2)
expect_warning(ans3 <- nlpMarginal(y=formula, priorCoef=pCoef), NA)
expect_equal(ans1, ans3)
}
)
patrick::with_parameters_test_that(
"nlpMarginal with same kind of priorCoef and Group is correctly impemented for normal family:", {
pVar <- igprior(alpha=0.01, lambda=0.01)
ans_max <- nlpMarginal(theta9_truth_idx, y9, X9, family="normal", priorCoef=pCoef, priorVar=pVar)
ans_max_group <- nlpMarginal(
theta9_truth_idx, y9, X9, groups=groups9, family="normal",
priorCoef=pCoef, priorGroup=pCoef, priorVar=pVar
)
ans_all <- nlpMarginal(seq_along(theta9_truth), y9, X9, family="normal",priorCoef=pCoef, priorVar=pVar)
ans_all_group <- nlpMarginal(
seq_along(theta9_truth), y9, X9, groups=groups9, family="normal",
priorCoef=pCoef, priorGroup=pCoef, priorVar=pVar
)
expect_true(ans_max_group > ans_all_group)
expect_equal(ans_max, ans_max_group)
expect_equal(ans_all, ans_all_group)
},
test_name=c("mom", "imom", "emom", "zellner", "normalid"),
pCoef=c(momprior(tau=0.35), imomprior(tau=0.35), emomprior(tau=0.35), zellnerprior(tau=0.35), normalidprior(tau=0.35))
)
patrick::with_parameters_test_that(
"nlpMarginal with groups is correctly impemented for normal family:", {
pVar <- igprior(alpha=0.01, lambda=0.01)
ans_max <- nlpMarginal(
theta9_truth_idx, y9, X9, groups=groups9, family="normal",
priorCoef=pCoef, priorGroup=pGroup, priorVar=pVar
)
ans_all <- nlpMarginal(
seq_along(theta9_truth), y9, X9, groups=groups9, family="normal",
priorCoef=pCoef, priorGroup=pGroup, priorVar=pVar
)
expect_equal(ans_max, expected_max, tolerance=tolerance)
expect_equal(ans_all, expected_all, tolerance=tolerance)
},
patrick::cases(
normalid=list(pCoef=normalidprior(tau=0.3), pGroup=normalidprior(tau=0.4), expected_max=-231.111757, expected_all=-236.971966),
normid_gzell=list(pCoef=normalidprior(tau=1), pGroup=groupzellnerprior(tau=0.4), expected_max=-316.658333, expected_all=-320.087106),
zell_gzell=list(pCoef=zellnerprior(tau=0.3), pGroup=groupzellnerprior(tau=0.4), expected_max=-342.339794, expected_all=-342.19151),
mom_gzell=list(pCoef=momprior(tau=0.3), pGroup=groupzellnerprior(tau=10), expected_max=-262.450681, expected_all=-274.104395),
mom_gmom=list(pCoef=momprior(tau=0.3), pGroup=groupmomprior(tau=0.4), expected_max=-238.026357, expected_all=-252.308801)
)
)
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.