User Friendly Bayesian Data Analysis for Psychology.
bayes4psy—User Friendly Bayesian Data Analysis for Psychology
Authors
Jure Demšar, Grega Repovš and Erik Štrumbelj
- Faculty of Computer and Information Science, University of Ljubljana
- MBLab, Department of Psychology, Faculty of Arts, University of Ljubljana
The package
This is an R package intended for Bayesian statistical analysis in the field of psychology. Psychology is one of the fields where the replication crisis is the most prominent. Scientist believe that one of the main reason for this might be non-transparent and inappropriate use of frequentist statistics. We believe that using fully transparent Bayesian methods provided in this package could greatly alleviate the replication crisis in psychology.
We also prepared several examples where we used the bayes4psy package to perform Bayesian data analysis for scientific publications on actual data gathered by psychological tests. These examples can be found on our GitHub repository. This repository also includes short test scenarios (these scenarios execute all developed functionalities on dummy data) intended for debugging the package.
This readme document provides only a brief overview of the package, a detailed description of all implemented functions is provided in package's help pages.
Models
Bayesian models in the bayes4psy package are written with the Stan language. Stan functions required for working with these models are accessed via the RStan package. There are currently five models in the package:
- a Bayesian t-test (Bayesian alternative to the classic t-test, see John Kruschke -- Doing Bayesian Data Analysis: A Tutorial with R, JAGS, and Stan),
- a reaction time model (a hierarchical exponentially modified Gaussian model),
- a success rate model (a hierarchical Bernoulli-Beta model),
- a linear model (a hierarchical linear regression),
- a color model (normal/Von Mises model).
Model fitting
The fitted model objects returned by the bayes4psy package are called b_results objects. These objects contain three components, extract contains values of fitted parameters, fit is the original stanfit object and data is the input data used for fitting. To fit a model to the data one has to first prepare the input data and then call an appropriate fitting function:
- b_ttest (the Bayesian t-test),
- b_reaction_time (the reaction time model),
- b_success_rate (the success rate model,
- b_linear (the linear model),
- b_color (the color model).
If no priors are provided as parameters for fitting functions, then flat (improper) priors are put on all parameters. See provided examples and tests to see how one can specify their own priors.
Analyzing fits
To enable users without extensive programming knowledge to perform professional level Bayesian data analysis we developed a number of custom methods. Below is a short description of functions common to all models, for descriptions of functions specific to certain models consult the package's help pages.
summary
prints a summary of the fit.print
,show
prints a more detailed summary of the fit (same as RStan's print function).plot_fit
visualize the quality of the fitted model against the input data.plot_trace
construct a trace plot for relevant parameters of the fitted model.get_parameters
extracts the parameters of the fitted model.get_subject_parameters
get parameters for each subject (useful only for hierarchical models).plot_means
visualize means for a single or multiple fitted models.compare_means
compare means between two or more fitted models.plot_means_difference
visualize the difference of means between two or more fitted models.plot_distributions
visualize distributions underlying fitted models, can be used to visualize one or more fitted models.compare_distributions
draw and compare samples from distributions underlying fitted models, can be used to compare two or more fitted models.plot_distributions_difference
visualize the difference in distributions underlying fitted models, can be used to compare two or more fitted models.
Resources
- bayes4psy_tools repository with real life examples that use the package to perform scientific paper grade Bayesian data analysis.
- Open an issue GitHub issues for bug reports, feature requests.
- Stan the Stan homepage.
Development Version
You can install the development version from GitHub. To do so you first have to install the RStan package and C++ toolchain (instructions). Once RStan and the toolchain are installed, you can install bayes4psy by using the devtools package in R:
if (!require(devtools)) {
install.packages("devtools")
library(devtools)
}
install_github("bstatcomp/bayes4psy")
Funding
The research behind this software was partially funded by the Slovenian Research Agency (ARRS) through grants L1-7542 (Advancement of computationally intensive methods for efficient modern general-purpose statistical analysis and inference), P3-0338 (Physiological mechanisms of neurological disorders and diseases), J3-9264 (Decomposing cognition: working memory mechanism and representations), P5-0410 (Digitalization as driving force for sustainability of individuals, organizations, and society), and P5-0110 (Psychological and neuroscientific aspects of cognition).