MatchIt
Objectsbal.tab.matchit.Rd
Generates balance statistics for matchit
objects from MatchIt.
# S3 method for 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,
pairwise = TRUE,
s.weights = NULL,
abs = FALSE,
subset = NULL,
quick = TRUE,
method,
...)
a matchit
object; the output of a call to MatchIt::matchit()
.
see bal.tab()
for details.
See below for special notes on the distance
, s.d.denom
, and s.weights
arguments.
a character vector containing the method of adjustment. Ignored unless subclassification was used in the original call to matchit()
. If "weighting"
, the subclassification weights will be used and subclasses will be ignored. If "subclassification"
, balance will be assessed using the subclasses (see bal.tab.subclass
for details). Abbreviations allowed.
The following arguments have special notes when used with matchit
objects:
the distance measure (e.g., propensity score) generated by matchit()
is automatically included and named "distance".
if not specified, bal.tab()
will figure out which one is best based on the estimand of the matchit
object: if ATT, "treated"
; if ATC, "control"
, otherwise "pooled"
.
if s.weights
was supplied in the call to matchit()
, they will automatically be included and do not need be specified again (though there is no harm if they are).
bal.tab.matchit()
generates a list of balance summaries for the matchit
object given, and functions similarly to MatchIt::summary.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.
If subclassification is used and method
is set to "subclassification"
, 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.
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)
#> Call
#> matchit(formula = treat ~ age + educ + race + married + nodegree +
#> re74 + re75, data = lalonde, method = "nearest")
#>
#> Balance Measures
#> Type Diff.Un V.Ratio.Un Diff.Adj M.Threshold V.Ratio.Adj
#> distance Distance 1.7941 0.9211 0.9739 0.7566
#> age Contin. -0.3094 0.4400 0.0718 Balanced, <0.1 0.4568
#> educ Contin. 0.0550 0.4959 -0.1290 Not Balanced, >0.1 0.5721
#> race_black Binary 0.6404 . 0.3730 Not Balanced, >0.1 .
#> race_hispan Binary -0.0827 . -0.1568 Not Balanced, >0.1 .
#> race_white Binary -0.5577 . -0.2162 Not Balanced, >0.1 .
#> married Binary -0.3236 . -0.0216 Balanced, <0.1 .
#> nodegree Binary 0.1114 . 0.0703 Balanced, <0.1 .
#> re74 Contin. -0.7211 0.5181 -0.0505 Balanced, <0.1 1.3289
#> re75 Contin. -0.2903 0.9563 -0.0257 Balanced, <0.1 1.4956
#> V.Threshold
#> distance Balanced, <2
#> age Not Balanced, >2
#> educ Balanced, <2
#> race_black
#> race_hispan
#> race_white
#> married
#> nodegree
#> re74 Balanced, <2
#> re75 Balanced, <2
#>
#> Balance tally for mean differences
#> count
#> Balanced, <0.1 5
#> Not Balanced, >0.1 4
#>
#> Variable with the greatest mean difference
#> Variable Diff.Adj M.Threshold
#> race_black 0.373 Not Balanced, >0.1
#>
#> Balance tally for variance ratios
#> count
#> Balanced, <2 4
#> Not Balanced, >2 1
#>
#> Variable with the greatest variance ratio
#> Variable V.Ratio.Adj V.Threshold
#> age 0.4568 Not Balanced, >2
#>
#> Sample sizes
#> Control Treated
#> All 429 185
#> Matched 185 185
#> Unmatched 244 0
## Subclassification
m.out2 <- matchit(treat ~ age + educ + race +
married + nodegree + re74 + re75,
data = lalonde, method = "subclass")
bal.tab(m.out2, disp.subclass = TRUE)
#> Call
#> matchit(formula = treat ~ age + educ + race + married + nodegree +
#> re74 + re75, data = lalonde, method = "subclass")
#>
#> Balance by subclass
#> - - - Subclass 1 - - -
#> Type Diff.Adj
#> distance Distance 0.2785
#> age Contin. -0.4024
#> educ Contin. 0.1142
#> race_black Binary 0.0823
#> race_hispan Binary 0.1492
#> race_white Binary -0.2315
#> married Binary -0.2877
#> nodegree Binary -0.0003
#> re74 Contin. -0.5864
#> re75 Contin. -0.1729
#>
#> - - - Subclass 2 - - -
#> Type Diff.Adj
#> distance Distance 0.1873
#> age Contin. -0.7473
#> educ Contin. 0.1183
#> race_black Binary 0.0094
#> race_hispan Binary -0.0094
#> race_white Binary 0.0000
#> married Binary -0.2473
#> nodegree Binary -0.0121
#> re74 Contin. -0.0352
#> re75 Contin. -0.0970
#>
#> - - - Subclass 3 - - -
#> Type Diff.Adj
#> distance Distance -0.0140
#> age Contin. 0.0524
#> educ Contin. 0.1372
#> race_black Binary 0.0000
#> race_hispan Binary 0.0000
#> race_white Binary 0.0000
#> married Binary 0.3550
#> nodegree Binary 0.2191
#> re74 Contin. -0.2669
#> re75 Contin. -0.0970
#>
#> - - - Subclass 4 - - -
#> Type Diff.Adj
#> distance Distance -0.0003
#> age Contin. -0.0499
#> educ Contin. -0.1436
#> race_black Binary 0.0000
#> race_hispan Binary 0.0000
#> race_white Binary 0.0000
#> married Binary -0.1116
#> nodegree Binary -0.0417
#> re74 Contin. -0.0073
#> re75 Contin. -0.0801
#>
#> - - - Subclass 5 - - -
#> Type Diff.Adj
#> distance Distance -0.0224
#> age Contin. 0.2640
#> educ Contin. -0.2977
#> race_black Binary 0.0000
#> race_hispan Binary 0.0000
#> race_white Binary 0.0000
#> married Binary 0.0000
#> nodegree Binary 0.0376
#> re74 Contin. 0.0190
#> re75 Contin. 0.1233
#>
#> - - - Subclass 6 - - -
#> Type Diff.Adj
#> distance Distance 0.0143
#> age Contin. 0.5245
#> educ Contin. 0.2781
#> race_black Binary 0.0000
#> race_hispan Binary 0.0000
#> race_white Binary 0.0000
#> married Binary 0.0000
#> nodegree Binary -0.1290
#> re74 Contin. -0.0152
#> re75 Contin. -0.2407
#>