# BDACM_2018

Class material for "Bayesian Data Analysis & Cognitive Modeling" 2018

Project maintained by michael-franke Hosted on GitHub Pages — Theme by mattgraham

## Basic programming language

The main programming language we use is R. The slides and notes that accompany the lecture will use it, and whenever homeworks require programming, you will use it too.

It is recommended to use RStudio, because it nicely integrates with Rmarkdown, which is what you should use for your homework assignments.

There will be a number of R packages that we will need. Most importantly, we will work in the tidyverse. More necessary packages will be mentioned as we go along.

## Bayesian computation

There are quite a number of tools that help with Bayesian computation already. Bayesian computation is a vibrant and active field of current research. This course will use a programming languages specialized for the formulation and computation of probabilistic inference, namely Stan, which is specifically powerful for estimating hierarchical models (such as mixed effects generalized linear models - a major current workhorse of statistical inference).

Other tools exist, and here are a few links to explore. All tools have their particular weaknesses and strengths.

#### JAGS

JAGS is a specialized programming language to describe probabilistic models and perform Bayesian inference for these. It efficiently computes samples from the posterior distribution. We will communicate with JAGS from within R, using packages `runjags`, `R2jags` or `rjags`. We will use JAGS as a starting point and explore some simple cognitive models with it.

#### Stan

Stan is, like JAGS, a specialized programming language to describe probabilistic models and perform Bayesian inference for these. It efficiently computes samples from the posterior distribution and performs some additional magic (variational Bayes, MLE, …). Stan is particularly powerful for the computation of hierarchical models and we will use it to explore Bayesian approaches to regression modeling. We will communicate with Stan from within R, using packages `RStan` and `brms`.

#### WebPPL

WebPPL is a general purpose probabilistic programming language. We will use it for the exploration of some more complex cognitive models. We will communicate with WebPPL from within R, using package `RWebPPL`. WebPPL also has a browser-based interface, making it easy to explore simple probabilistic models very quickly.

## Bayesian statistics

A slick and accessible tool for Bayesian statistics is JASP, which comes with a GUI. A competitor with similar ambitions (but with less emphasis on Bayes) is jamovi.