Exemplo n.º 1
0
def fit_sx(mname, project='behav', regress=False):
	
	pth=find_path()

	data=defmod.find_data(mname, project)
	
	grp_dict={}; subj_params=[]; aic_list=[]; bic_list=[]; dic_list=[]; ic_dict={}

	for subj_idx, subj_data in data.groupby('subj_idx'):

		m_sx=defmod.define_sxbayes(mname, subj_data, project=project, regress=regress)
		m_sx.sample(1000, burn=500, dbname=str(subj_idx)+"_"+mname+'_traces.db', db='pickle')
		
		sx_df=parse.stats_df(m_sx)
		sx_df=sx_df.drop("sub", axis=1)
		sx_df['sub']=[subj_idx]*len(sx_df)
		
		subj_params.append(sx_df)
		aic_list.append(aic(m_sx)); bic_list.append(bic(m_sx)); dic_list.append(m_sx.dic)

	allsx_df=pd.concat(subj_params)
	allsx_df.to_csv(mname+"_SxStats.csv", index=False)
	
	ic_dict={'aic':aic_list, 'bic':bic_list, 'dic':dic_list}
	ic_df=pd.DataFrame(ic_dict)
	ic_df.to_csv(mname+"_IC_Rank.csv")
	
	return allsx_df
Exemplo n.º 2
0
def run_models(mname, project, regress=False):

    #bayes fit all subject
    allsx_df = fit_sx(mname, project=project, regress=regress)

    #parse model output
    subdf = parse_allsx(allsx_df)
    pdict = subdf_to_pdict(subdf)

    #simulate and compare with observed data
    data = defmod.find_data(mname, project=project)
    simdf = vis.predict(pdict,
                        data,
                        ntrials=160,
                        nsims=100,
                        save=True,
                        RTname="SimRT_EvT.jpeg",
                        ACCname="SimACC_EvT.jpeg")
    simdf.to_csv("simdf_sxbayes.csv")

    #save pdict; can be reloaded and transformed back into
    #the original pdict format by the following commands
    #1.  pdict=pd.read_csv("sxbayes_pdict.csv")
    #2.  pdict=pdict.to_dict()
    params = pd.DataFrame(pdict)
    params.to_csv("sxbayes_pdict.csv", index=False)
Exemplo n.º 3
0
def run_models(mname, project, regress=False):
	
	#bayes fit all subject
	allsx_df=fit_sx(mname, project=project, regress=regress)
	
	#parse model output
	subdf=parse_allsx(allsx_df)
	pdict=subdf_to_pdict(subdf)
	
	#simulate and compare with observed data
	data=defmod.find_data(mname, project=project)
	simdf=vis.predict(pdict, data, ntrials=160, nsims=100, save=True, RTname="SimRT_EvT.jpeg", ACCname="SimACC_EvT.jpeg")
	simdf.to_csv("simdf_sxbayes.csv")
	
	#save pdict; can be reloaded and transformed back into
	#the original pdict format by the following commands 
	#1.  pdict=pd.read_csv("sxbayes_pdict.csv")
	#2.  pdict=pdict.to_dict()
	params=pd.DataFrame(pdict)
	params.to_csv("sxbayes_pdict.csv", index=False)
Exemplo n.º 4
0
def fit_sx(mname, project='behav', regress=False):

    pth = find_path()

    data = defmod.find_data(mname, project)

    grp_dict = {}
    subj_params = []
    aic_list = []
    bic_list = []
    dic_list = []
    ic_dict = {}

    for subj_idx, subj_data in data.groupby('subj_idx'):

        m_sx = defmod.define_sxbayes(mname,
                                     subj_data,
                                     project=project,
                                     regress=regress)
        m_sx.sample(1000,
                    burn=500,
                    dbname=str(subj_idx) + "_" + mname + '_traces.db',
                    db='pickle')

        sx_df = parse.stats_df(m_sx)
        sx_df = sx_df.drop("sub", axis=1)
        sx_df['sub'] = [subj_idx] * len(sx_df)

        subj_params.append(sx_df)
        aic_list.append(aic(m_sx))
        bic_list.append(bic(m_sx))
        dic_list.append(m_sx.dic)

    allsx_df = pd.concat(subj_params)
    allsx_df.to_csv(mname + "_SxStats.csv", index=False)

    ic_dict = {'aic': aic_list, 'bic': bic_list, 'dic': dic_list}
    ic_df = pd.DataFrame(ic_dict)
    ic_df.to_csv(mname + "_IC_Rank.csv")

    return allsx_df