Exemplo n.º 1
0
        if "Phi" in trace.varnames:
            self.Phi = trace.Phi
        elif "Phi_1" in trace.varnames:
            self.Phi = trace.Phi_1


if __name__ == "__main__":
    folds = [['FR', 'GR', 'NL', 'BA', 'LV'], ['SE', 'DE', 'LT', 'MY', 'BG'],
             ['FI', 'DK', 'CZ', 'RS', 'BE'], ['NO', 'SK', 'IL', 'CH', 'ES'],
             ['ZA', 'MX', 'IT', 'IE', 'GE'], ['RO', 'PL', 'MA', 'HU', 'SI'],
             ['NZ', 'SG', 'PT', 'HR', 'EE']]

    eval_fold = ['AL', 'AT', 'GB', 'AD', 'IS', 'MT']

    dp = DataPreprocessor()
    for fold_i, fold in enumerate(folds):
        data = dp.preprocess_data(
            "notebooks/double-entry-data/double_entry_final.csv",
            last_day="2020-05-30",
            schools_unis="whoops")
        data.mask_reopenings()

        r_is = []
        for rg in fold:
            c_s, d_s = mask_region(data, rg)
            r_is.append(data.Rs.index(rg))

        with cm_effect.models.CMCombined_Final_DifEffects(data, None) as model:
            model.DailyGrowthNoise = args.growth_noise
            model.RegionVariationNoise = args.country_noise
Exemplo n.º 2
0
    d_s = np.nonzero(np.cumsum(d.NewDeaths.data[i, :] > 0) == days + 1)[0]
    if len(d_s) > 0:
        d_s = d_s[0]
    else:
        d_s = len(d.Ds)

    d.Active.mask[i, c_s:] = True
    d.Confirmed.mask[i, c_s:] = True
    d.Deaths.mask[i, d_s:] = True
    d.NewDeaths.mask[i, d_s:] = True
    d.NewCases.mask[i, c_s:] = True


if __name__ == "__main__":

    dp = DataPreprocessor()
    exp_num = args.exp

    print(f"running exp {exp_num}")
    # structural sensitivity
    if exp_num == 1:
        data = dp.preprocess_data(
            "notebooks/double-entry-data/double_entry_final.csv",
            last_day="2020-05-30",
            schools_unis="whoops")
        data.mask_reopenings()

        with cm_effect.models.CMCombined_Additive(data, None) as model:
            model.build_model()

    elif exp_num == 2:
Exemplo n.º 3
0
    d.NewCases.mask[i, c_s:] = True


if __name__ == "__main__":

    class ResultsObject():
        def __init__(self, indxs, trace):
            self.CMReduction = trace.CMReduction
            self.RegionLogR = trace.RegionLogR[:, indxs]
            self.InfectedCases = trace.InfectedCases[:, indxs, :]
            self.InfectedDeaths = trace.InfectedDeaths[:, indxs, :]
            self.ExpectedCases = trace.ExpectedCases[:, indxs, :]
            self.ExpectedDeaths = trace.ExpectedDeaths[:, indxs, :]
            self.Phi = trace.Phi_1

    dp = DataPreprocessor(min_confirmed=100, drop_HS=True)
    data = dp.preprocess_data("notebooks/final_data/data_final.csv")

    HO_rs = ["DE", "PT", "CZ", "PL", "MX", "NL"]
    indxs = [data.Rs.index(rg) for rg in HO_rs]
    unmask_all(data)
    for region in HO_rs:
        mask_region(data, region)

    print(f"Growth Noise {args.g}")
    with cm_effect.models.CMCombined_Final_V3(data, None) as model:
        model.DailyGrowthNoise = args.g
        model.build_model()

    with model.model:
        model.trace = pm.sample(args.nS, chains=args.nC, target_accept=0.95)
Exemplo n.º 4
0
        if "Phi" in trace.varnames:
            self.Phi = trace.Phi
        elif "Phi_1" in trace.varnames:
            self.Phi = trace.Phi_1


