I implemented a little wrapper for fast-dm which makes it easier to use fast-dm in a python environment. You can fide the code on github. There is also an IPython notebook. that shows how to use it.
FastDM Python wrapper demo
A short demo of how easy you can fit DDM models using fastdm and Python, on multiple cores
In [5]:
import fastdm
import pandas
load in data
In [9]:
data = pandas.load('/home/gdholla1/data/tdcs/data/leiden/leiden.pandas')
Set up the model. We feed in: * A Pandas DataFrame with columns RT and response * A dictionary indicating which parameters depend on which conditions
In [10]:
model = fastdm.FastDM(data,
depends_on={'a':['acc_spd', 'stimulation'],
't0':['acc_spd', 'stimulation'],})
We fit using 10 CPU cores at the same time
In [11]:
model.fit(nproc=10)
Out[11]:
Now we can extract a FastDMResult-object
In [31]:
pars = model.get_parameters()
That has a dataframe parameters as an attribute
In [41]:
pars.parameters
Out[41]:
You can also make a ‘melted’ dataframe for a single parameter
In [43]:
p = pars.melted_parameters('t0')
p
Out[43]:
Let’s make some nice plots using seaborn
In [44]:
import seaborn as sns
In [45]:
p = pars.melted_parameters('t0')
sns.factorplot('acc_spd', 't0', hue='stimulation', data=p, units='subj_idx',)
Out[45]:
In [47]:
p = pars.melted_parameters('a')
sns.factorplot('stimulation', 'a', hue='acc_spd', data=p, units='subj_idx',)
Out[47]: