Skip to contents

Extract inferred posterior(s) as a standard data frame

Usage

extract_posterior(abc, param = NULL, posterior = c("adj", "unadj"))

Arguments

abc

An object produced by run_abc

param

A character vector containing either parameter names to summarize, or a regex-like matches to be used for subsetting. If NULL (the default), all parameters will be extracted.

posterior

Should an "adj"-usted or "unadj"-usted posterior be extracted? (Default is "adj").

Value

A data frame in the long format with posterior values of parameters

Examples

# read example ABC result with an inferred joint posterior distribution
abc_res <- readRDS(system.file("examples/basics_abc.rds", package = "demografr"))

# extract the entire posterior sample for all parameters as a data frame
extract_posterior(abc_res)
#> # A tibble: 800 × 2
#>    param     value
#>    <chr>     <dbl>
#>  1 Ne_A  1787.    
#>  2 Ne_B   975.    
#>  3 Ne_C  8934.    
#>  4 Ne_D  3999.    
#>  5 T_AB  2161.    
#>  6 T_BC  6087.    
#>  7 T_CD  8094.    
#>  8 gf_BC    0.0305
#>  9 Ne_A  2105.    
#> 10 Ne_B   807.    
#> # ℹ 790 more rows

# extract the posterior sample for one parameter
extract_posterior(abc_res, param = "Ne_A")
#> # A tibble: 100 × 2
#>    param value
#>    <chr> <dbl>
#>  1 Ne_A  1787.
#>  2 Ne_A  2105.
#>  3 Ne_A  2176.
#>  4 Ne_A  1924.
#>  5 Ne_A  1981.
#>  6 Ne_A  2222.
#>  7 Ne_A  1868.
#>  8 Ne_A  1989.
#>  9 Ne_A  1955.
#> 10 Ne_A  2034.
#> # ℹ 90 more rows

# extract posterior samples for parameters matching a regex
extract_posterior(abc_res, param = "^Ne_")
#> # A tibble: 400 × 2
#>    param value
#>    <chr> <dbl>
#>  1 Ne_A  1787.
#>  2 Ne_B   975.
#>  3 Ne_C  8934.
#>  4 Ne_D  3999.
#>  5 Ne_A  2105.
#>  6 Ne_B   807.
#>  7 Ne_C  8588.
#>  8 Ne_D  3602.
#>  9 Ne_A  2176.
#> 10 Ne_B   845.
#> # ℹ 390 more rows