Draws parameters from independent uniform priors, simulates summary
statistics, and keeps the draw when the Euclidean distance to the
observed summaries is at most eps (Pritchard et al. 1999).
As eps tends to zero the accepted draws tend to the exact
posterior and the acceptance rate tends to zero, which is the
trade-off the method is built around.
Arguments
- sim
Function
(theta, rng)returning summary statistics;rngis the generator environment, so a stochastic simulator stays reproducible.- obs
Observed summary statistics.
- eps
Acceptance tolerance, positive.
- prior
List of
c(low, high)pairs, one per parameter.- n_draws
Number of prior draws.
- seed
Seed for the generator shared with the Python arm.
Value
A list with samples, n_accepted,
acceptance_rate, distances, posterior_mean,
eps, n_draws, seed, method.
References
Pritchard, J. K. et al. (1999). Population growth of human Y chromosomes. Molecular Biology and Evolution, 16(12), 1791-1798.
Examples
prior <- list(c(-2, 2))
sim <- function(theta, rng) theta[1]
morie_abcrej(sim, obs = 0.5, eps = 0.5, prior, n_draws = 200)
#> $samples
#> $samples[[1]]
#> [1] 0.09580237
#>
#> $samples[[2]]
#> [1] 0.2206701
#>
#> $samples[[3]]
#> [1] 0.8328893
#>
#> $samples[[4]]
#> [1] 0.07392874
#>
#> $samples[[5]]
#> [1] 0.6408411
#>
#> $samples[[6]]
#> [1] 0.3026435
#>
#> $samples[[7]]
#> [1] 0.545936
#>
#> $samples[[8]]
#> [1] 0.07685955
#>
#> $samples[[9]]
#> [1] 0.4234266
#>
#> $samples[[10]]
#> [1] 0.9979665
#>
#> $samples[[11]]
#> [1] 0.1959303
#>
#> $samples[[12]]
#> [1] 0.4746231
#>
#> $samples[[13]]
#> [1] 0.3538484
#>
#> $samples[[14]]
#> [1] 0.2898825
#>
#> $samples[[15]]
#> [1] 0.008228678
#>
#> $samples[[16]]
#> [1] 0.2781611
#>
#> $samples[[17]]
#> [1] 0.02287935
#>
#> $samples[[18]]
#> [1] 0.1851195
#>
#> $samples[[19]]
#> [1] 0.9734549
#>
#> $samples[[20]]
#> [1] 0.6307447
#>
#> $samples[[21]]
#> [1] 0.3934232
#>
#> $samples[[22]]
#> [1] 0.7691149
#>
#> $samples[[23]]
#> [1] 0.4986873
#>
#> $samples[[24]]
#> [1] 0.5245781
#>
#> $samples[[25]]
#> [1] 0.3843461
#>
#> $samples[[26]]
#> [1] 0.06925807
#>
#> $samples[[27]]
#> [1] 0.1207822
#>
#> $samples[[28]]
#> [1] 0.9983336
#>
#> $samples[[29]]
#> [1] 0.9001348
#>
#> $samples[[30]]
#> [1] 0.1223538
#>
#> $samples[[31]]
#> [1] 0.2783322
#>
#> $samples[[32]]
#> [1] 0.6863383
#>
#> $samples[[33]]
#> [1] 0.8813736
#>
#> $samples[[34]]
#> [1] 0.6905217
#>
#> $samples[[35]]
#> [1] 0.7785967
#>
#> $samples[[36]]
#> [1] 0.6309466
#>
#> $samples[[37]]
#> [1] 0.7471134
#>
#> $samples[[38]]
#> [1] 0.1843142
#>
#> $samples[[39]]
#> [1] 0.002500744
#>
#> $samples[[40]]
#> [1] 0.3619053
#>
#> $samples[[41]]
#> [1] 0.9391773
#>
#> $samples[[42]]
#> [1] 0.3774954
#>
#> $samples[[43]]
#> [1] 0.7986797
#>
#>
#> $n_accepted
#> [1] 43
#>
#> $acceptance_rate
#> [1] 0.215
#>
#> $distances
#> [1] 0.404197633 0.279329935 0.332889339 0.426071264 0.140841143 0.197356476
#> [7] 0.045936029 0.423140447 0.076573422 0.497966492 0.304069738 0.025376904
#> [13] 0.146151563 0.210117536 0.491771322 0.221838921 0.477120645 0.314880496
#> [19] 0.473454892 0.130744748 0.106576823 0.269114909 0.001312736 0.024578068
#> [25] 0.115653947 0.430741929 0.379217778 0.498333614 0.400134806 0.377646185
#> [31] 0.221667816 0.186338285 0.381373572 0.190521736 0.278596691 0.130946627
#> [37] 0.247113353 0.315685771 0.497499256 0.138094700 0.439177327 0.122504573
#> [43] 0.298679702
#>
#> $posterior_mean
#> [1] 0.4595847
#>
#> $eps
#> [1] 0.5
#>
#> $n_draws
#> [1] 200
#>
#> $seed
#> [1] 0
#>
#> $method
#> [1] "ABC rejection (Pritchard et al. 1999)"
#>
