Builds a confidence interval for a quantity of interest. If multiple runs are available, uses the between-run variation to estimate the standard error. If only one run is available, uses information on the SMC particle/plan genealogy to estimate the standard error, using a variant of the method of Olson & Douc (2019). The multiple-run estimator is more reliable, especially for situations with many districts, and should be used when parallelism is available. All reference plans are ignored.

redist_smc_ci(plans, x, district = 1L, conf = 0.9)



a redist_plans object.


the quantity to build an interval for. Tidy-evaluated within plans.


for redist_plans objects with multiple districts, which district to subset to. Set to NULL to perform no subsetting.


the desired confidence level.


A tibble with three columns: X, X_lower, and X_upper, where X is the name of the vector of interest, containing the mean and confidence interval. When used inside summarize() this will create three columns in the output data.


Lee, A., & Whiteley, N. (2018). Variance estimation in the particle filter. Biometrika, 105(3), 609-625. Olsson, J., & Douc, R. (2019). Numerically stable online estimation of variance in particle filters. Bernoulli, 25(2), 1504-1535. H. P. Chan and T. L. Lai. A general theory of particle filters in hidden Markov models and some applications. Ann. Statist., 41(6):2877–2904, 2013.



iowa_map <- redist_map(iowa, existing_plan = cd_2010, pop_tol = 0.05)
plans <- redist_mergesplit_parallel(iowa_map, nsims = 200, chains = 2, silent = TRUE) %>%
    mutate(dem = group_frac(iowa_map, dem_08, dem_08 + rep_08)) %>%
redist_smc_ci(plans, dem)
#> Warning: Runs have not converged for this statistic.
#>  R-hat is 1.153
#> → Increase the number of samples.
#> # A tibble: 1 × 3
#>     dem dem_lower dem_upper
#>   <dbl>     <dbl>     <dbl>
#> 1 0.464     0.453     0.476