boba
boba copied to clipboard
Specifying and executing multiverse analysis
==== boba
Author and visualize multiverse analysis with ease.
Boba has a domain specific language (Boba DSL) for writing multiverse specifications,
and a visual analysis interface (Boba Visualizer_) for exploring multiverse outcomes.
Boba comes with a command line tool to parse your DSL specification and generate
universe scripts, execute all scripts with a single command,
merges outputs into a table, and invoke the visualizer.
- works with both python and R, and other scripting languages to come
- handles simple parameter substitution as well as complex code flow dependency
- offers interactive visualizations for exploring consequential decisions, uncertainty, model fit, and more
.. _Boba Visualizer: https://github.com/uwdata/boba-visualizer .. image:: https://badge.fury.io/py/boba.svg :target: https://badge.fury.io/py/boba .. image:: https://travis-ci.org/uwdata/boba.svg?branch=master :target: https://travis-ci.org/uwdata/boba .. image:: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg :target: https://opensource.org/licenses/BSD-3-Clause) .. image:: https://img.shields.io/pypi/pyversions/boba
Installation
You might download and install the latest version of this software from the Python package index (PyPI)::
pip install --upgrade boba pip install --upgrade boba-visualizer
Usage
To author your multiverse, please refer to the specification rules_.
Here is a simple example_ to get you started!
To parse your specification and generate actual scripts, invoke boba and pass in the path to your template script and your JSON spec::
boba compile --script template.py
To execute the multiverse, namely running all the generated scripts, use::
boba run --all
To start the Boba Visualizer after getting the intermediate output files, use::
boba-server
For more command line options, see CLI.
For more information about the Boba Visualizer, see this project.
.. _rules: https://github.com/uwdata/boba/blob/master/tutorial/rules.md .. _simple example: https://github.com/uwdata/boba/blob/master/tutorial/simple.md .. _more complex example: https://github.com/uwdata/boba/blob/master/tutorial/fertility.md .. _CLI: https://github.com/uwdata/boba/blob/master/tutorial/cli.rst .. _project: https://github.com/uwdata/boba-visualizer
Examples
- A
simple example_ to walk you through the basics - A
more complex example_ usingSteegen's multiverse analysis_ andDurante's fertility dataset_. - Another multiverse example_, based on the
specification curve paper_ by Simonsohn et al.
.. _reading speed dataset: https://github.com/QishengLi/CHI2019_Reader_View .. _analysis: https://github.com/uwdata/boba/tree/master/example/reading .. _example: https://github.com/uwdata/boba/tree/master/example/hurricane .. _specification curve paper: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2694998 .. _Steegen's multiverse analysis: https://journals.sagepub.com/doi/pdf/10.1177/1745691616658637 .. _Durante's fertility dataset: https://osf.io/zj68b/
Citation
If you are interested in this work, please see our research paper_ and consider citing our work::
@misc{liu2020boba, title={Boba: Authoring and visualizing multiverse analyses}, author={Yang Liu and Alex Kale and Tim Althoff and Jeffrey Heer}, year={2020}, eprint={2007.05551}, archivePrefix={arXiv}, primaryClass={cs.HC} }
.. _paper: https://arxiv.org/abs/2007.05551