x = .01 y = 0.1 z = 0 nsims = 50 cost_fun = lambda s1, s2: (B1*s1-x)**2 + (z+B2*s2 - B2*(B1*s1-y)**2)**2 #perturb_rate = 0.01 # Proportion of points that are perturbations # # 1% = 10 Hz. Only half of these are spikes, so the injected noise rate is 5Hz mvals = [0.0025, 0.005, 0.01, 0.015] M = len(mvals) params_lif = ParamsLIF(sigma = sigma, tau = tau, mu = mu, c = c) lif = LIF(params_lif, t = tsim) lif.x = x_input t_filter = np.linspace(0, 1, 2000) exp_filter = np.exp(-t_filter/tau_s) exp_filter = exp_filter/np.sum(exp_filter) ds = exp_filter[0] wvals = np.linspace(wmin, wmax, Wn) beta_rd = np.zeros((Wn, Wn, n, T, nsims)) beta_rd_mean = np.zeros((Wn, Wn, n, T, nsims)) beta_rd_true = np.zeros((Wn, Wn, n, T, nsims)) beta_fd_true = np.zeros((Wn, Wn, n, T, nsims)) beta_sp = np.zeros((Wn, Wn, n, T, M, nsims))
import numpy as np from lib.lif import LIF, ParamsLIF from lib.causal import causaleffect params = ParamsLIF() lif = LIF(params) #Simulate for a range of $W$ values. N = 10 nsims = 500 wvals = np.linspace(1, 10, N) beta_rd_w = np.zeros((N, N, nsims, params.n)) beta_fd_w = np.zeros((N, N, nsims, params.n)) beta_bp_w = np.zeros((N, N, nsims, params.n)) lif.setup(params) p = 0.03 for i, w0 in enumerate(wvals): for j, w1 in enumerate(wvals): print("Running %d simulations with w0=%f, w1=%f" % (nsims, w0, w1)) lif.W = np.array([w0, w1]) for k in range(nsims): (v, h, Cost, betas) = lif.simulate() beta_rd_w[i, j, k, :] = causaleffect(v, Cost, p, params) beta_fd_w[i, j, k, :] = causaleffect(v, Cost, 1, params) beta_bp_w[i, j, k, :] = betas #Save output outfile = './sweeps/param_w_N_%d_nsims_%d_default.npz' % (N, nsims)
import numpy as np from lib.lif import LIF, ParamsLIF from lib.causal import causaleffect #Set x = 0, sigma = 10 #wvals = 2..20 sigma = 10 mu = 1 tau = 1 t = 500 params = ParamsLIF(sigma = sigma, mu = mu, tau = tau) lif = LIF(params, t = t) lif.x = 0 #Simulate for a range of $W$ values. N = 19 nsims = 1 wmax = 20 n = params.n deltaT = 50 #Play with different c values cvals = [0.01, 0.25, 0.5, 0.75, 0.99] for c in cvals: print("Running simulations for c = %f"%c) outfile = './sweeps/param_w_N_%d_nsims_%d_c_%f_deltaT_counterfactual_simulations.npz'%(N, nsims, c) params.c = c lif.setup(params) lif.x = 0 wvals = np.linspace(2, wmax, N)
M = len(mvals) # Filename for results fn_out = './sweeps/learningbeta_fixedx_sweepw_banana_perturbation.npz' #Cost function params B1 = 2 B2 = 7 x = .05 y = 0.15 z = -0.2 params = ParamsLSM(q=q, p=1, t=t) lsm = LSM(params) params_lif = ParamsLIF() lif = LIF(params_lif, t=t) t_filter = np.linspace(0, 0.15, 150) exp_filter = np.exp(-t_filter / tau_s) exp_filter = exp_filter / np.sum(exp_filter) ds = exp_filter[0] wvals = np.linspace(1, wmax, Wn) beta_rd = np.zeros((Wn, Wn, n, N)) beta_rd_true = np.zeros((Wn, Wn, n, N)) beta_fd_true = np.zeros((Wn, Wn, n, N)) beta_sp = np.zeros((Wn, Wn, n, N, M)) for i, w0 in enumerate(wvals): print("W0=%d" % w0) for j, w1 in enumerate(wvals):