stan-dev / math

The Stan Math Library is a C++ template library for automatic differentiation of any order using forward, reverse, and mixed modes. It includes a range of built-in functions for probabilistic modeling, linear algebra, and equation solving.
https://mc-stan.org
BSD 3-Clause "New" or "Revised" License
744 stars 187 forks source link

Add "Ratcliff" log-likelihood, Wiener process with intrinsic trial-to-trial drift variability #287

Open mdnunez opened 8 years ago

mdnunez commented 8 years ago

From @mdnunez on April 19, 2016 23:50

New Feature Suggestion:

Add a Wiener likelihood function with intrinsic trial to trial variability in the drift rate, titled the "Ratcliff" likelihood function

Description:

Adding a parameter that describes the variance in drift rate over trials to the Wiener likelihood function yields better estimates of incorrect reaction time (see Table 3 of Nunez et al, 2016 for an example deficit of incorrect-RT prediction with a hierarchical version of the simple Wiener likelihood). This version of the diffusion model and its extensions was popularized by Ratcliff (1978; see also Ratcliff and McKoon, 2008) and is used widely in the mathematical psychology and neuroscience communities. Because of sampling techniques developed by Navarro and Fuss (2009) and probability density function derivations by Tuerlinckx (2004), it is relatively straight-forward to copy and change the existing Wiener likelihood sampler in Stan to include intrinsic trial-to-trial variability. This method has already been implemented by existing hierarchical "drift-diffusion" model samplers (Wiecki, 2003).

Additional Information:

I have a version of "ratcliff_log.hpp" code mostly finished however it needs to be tested and compared to simulations. Any helpful pointers to what needs to be changed in other parts of Stan code would be appreciated.

Citations:

v2.9.0

Copied from original issue: stan-dev/stan#1875

mdnunez commented 8 years ago

From @bob-carpenter on April 20, 2016 17:0

Any helpful pointers to what needs to be changed in other parts of Stan code would be appreciated.

See:

mdnunez commented 6 years ago

The current version of the Ratcliff likelihood is located here. Tests still need to be implemented by coping and editing wiener_test.hpp

mariusbarth commented 6 years ago

@mdnunez, thanks for your efforts! This is exactly what I need for my current work.