| rubins_pool | R Documentation |
Pools per-imputation block fits via Rubin's rules. When every draw also
carries a per-coefficient skewness vector $gamma, the third cumulant
is pooled by the law of total cumulants
\kappa_3 = E[\kappa_3(X | k)] + 3\,\mathrm{Cov}(\mu_k, \sigma_k^2) + \kappa_3(\mu_k),
giving a pooled skewness $gamma alongside the usual $mean / $se.
If any draw is missing $gamma, the third-cumulant path is skipped.
kappa3 is the third cumulant of the equal-weight mixture of the draws, so
gamma is standardized by that mixture's variance,
mean(se^2) + mean((beta - mean(beta))^2), not by V_total: Rubin's
(1 + 1/K) inflation of the between-draw variance is a correction to the
standard error for finite K, not a moment of the mixture.
rubins_pool(draws)
draws |
List of K draws. Each draw is a named list of submodel
results, each with |
A named list of pooled submodel summaries (every submodel any draw
carries), each with mean, se, V_within, V_between, V_total, K
(number of draws that contributed), and when applicable gamma (pooled
skewness) and kappa3 (pooled third cumulant).
# Three imputation draws of a two-coefficient submodel.
draws <- list(
list(m = list(beta = c(1.0, 0.50), se = c(0.2, 0.10))),
list(m = list(beta = c(1.2, 0.45), se = c(0.2, 0.10))),
list(m = list(beta = c(0.9, 0.55), se = c(0.2, 0.10)))
)
pooled <- rubins_pool(draws)
pooled$m$mean
pooled$m$se
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.