with: Evaluates an Expression in Matched or Weighted Imputed...

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

with() runs a model on the n imputed datasets of the supplied mimids or wimids object. The typical sequence of steps to do a matching procedure on the imputed datasets are:

  1. Impute the missing values using the mice() function (from the mice package) or the amelia() function (from the Amelia package), resulting in a multiple imputed dataset (an object of the mids or amelia class);

  2. Match or weight each imputed dataset using matchthem() or weightthem(), resulting in an object of the mimids or wimids class;

  3. Check the extent of balance of covariates across the matched datasets (using functions in cobalt);

  4. Fit the statistical model of interest on each matched dataset by the with() function, resulting in an object of the mimira class; and

  5. Pool the estimates from each model into a single set of estimates and standard errors, resulting in an object of the mipo class.

Usage

1
2
3
4
5
## S3 method for class 'mimids'
with(data, expr, cluster, ...)

## S3 method for class 'wimids'
with(data, expr, ...)

Arguments

data

An mimids or wimids object, typically produced by a previous call to the matchthem() or weightthem().

expr

An expression (usually a call to a modeling function like glm(), coxph(), svyglm(), etc.) to evaluate for each imputed data set. See Details.

cluster

When a function from survey (e.g., svyglm()) is supplied in expr, whether the standard errors should incorporate clustering due to dependence between matched pairs. This is done by supplying the variable containing pair membership to the ids argument of link[survey:svydesign]{svydesign()}. If unspecified, it will be set to TRUE if subclasses (i.e., pairs) are present in the output and there are 20 or more unique subclasses. It will be ignored for matching methods that don't return subclasses (e.g., matching with replacement).

...

Additional arguments to be passed to expr.

Details

with() applies the supplied model in expr to the matched or weighrd imputed datasets, automatically incorporating the (matching) weights when possible. The argument to expr should be of the form glm(y ~ z, family = quasibinomial), for example, excluding the data or weights argument, which are automatically supplied.
Functions from the survey package, such as svyglm(), are treated a bit differently. No svydesign objcect needs to be supplied because with() automatically constructs and supplies it with the imputed dataset and estimated weights. When cluster = TRUE (or with() detects that pairs should be clustered; see Arguments above), pair membership is supplied to the ids argument of svydesign().
For generalized linear models, it is always recommended to use svyglm() rather than glm() in order to correctly compute standard errors. For Cox models, coxph() will produce correct standard errors when used with weighting but svycoxph() will produce more accurate standard errors when matching is used.

Value

An object of the mimira class containing the output of the analyses.

Author(s)

Farhad Pishgar and Noah Greifer

References

Stef van Buuren and Karin Groothuis-Oudshoorn (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of Statistical Software, 45(3): 1-67. https://www.jstatsoft.org/v45/i03/

See Also

matchthem()

weightthem()

mice::with.mids()

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#Loading libraries
library(MatchThem)
library(survey)

#Loading the dataset
data(osteoarthritis)

#Multiply imputing the missing values
imputed.datasets <- mice::mice(osteoarthritis, m = 5)

#Matching in the multiply imputed datasets
matched.datasets <- matchthem(OSP ~ AGE + SEX + BMI + RAC + SMK,
                                imputed.datasets,
                                approach = 'within',
                                method = 'nearest')

#Analyzing the matched datasets
models <- with(matched.datasets,
               svyglm(KOA ~ OSP, family = binomial),
               cluster = TRUE)

Example output

Loading required package: MatchIt
Loading required package: WeightIt
Loading required package: grid
Loading required package: Matrix
Loading required package: survival

Attaching package:surveyThe following object is masked frompackage:graphics:

    dotchart


 iter imp variable
  1   1  BMI  RAC  SMK  OSP  KOA
  1   2  BMI  RAC  SMK  OSP  KOA
  1   3  BMI  RAC  SMK  OSP  KOA
  1   4  BMI  RAC  SMK  OSP  KOA
  1   5  BMI  RAC  SMK  OSP  KOA
  2   1  BMI  RAC  SMK  OSP  KOA
  2   2  BMI  RAC  SMK  OSP  KOA
  2   3  BMI  RAC  SMK  OSP  KOA
  2   4  BMI  RAC  SMK  OSP  KOA
  2   5  BMI  RAC  SMK  OSP  KOA
  3   1  BMI  RAC  SMK  OSP  KOA
  3   2  BMI  RAC  SMK  OSP  KOA
  3   3  BMI  RAC  SMK  OSP  KOA
  3   4  BMI  RAC  SMK  OSP  KOA
  3   5  BMI  RAC  SMK  OSP  KOA
  4   1  BMI  RAC  SMK  OSP  KOA
  4   2  BMI  RAC  SMK  OSP  KOA
  4   3  BMI  RAC  SMK  OSP  KOA
  4   4  BMI  RAC  SMK  OSP  KOA
  4   5  BMI  RAC  SMK  OSP  KOA
  5   1  BMI  RAC  SMK  OSP  KOA
  5   2  BMI  RAC  SMK  OSP  KOA
  5   3  BMI  RAC  SMK  OSP  KOA
  5   4  BMI  RAC  SMK  OSP  KOA
  5   5  BMI  RAC  SMK  OSP  KOA
Matching Observations  | dataset: #1 #2 #3 #4 #5

MatchThem documentation built on March 31, 2021, 9:08 a.m.