def rna(mname): m=defmod.define_model(mname) m.sample(5000, burn=1000, dbname=mname+'_traces.db', db='pickle') postproc(m, mname=mname)
def optimize_sx(mname, project='imaging'): m = defmod.define_model(mname, project=project) data = m.data if 'z' in m.depends_on.keys(): bias = True else: bias = False grp_dict = {} subj_params = [] aic_list = [] bic_list = [] dic_list = [] ic_dict = {} for subj_idx, subj_data in data.groupby('subj_idx'): m_subj = hddm.HDDM(subj_data, depends_on=m.depends_on, bias=bias, include=m.include) sx_params = m_subj.optimize('ML') pdict = opt.get_pdict(sx_params) subj_params.append(sx_params) aic_list.append(aic(m_subj)) bic_list.append(bic(m_subj)) #dic_list.append(m_subj.dic) grp_dict[subj_idx] = pdict ic_dict = {'aic': aic_list, 'bic': bic_list} ic_df = pd.DataFrame(ic_dict) ic_df.to_csv(mname + "_IC_Rank.csv") #write grp_dict to .txt file for reloading later f = open('mle_params.txt', 'w') f.write('grp_dict=' + repr(grp_dict) + '\n') f.close() params = pd.DataFrame(subj_params) simdf = vis.predict(grp_dict, data, ntrials=100, nsims=100, save=True, RTname="dbmz_RT.jpeg", ACCname="dbmz_ACC.jpeg") #simdf=vis.predict(grp_dict, df, ntrials=160, nsims=100, save=True, RTname="SimRT_EvT.jpeg", ACCname="SimACC_EvT.jpeg") simdf.to_csv("simdf_opt.csv") params.to_csv("subj_params_opt.csv", index=False) sdt.plot_rho_sdt(data, simdf) empvsim = sdt.rho_sdt(data, simdf) return grp_dict, ic_df
def analyze_models(nsims=100, ntrials=100): mnames=['msm', 'dbm', 'dbmz', 'pbm'] #mnames=['pbm'] bias=True data=pd.read_csv("/Users/kyle/Desktop/beh_hddm/allsx_feat.csv") for m in mnames: if m=='dbm': bias=False model=defmod.define_model(m, project='behav') mpath="/Users/kyle/Desktop/beh_hddm/revised_models/"+m os.chdir(mpath) m0=model; m1=model; m2=model mlist=[m0.load_db(m+"_traces0.db", db='pickle'), m1.load_db(m+"_traces1.db", db='pickle'), m2.load_db(m+"_traces2.db", db='pickle')] allmodels=kabuki.utils.concat_models(mlist) allmodels.print_stats(m+"_stats_all.txt") vis.plot_neutral_traces(allmodels) for node in ['z', 'vf', 'vh']: vis.plot_posterior_nodes(allmodels, node) gparams={}; subj_params=[] msingle=defmod.define_single(m, project='behav') for subj_idx, subj_data in data.groupby('subj_idx'): m_subj=hddm.HDDM(subj_data, depends_on=msingle.depends_on, bias=bias, include=msingle.include) sx_params=m_subj.optimize('ML') pdict=opt.get_pdict(sx_params) subj_params.append(sx_params) gparams[subj_idx]=pdict #write gparams to .txt file for reloading later f=open(m+'mle_gparams.txt', 'w') f.write('gparams=' + repr(gparams) + '\n') f.close() simdf_list=[] for i in range(nsims): simdf, params_used=sims.sim_exp(pdict=gparams, ntrials=ntrials, pfast=0.0, pslow=0.0, nsims_per_sub=1) simdf['sim_n']=[i]*len(simdf.index) simdf_list.append(simdf) simdf=pd.concat(simdf_list) params = pd.DataFrame(subj_params) simdf.to_csv(m+"_simdf.csv") params.to_csv(m+"_sparams.csv", index=False)