View source: R/baggr_compare.R
baggr_compare | R Documentation |
Compare multiple baggr models by either providing multiple already existing models as (named) arguments or passing parameters necessary to run a baggr model.
baggr_compare(
...,
what = "pooling",
compare = c("groups", "hyperpars", "effects"),
transform = NULL,
prob = 0.95,
plot = FALSE
)
... |
Either some (at least 1) objects of class |
what |
One of |
compare |
When plotting, choose between comparison of |
transform |
a function (e.g. exp(), log()) to apply to
the the sample of group (and hyper, if |
prob |
Width of uncertainty interval (defaults to 95%) |
plot |
logical; calls plot.baggr_compare when running |
If you pass parameters to the function you must specify
what kind of comparison you want, either "pooling"
, which
will run fully/partially/un-pooled models and then compare them,
or "prior"
which will generate estimates without the data
and compare them to the model with the full data. For more
details see baggr, specifically the ppd
argument.
an object of class baggr_compare
Witold Wiecek, Brice Green
plot.baggr_compare and print.baggr_compare for working with results of this function
# Most basic comparison between no, partial and full pooling
# (This will run the models)
# run model with just prior and then full data for comparison
# with the same arguments that are passed to baggr
prior_comparison <-
baggr_compare(schools,
model = 'rubin',
#this is just for illustration -- don't set it this low normally!
iter = 500,
prior_hypermean = normal(0, 3),
prior_hypersd = normal(0,2),
prior_hypercor = lkj(2),
what = "prior")
# print the aggregated treatment effects
prior_comparison
# plot the comparison of the two distributions
plot(prior_comparison)
# Now compare different types of pooling for the same model
pooling_comparison <-
baggr_compare(schools,
model = 'rubin',
#this is just for illustration -- don't set it this low normally!
iter = 500,
prior_hypermean = normal(0, 3),
prior_hypersd = normal(0,2),
prior_hypercor = lkj(2),
what = "pooling",
# You can automatically plot:
plot = TRUE)
# Compare existing models (you don't have to, but best to name them):
bg1 <- baggr(schools, pooling = "partial")
bg2 <- baggr(schools, pooling = "full")
baggr_compare("Partial pooling model" = bg1, "Full pooling" = bg2)
#' ...or simply draw from prior predictive dist (note ppd=T)
bg1 <- baggr(schools, ppd=TRUE)
bg2 <- baggr(schools, prior_hypermean = normal(0, 5), ppd=TRUE)
baggr_compare("Prior A, p.p.d."=bg1,
"Prior B p.p.d."=bg2,
compare = "effects")
# Compare how posterior predictive effect varies with e.g. choice of prior
bg1 <- baggr(schools, prior_hypersd = uniform(0, 20))
bg2 <- baggr(schools, prior_hypersd = normal(0, 5))
baggr_compare("Uniform prior on SD"=bg1,
"Normal prior on SD"=bg2,
compare = "effects", plot = TRUE)
# Models don't have to be identical. Compare different subsets of input data:
bg1_small <- baggr(schools[1:6,], pooling = "partial")
baggr_compare("8 schools model" = bg1, "First 6 schools" = bg1_small,
plot = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.