
Credible intervals for regression coefficients from a glmMixBayes fit
Source:R/mixbayes_glm_methods.R
confint.glmMixBayes.RdComputes posterior credible intervals for the regression coefficients in a
fitted glmMixBayes model. By default, intervals are returned for all
coefficients in component 1 of the mixture model. A subset of
coefficients can be selected using parm.
Usage
# S3 method for class 'glmMixBayes'
confint(object, parm = NULL, level = 0.95, ...)Value
A matrix with one row per coefficient and two columns giving the lower and upper credible interval bounds. Row names correspond to coefficient names.
Examples
# \donttest{
data(lifem)
# lifem data preprocessing
# For computational efficiency in the example, we work with a subset of the lifem data.
lifem <- lifem[order(-(lifem$commf + lifem$comml)), ]
lifem_small <- rbind(
head(subset(lifem, hndlnk == 1), 100),
head(subset(lifem, hndlnk == 0), 20)
)
x <- cbind(1, poly(lifem_small$unit_yob, 3, raw = TRUE))
y <- lifem_small$age_at_death
adj <- adjMixBayes(
linked.data = lifem_small,
priors = list(theta = "beta(2, 2)")
)
fit <- plglm(
age_at_death ~ poly(unit_yob, 3, raw = TRUE),
family = "gaussian",
adjustment = adj,
control = list(
iterations = 200,
burnin.iterations = 100,
seed = 123
)
)
#>
#> SAMPLING FOR MODEL 'glmMixBayes_gaussian' NOW (CHAIN 1).
#> Chain 1:
#> Chain 1: Gradient evaluation took 8e-05 seconds
#> Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 0.8 seconds.
#> Chain 1: Adjust your expectations accordingly!
#> Chain 1:
#> Chain 1:
#> Chain 1: WARNING: There aren't enough warmup iterations to fit the
#> Chain 1: three stages of adaptation as currently configured.
#> Chain 1: Reducing each adaptation stage to 15%/75%/10% of
#> Chain 1: the given number of warmup iterations:
#> Chain 1: init_buffer = 15
#> Chain 1: adapt_window = 75
#> Chain 1: term_buffer = 10
#> Chain 1:
#> Chain 1: Iteration: 1 / 200 [ 0%] (Warmup)
#> Chain 1: Iteration: 20 / 200 [ 10%] (Warmup)
#> Chain 1: Iteration: 40 / 200 [ 20%] (Warmup)
#> Chain 1: Iteration: 60 / 200 [ 30%] (Warmup)
#> Chain 1: Iteration: 80 / 200 [ 40%] (Warmup)
#> Chain 1: Iteration: 100 / 200 [ 50%] (Warmup)
#> Chain 1: Iteration: 101 / 200 [ 50%] (Sampling)
#> Chain 1: Iteration: 120 / 200 [ 60%] (Sampling)
#> Chain 1: Iteration: 140 / 200 [ 70%] (Sampling)
#> Chain 1: Iteration: 160 / 200 [ 80%] (Sampling)
#> Chain 1: Iteration: 180 / 200 [ 90%] (Sampling)
#> Chain 1: Iteration: 200 / 200 [100%] (Sampling)
#> Chain 1:
#> Chain 1: Elapsed Time: 0.599 seconds (Warm-up)
#> Chain 1: 0.77 seconds (Sampling)
#> Chain 1: 1.369 seconds (Total)
#> Chain 1:
#> Warning: The largest R-hat is NA, indicating chains have not mixed.
#> Running the chains for more iterations may help. See
#> https://mc-stan.org/misc/warnings.html#r-hat
#> Warning: Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable.
#> Running the chains for more iterations may help. See
#> https://mc-stan.org/misc/warnings.html#bulk-ess
#> Warning: Tail Effective Samples Size (ESS) is too low, indicating posterior variances and tail quantiles may be unreliable.
#> Running the chains for more iterations may help. See
#> https://mc-stan.org/misc/warnings.html#tail-ess
#>
#> ......................................................................................
#> . Method Time (sec) Status .
#> ......................................................................................
#> . ECR-ITERATIVE-1 0.075 Converged (2 iterations) .
#> ......................................................................................
#>
#> Relabelling all methods according to method ECR-ITERATIVE-1 ... done!
#> Retrieve the 1 permutation arrays by typing:
#> [...]$permutations$"ECR-ITERATIVE-1"
#> Retrieve the 1 best clusterings: [...]$clusters
#> Retrieve the 1 CPU times: [...]$timings
#> Retrieve the 1 X 1 similarity matrix: [...]$similarity
#> Label switching finished. Total time: 0.1 seconds.
confint(fit)
#> 2.5% 97.5%
#> (Intercept) 40.870372 49.12327
#> poly(unit_yob, 3, raw = TRUE)1 3.283853 18.82913
#> poly(unit_yob, 3, raw = TRUE)2 -2.127557 15.62196
#> poly(unit_yob, 3, raw = TRUE)3 -3.542098 18.74681
# }