Example #1
0
    t, series, steps, events = M.getStats()
    ser = st.nanmean(series, axis=0)
    # print series.shape, ser.shape
    return ser


d = runModel([beta, alpha, sigma])
# ~ import pylab as P
# ~ P.plot(d)
# ~ P.show()

dt = {'S': d[:, 0], 'E': d[:, 1], 'I': d[:, 2], 'A': d[:, 3], 'R': d[:, 4]}
F = FitModel(900,
             runModel,
             inits,
             tf, ['beta', 'alpha', 'sigma'], ['S', 'E', 'I', 'A', 'R'],
             wl=140,
             nw=1,
             verbose=0,
             burnin=100)
F.set_priors(tdists=[st.uniform] * 3,
             tpars=[(0.00001, .0006), (.1, .5), (0.0006, 1)],
             tlims=[(0, .001), (.001, 1), (0, 1)],
             pdists=[st.uniform] * 5,
             ppars=[(0, 500)] * 5,
             plims=[(0, 500)] * 5)

F.run(dt, 'MCMC', likvar=1e1, pool=0, monitor=[])
# ~ print F.optimize(data=dt,p0=[0.1,.5,.1], optimizer='oo',tol=1e-55, verbose=1, plot=1)
# ==Uncomment the line below to see plots of the results
F.plot_results()
        '''ODE model'''
        S, I, R = y
        return [
            -beta * I * S,  #dS/dt
            beta * I * S - tau * I,  #dI/dt
            tau * I
        ]  #dR/dt

    y = odeint(sir, inits, np.arange(0, tf, 1))  #np.arange(t0,tf,step))
    return y


F = FitModel(300,
             model,
             y0,
             tf, ['beta'], ['S', 'I', 'R'],
             wl=36,
             nw=1,
             verbose=1,
             burnin=100)
F.set_priors(tdists=[st.norm],
             tpars=[(1.1, .2)],
             tlims=[(0.5, 1.5)],
             pdists=[st.uniform] * 3,
             ppars=[(0, .1), (0, .1), (.8, .2)],
             plims=[(0, 1)] * 3)
