Skip to content
Snippets Groups Projects
Commit 59744455 authored by Peter Jentsch's avatar Peter Jentsch
Browse files

first attempt with O distribution shift.. did not work

parent 133000c9
No related branches found
No related tags found
No related merge requests found
...@@ -520,8 +520,8 @@ uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" ...@@ -520,8 +520,8 @@ uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b"
version = "0.6.3" version = "0.6.3"
[[KissABC]] [[KissABC]]
deps = ["AbstractMCMC", "Distributions", "MonteCarloMeasurements", "Random"] deps = ["AbstractMCMC", "Distributed", "Distributions", "MonteCarloMeasurements", "Random", "ThreadsX"]
git-tree-sha1 = "693d4bd4cbb9ad6515414e0935bbd646b15fc16a" path = "/home/peterj/Projects/PRs/KissABC.jl/"
uuid = "9c9dad79-530a-4643-a18b-2704674d4108" uuid = "9c9dad79-530a-4643-a18b-2704674d4108"
version = "3.0.1" version = "3.0.1"
......
No preview for this file type
...@@ -69,17 +69,19 @@ function fit_all_parameters(p_tuple) ...@@ -69,17 +69,19 @@ function fit_all_parameters(p_tuple)
return NamedTuple{p_names}(ntuple(i -> out.P[i].particles,length(p_names))) return NamedTuple{p_names}(ntuple(i -> out.P[i].particles,length(p_names)))
end end
function fit_distribution_parameters(p_tuple) function fit_distribution_parameters(p_tuple)
p_names = (:ω,:β_y,:π_base_y,:π_base_m,:π_base_o,:α_y,:α_m,:α_o,:O_distribution_shift) p_names = (:ω,:β_y,:β_m,:β_o,:π_base_y,:π_base_m,:π_base_o,:α_y,:α_m,:α_o,:O_distribution_shift)
priors = Factored( priors = Factored(
Uniform(0.0,0.01), Uniform(0.0,0.01),
Uniform(0.0,0.5), Uniform(0.0,0.5),
Uniform(0.0,0.5),
Uniform(0.0,1.0),
Uniform(-5.0,3.0), Uniform(-5.0,3.0),
Uniform(-5.0,3.0), Uniform(-5.0,3.0),
Uniform(-5.0,3.0), Uniform(-5.0,3.0),
TriangularDist(23.0, 44.0, 34.0), TriangularDist(23.0, 44.0, 34.0),
TriangularDist(22.0, 54.0, 40.0), TriangularDist(22.0, 54.0, 40.0),
TriangularDist(9.0, 59.0, 39.0), TriangularDist(9.0, 59.0, 39.0),
Uniform(0.0,0.2), Uniform(0.0,1.0),
) )
#simulation begins in july #simulation begins in july
#60 days for opinion dynamics to stabilize, then immunization begins in september, #60 days for opinion dynamics to stabilize, then immunization begins in september,
...@@ -113,7 +115,7 @@ function fit_distribution_parameters(p_tuple) ...@@ -113,7 +115,7 @@ function fit_distribution_parameters(p_tuple)
return sum((normalize_by_pop(total_preinfection_vaccination .- target_ymo_vac)).^2) return sum((normalize_by_pop(total_preinfection_vaccination .- target_ymo_vac)).^2)
+ sum(normalize_by_pop((total_postinf_vaccination .- target_ymo_vac)).^2) + sum(normalize_by_pop((total_postinf_vaccination .- target_ymo_vac)).^2)
+ sum(normalize_by_pop((final_size .- target_final_size)).^2) + 5*sum(normalize_by_pop((final_size .- target_final_size)).^2)
# display(final_size) # display(final_size)
# display( sum.(eachrow(ymo_vaccination_ts[:,1:end]))) # display( sum.(eachrow(ymo_vaccination_ts[:,1:end])))
# display( length.(model.index_vectors)) # display( length.(model.index_vectors))
...@@ -121,7 +123,7 @@ function fit_distribution_parameters(p_tuple) ...@@ -121,7 +123,7 @@ function fit_distribution_parameters(p_tuple)
end end
# display(cost((0.0,0.0005,-3.0,-3.0,-0.2,0.25,0.25,0.0,0.1))) # display(cost((0.0,0.0005,-3.0,-3.0,-0.2,0.25,0.25,0.0,0.1)))
# #
out = smc(priors,cost; verbose = true, nparticles = 300, parallel = true) out = smc(priors,cost; verbose = true, nparticles = 800, parallel = true)
return NamedTuple{p_names}(ntuple(i -> out.P[i].particles,length(p_names))) return NamedTuple{p_names}(ntuple(i -> out.P[i].particles,length(p_names)))
end end
function fit_parameters(default_parameters) function fit_parameters(default_parameters)
...@@ -131,17 +133,17 @@ function fit_parameters(default_parameters) ...@@ -131,17 +133,17 @@ function fit_parameters(default_parameters)
fit_dist_parameters_path = joinpath(PACKAGE_FOLDER,"abm_parameter_fits","fit_dist_parameters.dat") fit_dist_parameters_path = joinpath(PACKAGE_FOLDER,"abm_parameter_fits","fit_dist_parameters.dat")
output = fit_distribution_parameters(default_parameters) # output = fit_distribution_parameters(default_parameters)
# serialize(fit_all_parameters_path,output) # serialize(fit_all_parameters_path,output)
# fitted_parameter_tuple = deserialize(fit_all_parameters_path) fitted_parameter_tuple = deserialize(fit_all_parameters_path)
# fitted_sol,avg_populations = plot_fitting_posteriors("post_inf_fitting",fitted_parameter_tuple,default_parameters) fitted_sol,avg_populations = plot_fitting_posteriors("post_inf_fitting",fitted_parameter_tuple,default_parameters)
# final_vac = sum.(eachrow(mean.(fitted_sol.daily_immunized_by_age))) final_vac = sum.(eachrow(mean.(fitted_sol.daily_immunized_by_age)))
# final_size = sum.(eachrow(mean.(fitted_sol.daily_unvac_cases_by_age))) final_size = sum.(eachrow(mean.(fitted_sol.daily_unvac_cases_by_age)))
# display(final_vac./avg_populations) display(final_vac./avg_populations)
# display(final_size./avg_populations) display(final_size./avg_populations)
return fitted_sol return fitted_sol
end end
...@@ -152,13 +154,13 @@ function plot_fitting_posteriors(fname,particles_tuple,parameters) ...@@ -152,13 +154,13 @@ function plot_fitting_posteriors(fname,particles_tuple,parameters)
avg_populations = [0.0,0.0,0.0] avg_populations = [0.0,0.0,0.0]
names = keys(particles_tuple) names = keys(particles_tuple)
samples = collect(zip(particles_tuple...)) samples = collect(zip(particles_tuple...))
for p_set in sample(samples,10) for p_set in sample(samples,20)
p_set_named = NamedTuple{names}(p_set) p_set_named = NamedTuple{names}(p_set)
sol = abm(merge(parameters,p_set_named),output_recorder) sol = abm(merge(parameters,p_set_named),output_recorder)
avg_populations .+= length.(sol.index_vectors) avg_populations .+= length.(sol.index_vectors)
fit!(stat_recorder,output_recorder) fit!(stat_recorder,output_recorder)
end end
avg_populations ./= 10 avg_populations ./= 20
p = plot_model(nothing,[nothing],[stat_recorder],parameters.infection_introduction_day,parameters.immunization_begin_day) p = plot_model(nothing,[nothing],[stat_recorder],parameters.infection_introduction_day,parameters.immunization_begin_day)
savefig(p, "$fname.pdf") savefig(p, "$fname.pdf")
......
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment