Skip to contents

Set up initial conditions for model

Usage

fv_inits(data, strains = 2)

Arguments

data

A list of data as produced by fv_as_data_list().

strains

Integer number of strains. Defaults to 2. Current maximum is 2.

Value

A function that when called returns a list of initial conditions for the package stan models.

See also

Functions used for modelling fv_as_data_list(), fv_model(), fv_sample()

Examples

dt <- fv_as_data_list(latest_obs(germany_covid19_delta_obs))
inits <- fv_inits(dt)
inits
#> function () 
#> {
#>     inits <- list(init_cases = array(log(abs(rnorm(1, data$X[1], 
#>         data$X[1] * 0.01)))), r_init = rnorm(1, data$r_init_mean, 
#>         data$r_init_sd * 0.1), r_scale = abs(rnorm(1, 0, 0.01)), 
#>         eta = rnorm(data$eta_n, 0, 0.01), beta = rnorm(1, 0, 
#>             0.1), sqrt_phi = array(abs(rnorm(2, 0, 0.01))), period_eff = numeric(0), 
#>         period_sd = numeric(0))
#>     if (data$period > 1) {
#>         inits$period_eff <- array(rnorm(data$period, 0, 0.1))
#>         inits$period_sd <- array(abs(rnorm(1, 0, 0.1)))
#>     }
#>     if (strains == 1) {
#>         inits$sqrt_phi <- array(inits$sqrt_phi[1])
#>     }
#>     else {
#>         inits$init_voc_cases <- array(log(abs(rnorm(1, max(2, 
#>             data$X[data$t_nseq + 1] * data$Y[1]/data$N[1]), max(2, 
#>             data$X[data$t_nseq + 1] * data$Y[1]/data$N[1]) * 
#>             0.01))))
#>         inits$voc_mod <- rnorm(1, data$voc_mean, data$voc_sd * 
#>             0.1)
#>         if (data$relat == 1) {
#>             inits$voc_beta <- array(rnorm(1, 0, 0.1))
#>         }
#>         else {
#>             inits$voc_beta <- numeric(0)
#>         }
#>         if (data$relat > 0) {
#>             inits$voc_scale <- array(abs(rnorm(1, 0, 0.01)))
#>             inits$voc_eta <- array(rnorm(data$voc_eta_n, 0, 0.01))
#>         }
#>         else {
#>             inits$voc_scale <- numeric(0)
#>             inits$voc_eta <- numeric(0)
#>         }
#>         if (data$relat == 2) {
#>             inits$L_Omega <- matrix(c(1, runif(1), 0, runif(1)), 
#>                 2, 2)
#>         }
#>     }
#>     if (data$overdisp == 0) {
#>         inits$sqrt_phi <- numeric(0)
#>     }
#>     return(inits)
#> }
#> <bytecode: 0x56147b0058f8>
#> <environment: 0x56147b0177a8>
inits()
#> $init_cases
#> [1] 11.39105
#> 
#> $r_init
#> [1] -0.002140911
#> 
#> $r_scale
#> [1] 0.01916657
#> 
#> $eta
#>  [1]  0.0189089153 -0.0065026105  0.0110080129  0.0052629302 -0.0106846367
#>  [6]  0.0044875815 -0.0092880806  0.0070017097 -0.0073147631 -0.0008622982
#> [11]  0.0176647064  0.0028966139 -0.0115996232 -0.0040765491 -0.0038134168
#> [16] -0.0037690796  0.0251046806  0.0081073505 -0.0027244378  0.0170639987
#> [21] -0.0029992846  0.0030125829  0.0032279109  0.0069573894 -0.0008951478
#> [26] -0.0083367101  0.0018424883  0.0054326334
#> 
#> $beta
#> [1] -0.05646581
#> 
#> $sqrt_phi
#> [1] 0.001178809 0.010368273
#> 
#> $period_eff
#> numeric(0)
#> 
#> $period_sd
#> numeric(0)
#> 
#> $init_voc_cases
#> [1] 5.314331
#> 
#> $voc_mod
#> [1] -0.005205521
#> 
#> $voc_beta
#> numeric(0)
#> 
#> $voc_scale
#> [1] 0.01724864
#> 
#> $voc_eta
#>  [1]  0.012336801  0.006332049 -0.006422060  0.012584784  0.010832405
#>  [6]  0.003503720  0.026068216  0.016902590  0.013814442 -0.011647833
#> [11] -0.004595146  0.006775294 -0.009185332 -0.003590734 -0.021343312
#> [16] -0.004122468  0.016588111 -0.001728851  0.015909188 -0.004188647
#> [21]  0.006121102  0.002350991  0.002984529 -0.006027265
#> 
#> $L_Omega
#>           [,1]      [,2]
#> [1,] 1.0000000 0.0000000
#> [2,] 0.8171342 0.3833459
#>