| bal.tab.matchit {cobalt} | R Documentation |
Generates balance statistics for matchit objects from MatchIt. Note that several arguments that used to be documented here are now documented in display options. They are still available.
## S3 method for class 'matchit'
bal.tab(x,
stats,
int = FALSE,
poly = 1,
distance = NULL,
addl = NULL,
data = NULL,
continuous,
binary,
s.d.denom,
thresholds = NULL,
weights = NULL,
cluster = NULL,
imp = NULL,
abs = FALSE,
subset = NULL,
quick = TRUE,
...)
x |
a |
stats |
|
int |
|
poly |
|
distance |
an optional formula or data frame containing distance values (e.g., propensity scores) or a character vector containing their names. If a formula or variable names are specified, |
addl |
an optional formula or data frame containing additional covariates for which to present balance or a character vector containing their names. If a formula or variable names are specified, |
data |
an optional data frame containing variables that might be named in arguments to |
continuous |
whether mean differences for continuous variables should be standardized ("std") or raw ("raw"). Default "std". Abbreviations allowed. This option can be set globally using |
binary |
whether mean differences for binary variables (i.e., difference in proportion) should be standardized ("std") or raw ("raw"). Default "raw". Abbreviations allowed. This option can be set globally using |
s.d.denom |
|
thresholds |
a named vector of balance thresholds, where the name corresponds to the statistic (i.e., in |
weights |
a named list containing additional weights on which to assess balance. Each entry can be a vector of weights, the name of a variable in |
cluster |
either a vector containing cluster membership for each unit or a string containing the name of the cluster membership variable in |
imp |
either a vector containing imputation indices for each unit or a string containing the name of the imputation index variable in |
abs |
|
subset |
a |
quick |
|
... |
further arguments to control display of output. See display options for details. |
bal.tab.matchit() generates a list of balance summaries for the matchit object given, and functions similarly to summary.matchit() in MatchIt. bal.tab() behaves differently depending on whether subclasses are used in conditioning or not. If they are used, bal.tab() creates balance statistics for each subclass and for the sample in aggregate; see bal.tab.subclass for more information.
The threshold argument controls whether extra columns should be inserted into the Balance table describing whether the balance statistics in question exceeded or were within the threshold. Including these thresholds also creates summary tables tallying the number of variables that exceeded and were within the threshold and displaying the variables with the greatest imbalance on that balance measure. When subclassification is used, the extra threshold columns are placed within the balance tables for each subclass as well as in the aggregate balance table, and the summary tables display balance for each subclass.
If subclassification is used, an object of class "bal.tab.subclass" containing balance summaries within and across subclasses. See bal.tab.subclass for details.
If matching is used and clusters are not specified, an object of class "bal.tab" containing balance summaries for the matchit object. See bal.tab for details.
If clusters are specified, an object of class "bal.tab.cluster" containing balance summaries within each cluster and a summary of balance across clusters. See bal.tab.cluster for details.
When a user-supplied distance measure or Mahalanobis distance matching (method = "mahalanobis") are used with matchit(), full covariate information is not stored in the matchit output object. In particular, categorical variables are not retained as such, and so the dummies are treated as their own variables. The consequence of this is that for all but the first factor variable supplied to matchit(), the first category will be absent. In addition, full compatibility with functions that rely on variable names (like love.plot) will be hampered. To get around this issue, users can supply the original data frame to bal.tab() through the data argument, and the variables will be processed correctly.
Noah Greifer
bal.tab for details of calculations.
library(MatchIt); data("lalonde", package = "cobalt")
## Nearest Neighbor matching
m.out1 <- matchit(treat ~ age + educ + race +
married + nodegree + re74 + re75,
data = lalonde, method = "nearest")
bal.tab(m.out1, un = TRUE, m.threshold = .1,
v.threshold = 2)
## Subclassification
m.out2 <- matchit(treat ~ age + educ + race +
married + nodegree + re74 + re75,
data = lalonde, method = "subclass")
bal.tab(m.out2, disp.subclass = TRUE)