@@ -5,13 +5,15 @@ model_seed <- 122
5
5
6
6
# Create and run SIR Model for LFMCMC simulation -------------------------------
7
7
model_sir <- ModelSIR(name = " COVID-19" , prevalence = .1 ,
8
- transmission_rate = .9 , recovery_rate = .3 )
8
+ transmission_rate = .3 , recovery_rate = .3 )
9
9
agents_smallworld(model_sir , n = 1000 , k = 5 , d = FALSE , p = 0.01 )
10
10
verbose_off(model_sir )
11
11
run(model_sir , ndays = 50 , seed = model_seed )
12
12
13
+ # Check init of LFMCMC model without epiworld model ----------------------------
14
+ expect_silent(lfmcmc_nomodel <- LFMCMC())
15
+
13
16
# Check bad init of LFMCMC model -----------------------------------------------
14
- expect_error(lfmcmc_bad <- LFMCMC(), ' argument "model" is missing' )
15
17
expect_error(lfmcmc_bad <- LFMCMC(c(" not_a_model" )), " model should be of class 'epiworld_model'" )
16
18
17
19
# Create LFMCMC model ----------------------------------------------------------
@@ -22,7 +24,7 @@ expect_inherits(lfmcmc_model, "epiworld_lfmcmc")
22
24
expect_length(class(lfmcmc_model ), 1 )
23
25
24
26
# Extract observed data from the model
25
- obs_data <- unname(as.integer( get_today_total(model_sir )) )
27
+ obs_data <- get_today_total(model_sir )
26
28
27
29
expect_silent(set_observed_data(lfmcmc_model , obs_data ))
28
30
@@ -31,20 +33,19 @@ simfun <- function(params) {
31
33
set_param(model_sir , " Recovery rate" , params [1 ])
32
34
set_param(model_sir , " Transmission rate" , params [2 ])
33
35
run(model_sir , ndays = 50 )
34
- res <- unname(as.integer( get_today_total(model_sir )) )
36
+ res <- get_today_total(model_sir )
35
37
return (res )
36
38
}
37
39
38
40
sumfun <- function (dat ) { return (dat ) }
39
41
40
42
propfun <- function (params_prev ) {
41
- res <- params_prev + rnorm(length(params_prev ), )
43
+ res <- plogis(qlogis( params_prev ) + rnorm(length(params_prev )) )
42
44
return (res )
43
45
}
44
46
45
47
kernelfun <- function (stats_now , stats_obs , epsilon ) {
46
- ans <- sum(mapply(function (v1 , v2 ) (v1 - v2 )^ 2 , stats_obs , stats_now ))
47
- return (ifelse(sqrt(ans ) < epsilon , 1.0 , 0.0 ))
48
+ dnorm(sqrt(sum((stats_now - stats_obs )^ 2 )))
48
49
}
49
50
50
51
# Check adding functions to LFMCMC
@@ -72,8 +73,8 @@ expect_silent(set_par_names(lfmcmc_model, c("Immune recovery", "Infectiousness")
72
73
73
74
expect_stdout(print(lfmcmc_model ))
74
75
75
- expect_equal(get_stats_mean(lfmcmc_model ), c(4.45 , 2.6135 , 992.4365 ))
76
- expect_equal(get_params_mean(lfmcmc_model ), c(11.58421 , 18.96851 ), tolerance = 0.00001 )
76
+ expect_equal(get_stats_mean(lfmcmc_model ), c(284.7140 , 0.8485 , 713.9375 ))
77
+ expect_equal(get_params_mean(lfmcmc_model ), c(0.3132901 , 0.2782186 ), tolerance = 0.00001 )
77
78
78
79
# Check LFMCMC using factory functions -----------------------------------------
79
80
expect_silent(use_proposal_norm_reflective(lfmcmc_model ))
0 commit comments