Beispiel #1
0
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
Beispiel #2
0
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)
Beispiel #3
0
Datei: mle.py Projekt: ctw/myhddm
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