def logarithmic_theta_from_mean(mean): '''Return a theta that leads to a given logarithmic mean.''' # set lower and upper bounds to limit the search process lower = 0.01 upper = 0.99999 if mean < logser.mean(lower): return lower elif mean > logser.mean(upper): return upper else: return bisect(lambda nu: logser.mean(nu) - mean, lower, upper)
def logarithmic_theta_from_mean(mean): '''Return a theta that leads to a given logarithmic mean.''' # set lower and upper bounds to limit the search process lower = 0.01 upper = 0.99999 if mean<logser.mean(lower): return lower elif mean>logser.mean(upper): return upper else: return bisect(lambda nu: logser.mean(nu)-mean,lower,upper)
decade_mean = np.mat( np.kron(np.eye((T2 - T1 + 1) / 10 * dt), np.ones((10 / dt, 10 / dt)) / 10 * dt)) # walk through each alternative for value in ALTERNATIVES[PARAMETER]: # use default parameter values from settings.py parameters = DEFAULT.copy() # except for PARAMETER, for which we are doing the loop parameters[PARAMETER] = value # two percent expected growth rate parameters['Lambda'] = parameters['gamma'] + 0.02 # USA variance should match data theta_USA = logarithmic_theta_from_concentration(USA_VAR / parameters['gamma']) nbar_USA = logser.mean(theta_USA) print 'USA has theta=%f and n=%f' % (theta_USA, nbar_USA) parameters['epsilonpibar'] = USA_GDP / nbar_USA parameters['Ncap'] = Ncap # test assumptions assert 1 / (parameters['epsilon'] - 1) + parameters['theta_N'] <= 1 + parameters['theta_m0'] # create a scenario to be simulated with the parameters scenario = Scenario(GDP_list, population_list, dt=dt, how_long=142, T1=T1,
# annual simulation dt = 1 # helper matrix to calcuate decade means decade_mean = np.mat(np.kron(np.eye((T2-T1+1)/10*dt),np.ones((10/dt,10/dt))/10*dt)) # walk through each alternative for value in ALTERNATIVES[PARAMETER]: # use default parameter values from settings.py parameters = DEFAULT.copy() # except for PARAMETER, for which we are doing the loop parameters[PARAMETER] = value # two percent expected growth rate parameters['Lambda'] = parameters['gamma']+0.02 # USA variance should match data theta_USA = logarithmic_theta_from_concentration(USA_VAR/parameters['gamma']) nbar_USA = logser.mean(theta_USA) print 'USA has theta=%f and n=%f' % (theta_USA, nbar_USA) parameters['epsilonpibar'] = USA_GDP/nbar_USA parameters['Ncap'] = Ncap # test assumptions assert 1/(parameters['epsilon']-1) + parameters['theta_N'] <= 1+parameters['theta_m0'] # create a scenario to be simulated with the parameters scenario = Scenario( GDP_list,population_list,dt=dt,how_long=142, T1=T1,T2=T2,**parameters) # size of scenario object. crucial if sending to picloud over network print len(pickle.dumps(scenario))