In [1]:
import pandas as pd
import matplotlib.pyplot as plt
from patsy import dmatrix
import hddm
print hddm.__version__
In [2]:
data = hddm.load_csv('/Users/doby/Dropbox/current_projects/TBS_to_PFC/Analyses/modeling/data_for_HDDM.csv')
In [3]:
data.head(10)
Out[3]:
In [4]:
data = hddm.utils.flip_errors(data)
In [5]:
# Instantiate model object passing it our data (no need to call flip_errors() before passing it).
# This will tailor an individual hierarchical DDM around your dataset.
m = hddm.HDDM(data, depends_on={'a': ['tms_site', 'Attended', 'SAT'], ...
'v': ['tms_site', 'Attended', 'SAT']}, p_outlier=.05)
# find a good starting point which helps with the convergence.
m.find_starting_values()
# start drawing 7000 samples and discarding 5000 as burn-in
m.sample(2000, burn=20)
#save the model
model.save('no within-subject effects model')
Out[5]:
In [40]:
m.nodes_db.map
Out[40]:
In [45]:
v_accuracy, v_speed = m.nodes_db.node[['v(Valid.Accuracy.S1)', 'v(Valid.Accuracy.FEF)']]
hddm.analyze.plot_posterior_nodes([v_accuracy, v_speed])
plt.xlabel('drift-rate')
plt.ylabel('Posterior probability')
plt.title('Posterior of drift-rate group means')
plt.savefig('Posteriors.pdf')
In [42]:
print "P(Speed < Accuracy) = ", (v_speed.trace() < v_accuracy.trace()).mean()
In [8]:
dmatrix("C(tms_site , Treatment('S1'))", data)
Out[8]:
In [53]:
# Instantiate model object passing it our data (no need to call flip_errors() before passing it).
# This will tailor an individual hierarchical DDM around your dataset.
m = hddm.HDDMRegressor (data, "v ~ C(tms_site , Treatment('S1'))", "a ~ C(tms_site , Treatment('S1'))", depends_on={'a': ['tms_site', 'Attended', 'SAT'], 'v': ['tms_site', 'Attended', 'SAT']}, p_outlier=.05)
# find a good starting point which helps with the convergence.
m.find_starting_values()
# start drawing 7000 samples and discarding 5000 as burn-in
m.sample(5000, burn=200)
In [ ]: