assert len(choice[trial_start:trial_end]) == len(ses_data) assert np.array_equal(choice[trial_start:trial_end],ses_data['choices'].to_numpy(),equal_nan=True)==True ses_data.loc[ses_data['choices']] if trial_end<0: filling_length_end = abs(trial_end) else: filling_length_end = len(choice)-trial_end filling_length_start = trial_start end_filler=np.empty(filling_length_end) end_filler[:] = np.nan start_filler=np.empty(filling_length_start) start_filler[:] = np.nan assert (np.isnan(np.nanmean(ses_data['Qwater'].to_numpy()))==False) & (np.isnan(np.nanmean(ses_data['Qlaser'].to_numpy()))==False) assert (np.isnan(np.nanmean(ses_data['QRstay'].to_numpy()))==False) & (np.isnan(np.nanmean(ses_data['QLstay'].to_numpy()))==False) np.save(alf+'/'+prefix+'_choice_prediction.npy', np.concatenate([start_filler,ses_data['predicted_choice'].to_numpy(),end_filler])) np.save(alf+'/'+prefix+'_water.npy', np.concatenate([start_filler,ses_data['Qwater'].to_numpy(),end_filler])) np.save(alf+'/'+prefix+'_laser.npy', np.concatenate([start_filler,ses_data['Qlaser'].to_numpy(),end_filler])) np.save(alf+'/'+prefix+'_QLstay.npy', np.concatenate([start_filler,ses_data['QLstay'].to_numpy(),end_filler])) np.save(alf+'/'+prefix+'_QRstay.npy', np.concatenate([start_filler,ses_data['QRstay'].to_numpy(),end_filler])) ROOT_FOLDER = '/Volumes/witten/Alex/Data/Subjects' psy=mc.load_data(trial_start=0,trial_end=-150) standata = mc.make_stan_data(psy) reinforce_params = pd.read_csv('/Volumes/witten/Alex/Data/ephys_bandit/stan_fits/REINFORCE_laserdecaywin_mixedstay/output/summary.csv') reinforce_data = pd.DataFrame() reinforce_data = mc.reinforce_model_alphalaserdecay_mixed_perseveration(standata,saved_params=reinforce_params) assert len(psy) == len(reinforce_data) prefix='REINFORCE_mixedstay_alphalaserdecay' save_q_values(ROOT_FOLDER,psy,reinforce_data,prefix, trial_start=0,trial_end=-150)
axis=0))) WAIC_laserdecay_mixedperseveration = -2 * ( np.sum(np.log(REINFORCE_laserdecaywinloss_mixedstay.mean(axis=0))) - np.sum( np.var(np.log(REINFORCE_laserdecaywinloss_mixedstay), axis=0))) WAIC_laserdecay_mixedperseveration_noloss = -2 * (np.sum( np.log(REINFORCE_laserdecaywinloss_mixedstay_noloss.mean(axis=0)) ) - np.sum( np.var(np.log(REINFORCE_laserdecaywinloss_mixedstay_noloss), axis=0))) WAIC_standard_laserdecay = -2 * ( np.sum(np.log(standard_laserdecay.mean(axis=0))) - np.sum(np.var(np.log(standard_laserdecay), axis=0))) except: # 1 standata = mc.make_stan_data(mc.load_data(trial_end=-1)) path = '/Volumes/witten/Alex/Data/ephys_bandit/stan_fits/standard_reduced_stay' model = mc.q_learning_model_reduced_stay WAIC_reducedstay = lppd_from_chain(path, model, standata, save=True, save_name='qreducedstay') # 2 path = '/Volumes/witten/Alex/Data/ephys_bandit/stan_fits/standard_reduced' model = mc.q_learning_model_reduced WAIC_reduced = lppd_from_chain(path, model, standata, save=True, save_name='qreduced')