The replication crisis has led many researchers to preregister their hypotheses and data analysis plans before collecting data. A widely held view is that preregistration is supposed to limit the extent to which data may influence the hypotheses to be tested. Only if data have no influence an analysis is considered confirmatory. Consequently, many researchers believe that preregistration is only applicable in confirmatory paradigms. In practice, researchers may struggle to preregister their hypotheses because of vague theories that necessitate data-dependent decisions (aka exploration). We argue that preregistration benefits any study on the continuum between confirmatory and exploratory research. To that end, we formalize a general objective of preregistration and demonstrate that exploratory studies also benefit from preregistration. Drawing on Bayesian philosophy of science, we argue that preregistration should primarily aim to reduce uncertainty about the inferential procedure used to derive results. This approach provides a principled justification of preregistration, separating the procedure from the goal of ensuring strictly confirmatory research. We acknowledge that knowing the extent to which a study is exploratory is central, but certainty about the inferential procedure is a prerequisite for persuasive evidence. Finally, we discuss the implications of these insights for the practice of preregistration.
Reproduction is done automatically on GitHub: ,
so forking the repo and pushing changes should be sufficient for you to
reproduce.
This workflow requires Docker, Git, and Make installed:
- Get docker image, and give it a local tag:
docker pull ghcr.io/aaronpeikert/bayes-prereg:main
docker tag ghcr.io/aaronpeikert/bayes-prereg:main bayesprereg:latest
- Reproduce:
git clone https://github.com/aaronpeikert/bayes-prereg.git
cd bayes-prereg
make DOCKER=TRUE
- Build the image locally:
make docker
- Reproduce:
make DOCKER=TRUE
Since Make and Git are installed in the image, the docker container is technically all you need. However, retrieving the end result requires you to bind a volume to the container (modify first comand).
docker run ghcr.io/aaronpeikert/bayes-prereg:main bash
git clone https://github.com/aaronpeikert/bayes-prereg.git
cd bayes-prereg
make
An alternative with graphical user interface is:
- Get docker image:
docker run ghcr.io/aaronpeikert/bayes-prereg:main
- Use the url and password that is shown to you in the terminal to open RStudio in your web browser.
- Create a new project, click on “version control”, click on “git”,
paste url:
https://github.com/aaronpeikert/bayes-prereg.git
- Reproduce by running
make
in the RStudio terminal (not console!).
Make sure you have all installed software you need.
git clone https://github.com/aaronpeikert/bayes-prereg.git
cd bayes-prereg
make
- Open RStudio
- Create a new project, click on “version control”, click on “git”,
paste url:
https://github.com/aaronpeikert/bayes-prereg.git
- Open
manuscript.Rmd
. - Install all the packages listed under
packages
in the yaml metadata. - Open
R/simulation.R
and run it. - Open
manuscript.Rmd
and click on knit.