Skip to contents

These functions summarize the weights resulting from a call to optweight() or optweight.svy(). summary() produces summary statistics on the distribution of weights, including their range and variability, and the effective sample size of the weighted sample (computing using the formula in McCaffrey, Rudgeway, & Morral, 2004). plot() creates a histogram of the weights.

Usage

# S3 method for class 'optweight'
summary(object, top = 5, ignore.s.weights = FALSE, ...)

# S3 method for class 'optweightMSM'
summary(object, top = 5, ignore.s.weights = FALSE, ...)

# S3 method for class 'optweight.svy'
summary(object, top = 5, ignore.s.weights = FALSE, ...)

# S3 method for class 'summary.optweight'
plot(x, ...)

Arguments

object

An optweight, optweightMSM, or optweight.svy object; the output of a call to optweight() or optweight.svy().

top

How many of the largest and smallest weights to display. Default is 5.

ignore.s.weights

Whether or not to ignore sampling weights when computing the weight summary. If FALSE, the default, the estimated weights will be multiplied by the sampling weights (if any) before values are computed.

...

Additional arguments. For plot(), additional arguments passed to graphics::hist() to determine the number of bins, though ggplot2::geom_histogram() from ggplot2 is actually used to create the plot.

x

A summary.optweight, summary.optweightMSM, or summary.optweight.svy object; the output of a call to summary.optweight(), summary.optweightMSM(), or ()summary.optweight.svy.

Value

For point treatments (i.e., optweight objects), summary() returns a summary.optweight object with the following elements:

weight.range

The range (minimum and maximum) weight for each treatment group.

weight.top

The units with the greatest weights in each treatment group; how many are included is determined by top.

rms.dev

The root-mean-squared deviation of the estimated weights from the base weights (L2 norm).

mean.abs.dev

The mean absolute deviation of the estimated weights from the base weights (L1 norm).

max.abs.dev

The maximum absolute deviation of the estimated weights from the base weights (L\(\infinity\) norm).

num.zeros

The number of units with a weight equal to 0.

effective.sample.size

The effective sample size for each treatment group before and after weighting.

For longitudinal treatments (i.e., optweightMSM objects), a list of the above elements for each treatment period.

For optweight.svy objects, a list of the above elements but with no treatment group divisions.

plot() returns a ggplot object with a histogram displaying the distribution of the estimated weights. If the estimand is the ATT or ATC, only the weights for the non-focal group(s) will be displayed (since the weights for the focal group are all 1). A dotted line is displayed at the mean of the weights (usually 1).

References

McCaffrey, D. F., Ridgeway, G., & Morral, A. R. (2004). Propensity Score Estimation With Boosted Regression for Evaluating Causal Effects in Observational Studies. Psychological Methods, 9(4), 403–425. doi:10.1037/1082-989X.9.4.403

See also

plot.optweight() for plotting the values of the dual variables.

Examples

library("cobalt")
data("lalonde", package = "cobalt")

#Balancing covariates between treatment groups (binary)
(ow1 <- optweight(treat ~ age + educ + married +
                nodegree + re74, data = lalonde,
                tols = .001,
                estimand = "ATT"))
#> An optweight object
#>  - number of obs.: 614
#>  - sampling weights: none
#>  - treatment: 2-category
#>  - estimand: ATT (focal: 1)
#>  - covariates: age, educ, married, nodegree, re74

(s <- summary(ow1))
#> Summary of weights:
#> 
#> - Weight ranges:
#>         Min                                  Max
#> treated   1           ||                  1.0000
#> control   0 |---------------------------| 3.0186
#> 
#> - Units with 5 greatest weights by group:
#>                                            
#>               1      2      3      4      5
#>  treated      1      1      1      1      1
#>             404    226    224    111     84
#>  control 2.5106 2.5273 2.6258 2.7208 3.0186
#> 
#>         RMSE Dev Mean Abs Dev Max Abs Dev # Zeros
#> treated   0.0000        0.000      0.0000       0
#> control   0.7833        0.694      2.0186       0
#> 
#> - Effective Sample Sizes:
#>            Control Treated
#> Unweighted 429.000     185
#> Weighted   265.882     185
#> 

plot(s, breaks = 12)