Пример #1
0
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)    
Пример #2
0
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