d = model([1.0])  #simulate some data
noise = st.norm(0, 0.01).rvs(36)
dt = {'I': d[:, 1] + noise}  # add noise
F.run(dt, 'MCMC', likvar=1e-5, pool=True, monitor=[])
#==Uncomment the line below to see plots of the results
F.plot_results()
        wl = fim - inicio
        nw = 1

        tpars = [(1, 1), (0, 5e-6), (.9999, .0002)]
        tlims = [(0, 1), (0, 5e-6), (.9999, 1.0001)]

        inits = [1 - dt['I'][0], dt['I'][0], 0]
        dt2 = copy.deepcopy(dt)
        # print inits

        F = FitModel(5000,
                     model,
                     inits,
                     fim - inicio,
                     tnames,
                     pnames,
                     wl,
                     nw,
                     verbose=1,
                     burnin=1000,
                     constraints=[])
        F.set_priors(tdists=[st.beta, st.uniform, st.uniform],
                     tpars=tpars,
                     tlims=tlims,
                     pdists=[st.beta] * nph,
                     ppars=[(1, 1)] * nph,
                     plims=[(0, 1)] * nph)

        F.run(dt,
              'DREAM',
              likvar=1e-9,
beta = 1  #Transmission coefficient
tau = .2  #infectious period. FIXED
tf = 36
y0 = [.999, 0.001, 0.0]


def model(theta):
    beta = theta[0]

    def sir(y, t):
        '''ODE model'''
        S, I, R = y
        return [-beta * I * S,  #dS/dt
                beta * I * S - tau * I,  #dI/dt
                tau * I]  #dR/dt

    y = odeint(sir, inits, np.arange(0, tf, 1))  #np.arange(t0,tf,step))
    return y


F = FitModel(300, model, y0, tf, ['beta'], ['S', 'I', 'R'],
             wl=36, nw=1, verbose=1, burnin=100)
F.set_priors(tdists=[st.norm], tpars=[(1.1, .2)], tlims=[(0.5, 1.5)],
             pdists=[st.uniform] * 3, ppars=[(0, .1), (0, .1), (.8, .2)], plims=[(0, 1)] * 3)
d = model([1.0])  #simulate some data
noise = st.norm(0, 0.01).rvs(36)
dt = {'I': d[:, 1] + noise}  # add noise
F.run(dt, 'MCMC', likvar=1e-5, pool=True, monitor=[])
#==Uncomment the line below to see plots of the results
F.plot_results()
Example #5
0
    P.vlines(t0s, 0, top, colors='g')
    P.vlines(tfs, 0, top, colors='r')
    P.legend([pnames[1]])
    P.show()
    #Priors and limits for all countries
    tpars = [
        (2, 1)
    ] * nt  #[(1, 2),(1, 2),(1, 2),(1, 2),(1, 2), (2, 1),(1, 2),(1, 2), (2, 1), (1, 2),]
    tlims = [(0, 1)] * nt

    F = FitModel(1000,
                 model,
                 inits,
                 tf,
                 tnames,
                 pnames,
                 wl,
                 nw,
                 verbose=1,
                 burnin=200,
                 constraints=[])
    F.set_priors(tdists=nt * [st.beta],
                 tpars=tpars,
                 tlims=tlims,
                 pdists=[st.beta] * nph,
                 ppars=[(1, 1)] * nph,
                 plims=[(0, 1)] * nph)

    F.run(dt,
          'DREAM',
          likvar=1e-4,
    tmat = np.array([[-1, 0, 0, 0, 0],
                  [ 1,-1, 0,-1, 0],
                  [ 0, 1,-1, 0, 0],
                  [ 0, 0, 0, 1,-1],
                  [ 0, 0, 1, 0, 1]
                ])
    M=Model(vnames=vnames,rates = r,inits=inits,tmat=tmat,propensity=propf)
    #t0 = time.time()
    M.run(tmax=tf,reps=1,viz=0,serial=True)
    t,series,steps,events = M.getStats()
    ser = st.nanmean(series,axis=0)
    #print series.shape, ser.shape
    return ser

d = runModel([beta,alpha,sigma])
#~ import pylab as P
#~ P.plot(d)
#~ P.show()

dt = {'S':d[:,0],'E':d[:,1],'I':d[:,2],'A':d[:,3],'R':d[:,4]}
F = FitModel(900, runModel,inits,tf,['beta','alpha','sigma'],['S','E','I','A','R'],
            wl=140,nw=1,verbose=0,burnin=100)
F.set_priors(tdists=[st.uniform]*3,tpars=[(0.00001,.0006),(.1,.5),(0.0006,1)],tlims=[(0,.001),(.001,1),(0,1)],
    pdists=[st.uniform]*5,ppars=[(0,500)]*5,plims=[(0,500)]*5)

F.run(dt,'MCMC',likvar=1e1,pool=0,monitor=[])
#~ print F.optimize(data=dt,p0=[0.1,.5,.1], optimizer='oo',tol=1e-55, verbose=1, plot=1)
#==Uncomment the line below to see plots of the results
F.plot_results()
        P.legend(loc=0)
        P.show()
        nw = 1

        tpars = [(1, 1), (1e-6, 1e-8)]
        tlims = [(0.03, .1), (0, 5e-6)]
        del dt['Rt']
        dt2 = copy.deepcopy(dt)
        # print inits

        F = FitModel(5000,
                     model,
                     inits,
                     fim - inicio,
                     tnames,
                     pnames,
                     wl,
                     nw,
                     verbose=1,
                     burnin=1100,
                     constraints=[])
        F.set_priors(tdists=[st.beta, st.norm],
                     tpars=tpars,
                     tlims=tlims,
                     pdists=[st.beta] * nph,
                     ppars=[(1, 1)] * nph,
                     plims=[(0, 1)] * nph)

        F.run(dt,
              'DREAM',
              likvar=1e-8,
Example #8
0
        '''ODE model'''
        S, I, R = y
        return [
            -beta * I * S,  # dS/dt
            beta * I * S - tau * I,  # dI/dt
            tau * I
        ]  # dR/dt

    y = odeint(sir, inits, np.arange(0, tf, 1))
    return y


F = FitModel(2000,
             model,
             y0,
             tf, ['beta', 'tau'], ['S', 'I', 'R'],
             wl=36,
             nw=1,
             verbose=1,
             burnin=100)
F.set_priors(tdists=[st.norm, st.norm],
             tpars=[(1.1, .2), (.2, .1)],
             tlims=[(0.5, 1.5), (0, 1)],
             pdists=[st.uniform] * 3,
             ppars=[(0, .1), (0, .1), (.8, .2)],
             plims=[(0, 1)] * 3)
d = model([1.0, .2])  # simulate some data
noise = st.norm(0, 0.01).rvs(36)
dt = {'I': d[:, 1] + noise}  # add noise
F.run(dt, 'DREAM', likvar=1e-2, pool=True, monitor=['I'], likfun='Normal')
# ==Uncomment the line below to see plots of the results
F.plot_results()