Dear HDDM users/team,
I am currently modeling my data (three-factor within-subject design) using hddm and struggling with function choosing.
I know I need to use regression function to estimate parameters for within-subject design. But the regression model with three factors took forever to finish (took about 4 days if sampling 5000 times for one model), and most importantly, it did not converge well without inter-trial variability parameters. Adding inter-trial variability (st0,sv) in it was only feasible in certain versions of hddm (or python) (I always got errors about ZeroProbability when I tried to add it in older versions like 0.8.0 or 0.7.5).
While when I tried hddm.hddm() function, it was much faster, there is no limitation to add st0, and it converged better.
Have someone met this problem before? Is it okay to stick with hddm.hddm() function? And why does it make these difference between there two functions?
Thank you! Any help is much appreciated!
Best,
Nancy
Here is my code:
regmodel_st0_sv = hddm.HDDMRegressor(data,{"a ~ 0 + C(swi)","t ~ 0 + C(swi):C(modality):C(condition)","v ~ 0 + C(swi):C(modality):C(condition)"},include=["st","sv"],p_outlier=0.05,group_only_regressors=False)
regmodel_st0_sv.find_starting_values()
regmodel_st0_sv.sample(5000,burn = 200,dbname='traces_reg_st0_sv.db',db='pickle')
regmodel_st0_sv.dic
regmodel_st0_sv.print_stats()
regmodel_st0_sv.save('regmodel_st0_sv')
model_st0 = hddm.HDDM(data,depends_on={'a':'swi','v':['swi','modality','condition'],'t':['swi','modality','condition']},include=["st"],p_outlier=0.05)
model_st0.find_starting_values()
model_st0.sample(5000,burn = 200,dbname='traces_st0.db',db='pickle')
model_st0.dic
model_st0.print_stats()
model_st0.save('model_st0')