Esempio n. 1
0
def run(data, results_path, seed):
    np.random.seed(seed)

    results = {}
    for name in sorted(data.keys()):
        correct = data[name][data[name]['correct']]
        results[name] = 1. / util.bootstrap_mean(1. / correct['time'])

    results = pd.DataFrame.from_dict(results, orient='index')
    results.index.name = 'model'
    # these are out of order, so fix them
    results = results.rename(columns={
        'lower': 'upper',
        'upper': 'lower'})

    pth = results_path.joinpath(filename)
    results.to_csv(pth)

    with open(results_path.joinpath(texname), "w") as fh:
        fh.write("%% AUTOMATICALLY GENERATED -- DO NOT EDIT!\n")
        for model, stats in results.iterrows():
            cmd = util.newcommand(
                "%sTime" % model.capitalize(),
                util.latex_msec.format(**dict(stats)))
            fh.write(cmd)

    return pth
Esempio n. 2
0
 def num_chance(df):
     groups = df.groupby(['kappa0', 'stimulus'])['mass? correct']
     alpha = (0.05 / len(groups.groups)) * 100
     results = groups\
         .apply(lambda x: util.bootstrap_mean(x, percentiles=[alpha]))\
         .unstack(-1) <= 0.5
     results = results.rename(columns={alpha: alpha / 100})
     return results
Esempio n. 3
0
def run(data, results_path, seed):
    np.random.seed(seed)
    keys = ['exp', 'expA', 'expB']

    results = {}
    for key in keys:
        df = data[key]
        times = df[df['correct']].groupby('trial')['time']
        results[key] = times.apply(
            lambda x: 1. / util.bootstrap_mean(1. / x))

    results = pd.DataFrame.from_dict(results, orient='index')
    results.index.name = 'model'
    results.columns = pd.MultiIndex.from_tuples(
        results.columns, names=['trial', 'stat'])
    results = results.stack('trial')
    pth = results_path.joinpath(filename)
    results.to_csv(pth)
    return pth
Esempio n. 4
0
def run(data, results_path, seed):
    np.random.seed(seed)

    results = {}
    for key, df in data.iteritems():
        y = df[df['correct']].groupby(
            ['stimulus', 'modtheta', 'flipped'])['time']
        results[key] = y.apply(
            lambda x: 1. / util.bootstrap_mean(1. / x))

    results = pd.DataFrame.from_dict(results)
    results.index = pd.MultiIndex.from_tuples(
        results.index, names=['stimulus', 'modtheta', 'flipped', 'stat'])
    results.columns.name = 'model'
    results = results.stack().unstack('stat')
    results.columns.name = None
    results = results.reset_index()

    pth = results_path.joinpath(filename)
    results.to_csv(pth)
    return pth
 def bootstrap_mean(df, **kwargs):
     name, df = df
     df.name = name
     return util.bootstrap_mean(df, **kwargs)