This function "pools" (i.e. combines) multiple estimate_means objects, in
a similar fashion as mice::pool().
pool_predictions(x, transform = NULL, ...)
pool_slopes(x, transform = NULL, ...)A list of estimate_means objects, as returned by
estimate_means(), or estimate_predicted objects, as returned by
estimate_relation() and related functions. For pool_slopes(), must be
a list of estimate_slopes objects, as returned by estimate_slopes().
A function applied to predictions and confidence intervals
to (back-) transform results, which can be useful in case the regression
model has a transformed response variable (e.g., lm(log(y) ~ x)). For
Bayesian models, this function is applied to individual draws from the
posterior distribution, before computing summaries. Can also be TRUE, in
which case insight::get_transformation() is called to determine the
appropriate transformation-function. Note that no standard errors are returned
when transformations are applied.
Currently not used.
A data frame with pooled predictions.
Averaging of parameters follows Rubin's rules (Rubin, 1987, p. 76).
Pooling is applied to the predicted values and based on the standard errors
as they are calculated in the estimate_means or estimate_predicted
objects provided in x. For objects of class estimate_means, the predicted
values are on the response scale by default, and standard errors are
calculated using the delta method. Then, pooling estimates and calculating
standard errors for the pooled estimates based ob Rubin's rule is carried
out. There is no back-transformation to the link-scale of predicted values
before applying Rubin's rule.
Rubin, D.B. (1987). Multiple Imputation for Nonresponse in Surveys. New York: John Wiley and Sons.
# example for multiple imputed datasets
data("nhanes2", package = "mice")
imp <- mice::mice(nhanes2, printFlag = FALSE)
# estimated marginal means
predictions <- lapply(1:5, function(i) {
m <- lm(bmi ~ age + hyp + chl, data = mice::complete(imp, action = i))
estimate_means(m, "age")
})
pool_predictions(predictions)
#> Estimated Marginal Means
#>
#> age | Mean | SE | 95% CI | t(1)
#> ---------------------------------------------
#> 20-39 | 31.17 | 1.31 | [14.49, 47.86] | 23.74
#> 40-59 | 25.12 | 1.17 | [10.23, 40.02] | 21.43
#> 60-99 | 22.93 | 1.44 | [ 4.58, 41.28] | 15.88
#>
#> Variable predicted: bmi
#> Predictors modulated: age
#> Predictors averaged: hyp, chl (1.9e+02)
# estimated slopes (marginal effects)
slopes <- lapply(1:5, function(i) {
m <- lm(bmi ~ age + hyp + chl, data = mice::complete(imp, action = i))
estimate_slopes(m, "chl")
})
pool_slopes(slopes)
#> Estimated Marginal Effects
#>
#> Slope | SE | 95% CI | t(20) | p
#> -------------------------------------------
#> 0.06 | 0.02 | [0.02, 0.09] | 3.15 | 0.005
#>
#> Marginal effects estimated for chl
#> Type of slope was dY/dX