Skip to contents

This function "pools" (i.e. combines) multiple estimate_means objects, in a similar fashion as mice::pool().

Usage

pool_predictions(x, transform = NULL, ...)

Arguments

x

A list of estimate_means objects, as returned by estimate_means(), or estimate_predicted, as returned by estimate_relation() and related functions.

transform

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.

...

Currently not used.

Value

A data frame with pooled predictions.

Details

Averaging of parameters follows Rubin's rules (Rubin, 1987, p. 76). Pooling is applied to the predicted values on the scale of the linear predictor, not on the response scale, in order to have accurate pooled estimates and standard errors. The final pooled predicted values are then transformed to the response scale, using insight::link_inverse().

References

Rubin, D.B. (1987). Multiple Imputation for Nonresponse in Surveys. New York: John Wiley and Sons.

Examples

# example for multiple imputed datasets
data("nhanes2", package = "mice")
imp <- mice::mice(nhanes2, printFlag = FALSE)
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 | 30.54 | 1.67 | [9.38, 51.71] | 29.23
#> 40-59 | 24.83 | 1.55 | [5.16, 44.50] | 22.84
#> 60-99 | 23.15 | 1.71 | [1.48, 44.82] | 17.44
#> 
#> Variable predicted: bmi
#> Predictors modulated: age
#> Predictors averaged: hyp, chl (1.9e+02)
#>