if __name__ == "__main__":
    folds = [['DE', 'HU', 'FI', 'IE', 'RS', 'BE'],
             ['DK', 'GR', 'NO', 'FR', 'RO', 'MA'],
             ['ES', 'CZ', 'NL', 'CH', 'PT', 'AT'],
             ['IL', 'SE', 'IT', 'MX', 'GB', 'PL']]

    fold_rs = folds[args.fold]

    dp = DataPreprocessor(drop_HS=True)
    data = dp.preprocess_data("notebooks/final_data/data_final.csv")

    major_interventions = ["School Closure", "Stay Home Order", "Some Businesses Suspended",
                           "Most Businesses Suspended", "Gatherings <10", "Gatherings <1000", "Gatherings <100"]
    minor_interventions = ["Mask Wearing", "Symptomatic Testing"]

    ActiveCMs = copy.deepcopy(data.ActiveCMs)

    maj_indxs = np.array([data.CMs.index(x) for x in major_interventions])
    min_indxs = np.array([data.CMs.index(x) for x in minor_interventions])

    nRs, nCMs, nDs = ActiveCMs.shape

    for r in range(nRs):
        maj_active = np.sum(data.ActiveCMs[r, maj_indxs, :], axis=0)
Exemplo n.º 5
0
        with cm_effect.models.CMCombined_ICL_NoNoise_3(data, None) as model:
            model.build_model()

    elif args.model == 2:
        with cm_effect.models.CMCombined_ICL_NoNoise_4(data, None) as model:
            model.build_model()

    elif args.model == 3:
        with cm_effect.models.CMCombined_ICL_NoNoise_5(data, None) as model:
            model.build_model()

    elif args.model == 4:
        with cm_effect.models.CMCombined_ICL_NoNoise_6(data, None) as model:
            model.build_model()

    elif args.model == 5:
        with cm_effect.models.CMCombined_ICL_NoNoise_7(data, None) as model:
            model.build_model()

    elif args.model == 6:
        dp = DataPreprocessor(drop_HS=True)
        dp.N_smooth = 1
        data = dp.preprocess_data("notebooks/final_data/data_final.csv")
        with cm_effect.models.CMCombined_ICL_NoNoise_7(data, None) as model:
            model.build_model()

    with model.model:
        model.trace = pm.sample(1500, chains=6, target_accept=0.9)

    np.savetxt(f"icl_bugs/model_{args.model+2}.csv", model.trace.CMReduction)
Exemplo n.º 6
0
warnings.simplefilter(action="ignore", category=FutureWarning)

from epimodel.pymc3_models import cm_effect
from epimodel.pymc3_models.cm_effect.datapreprocessor import DataPreprocessor
import argparse
import pickle

argparser = argparse.ArgumentParser()
argparser.add_argument("--l", dest="last_date", type=int)
argparser.add_argument("--m", dest="model", type=int)
args = argparser.parse_args()

if __name__ == "__main__":

    last_dates = ["2020-04-25", "2020-05-05", "2020-05-15", "2020-05-25", "2020-05-30"]
    dp = DataPreprocessor()
    data = dp.preprocess_data("notebooks/double-entry-data/double_entry_final.csv",
                              last_day=last_dates[args.last_date])
    data.mask_reopenings()

    if args.model == 0:
        with cm_effect.models.CMCombined_Final(data, None) as model:
            model.build_model(serial_interval_mean=6.7, serial_interval_sigma=2.1)
    elif args.model == 1:
        with cm_effect.models.CMCombined_Final(data, None) as model:
            model.build_model(serial_interval_mean=5.1, serial_interval_sigma=1.8)
    elif args.model == 2:
        with cm_effect.models.CMCombined_Final(data, None) as model:
            model.build_model(serial_interval_mean=6.68, serial_interval_sigma=4.88)
    elif args.model == 3:
        with cm_effect.models.CMCombined_Final_Reset1(data, None) as model: