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)

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.