Skip to content
Snippets Groups Projects
abm_fit_parameters.jl 1.64 KiB
using CovidAlertVaccinationModel
using OnlineStats
using Plots
using StatsBase
const parameters = (
    sim_length = 600,
    num_households = 5000,
    I_0_fraction = 0.005,
    base_transmission_probability = 0.001,
    recovery_rate = 1/7,
    immunization_loss_prob = 0.0055, #mean time of 6 months
    π_base = -4.0,
    η = 0.0,
    κ = 1.0,
    ω = 0.001,
    ρ = [0.0,0.0,0.0],
    ω_en = 0.00,
    ρ_en =  [0.0,0.0,0.0],
    γ = 0.0,
    β = 5.0,
    notification_parameter = 0.001,
    vaccinator_prob = 0.2,
    app_user_fraction = 0.4,
    notification_threshold = 2,
    immunizing = true,
    immunization_delay = 14,
    immunization_begin_day = 50,
    infection_introduction_day = 100
)

# seasonal_transmission_dist = CovidAlertVaccinationModel.fit_epi_parameters(parameters,0.073) ##seasonal
# outbreak_transmission_dist = CovidAlertVaccinationModel.fit_epi_parameters(parameters,0.241) ##outbreak



function plot_max_posterior(fname,particles)
    samples = 5
    base_transmission = mode(particles.P.particles)
    p_tuple_without_vac = merge(parameters,
        (
            sim_length = 150,
            immunization_begin_day = 0,
            infection_introduction_day = 1,
            immunizing = false,
        )
    )
    new_params = merge(p_tuple_without_vac, (base_transmission_probability = base_transmission,))
    out = mean_solve(samples, new_params ,DebugRecorder)
    p = plot_model(nothing,[nothing],[out],new_params.infection_introduction_day,new_params.immunization_begin_day)
    savefig(p,"$fname.pdf")
end
plot_max_posterior("seasonal", seasonal_transmission_dist)
plot_max_posterior("outbreak", outbreak_transmission_dist)