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
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
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
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)