User Friendly Bayesian Data Analysis for Psychology


License
CNRI-Python-GPL-Compatible

Documentation

bayes4psy—User Friendly Bayesian Data Analysis for Psychology

R-CMD-check CRAN_Status_BadgeDownloads

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).