def ANCOVA_for_attractive_saccades(dataset): sac.calc_saccade_stats(dataset) black_saccade_angle = [] black_angle_prior = [] checkered_saccade_angle = [] checkered_angle_prior = [] keys = dataset.keys_saccade_array evasive_threshold = 0.836248003234 for i, key in enumerate(keys): trajec = dataset.trajecs[key] a = dataset.angle_of_saccade_array[i] ap = dataset.angle_prior_array[i] if 1:#np.abs(a-ap) < evasive_threshold: if 'black' in trajec.post_type: black_saccade_angle.append(a) black_angle_prior.append(ap) elif 'checkered' in trajec.post_type: checkered_saccade_angle.append(a) checkered_angle_prior.append(ap) black_saccade_angle = np.array(black_saccade_angle) black_angle_prior = np.array(black_angle_prior) checkered_saccade_angle = np.array(checkered_saccade_angle) checkered_angle_prior = np.array(checkered_angle_prior) groups = [[black_angle_prior, black_saccade_angle], [checkered_angle_prior, checkered_saccade_angle]] floris.ANCOVA(groups)
def t_test_for_evasive_saccades(dataset): sac.calc_saccade_stats(dataset) black_saccade_angle = [] checkered_saccade_angle = [] keys = dataset.keys_saccade_array evasive_threshold = 0.836248003234 for i, key in enumerate(keys): trajec = dataset.trajecs[key] a = dataset.angle_of_saccade_array[i] ap = dataset.angle_prior_array[i] if np.abs(a-ap) > evasive_threshold: if 'black' in trajec.post_type: black_saccade_angle.append(dataset.angle_subtended_array[i]) elif 'checkered' in trajec.post_type: checkered_saccade_angle.append(dataset.angle_subtended_array[i]) black_saccade_angle = np.array(black_saccade_angle) checkered_saccade_angle = np.array(checkered_saccade_angle) if 1: fig = plt.figure() ax = fig.add_subplot(111) bins = np.linspace( np.log(5*np.pi/180.), np.log(180*np.pi/180.), 20) bins, hists, curves = floris.histogram(ax, [np.log(black_saccade_angle), np.log(checkered_saccade_angle)], bins=bins, colors=['black', 'teal'], return_vals=True, normed_occurences=True, curve_line_alpha=0) deg_ticks = np.array([5, 10, 30, 60, 90, 180]) deg_tick_strings = [str(d) for d in deg_ticks] rad_ticks = deg_ticks*np.pi/180. rad_ticks_log = np.log(rad_ticks) dist_tick_strings = ['(21)', '(10)', '(2.7)', '(0.9)', '(0.4)', '(0)'] x_tick_strings = [] for i, d in enumerate(dist_tick_strings): x_tick_strings.append( deg_tick_strings[i] + '\n' + dist_tick_strings[i] ) ax.set_xlim(rad_ticks_log[0], rad_ticks_log[-1]) ax.set_ylim(0,1) fa.adjust_spines(ax,['left', 'bottom']) ax.set_xlabel('Retinal size, deg\n(distance, cm)', labelpad=10) ax.set_ylabel('Occurances') ax.set_xticks(rad_ticks_log.tolist()) ax.set_xticklabels(x_tick_strings) fig.subplots_adjust(bottom=0.25, top=0.9, right=0.9, left=0.2) filename = 'saccade_histogram_black_vs_checkered' + '.pdf' fig.savefig(filename, format='pdf') print 't test: ', scipy.stats.ttest_ind(black_saccade_angle, checkered_saccade_angle) print 'mann whitney u: ', scipy.stats.mannwhitneyu(black_saccade_angle, checkered_saccade_angle) print 'black: ', np.mean(black_saccade_angle), 'n: ', len(black_saccade_angle) print 'checkered: ', np.mean(checkered_saccade_angle), 'n: ', len(checkered_saccade_angle) print 'total n - 2: ', len(black_saccade_angle) + len(checkered_saccade_angle) - 2