import json, numpy as np from experiment import simulate, theoretical_bias def one(n, mode, seed): return simulate(n,8,.028,mode,seed,rounds=6000,burn=1500) for n in (8,64): print('N',n,'theory',theoretical_bias(.028,n,8)) for mode in ('vanilla','output_correction','gradient_correction'): z=[one(n,mode,9000+i) for i in range(5)] # output correction's relevant bias is mean_reported_x; other modes use mean_x. vals=np.array([r['mean_reported_x'] for r in z]) print(mode,'mean',vals.mean(),'abs(mean)',abs(vals.mean()),'seed_abs_mean',np.abs(vals).mean(),'sd',vals.std())