# plot.optweight: Plot Dual Variables for Assessing Balance Constraints In optweight: Targeted Stable Balancing Weights Using Optimization

## Description

Plots the dual variables resulting from `optweight` in a way similar to figure 2 of Zubizarreta (2015), which explained how to interpret these values. These represent the cost of changing the constraint on the variance of the resulting weights. For covariates with large values of the dual variable, tightening the constraint will increase the variability of the weights, and loosening the constraint will decrease the variability of the weights, both to a greater extent than would doing the same for covariate with small values of the dual variable.

## Usage

 ```1 2 3 4 5``` ```## S3 method for class 'optweight' plot(x, which.time = 1, ...) ## S3 method for class 'optweight.svy' plot(x, ...) ```

## Arguments

 `x` An `optweight` or `optweight.svy` object; the output of a call to `optweight` or `optweight.svy`. `which.time` For longitudinal treatments, which time period to display. Only one may be displayed at a time. `...` Ignored.

## Value

A `ggplot` object that can be used with other ggplot2 functions.

Noah Greifer

## References

Zubizarreta, J. R. (2015). Stable Weights that Balance Covariates for Estimation With Incomplete Outcome Data. Journal of the American Statistical Association, 110(511), 910–922. doi: 10.1080/01621459.2015.1023805

`optweight` or `optweight.svy` to estimate the weights and the dual variables `plot.summary.optweight` for plots of the distribution of weights
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32``` ```library("cobalt") data("lalonde", package = "cobalt") #Balancing covariates between treatment groups (binary) ow1 <- optweight(treat ~ age + educ + married + nodegree + re74, data = lalonde, tols = c(.1, .1, .1, .1, .1), estimand = "ATT") summary(ow1) # Note the coefficient of variation # and effective sample size (ESS) plot(ow1) # age has a low value, married is high ow2 <- optweight(treat ~ age + educ + married + nodegree + re74, data = lalonde, tols = c(0, .1, .1, .1, .1), estimand = "ATT") summary(ow2) # Notice that tightening the constraint # on age had a negligible effect on the # variability of the weights and ESS ow3 <- optweight(treat ~ age + educ + married + nodegree + re74, data = lalonde, tols = c(.1, .1, 0, .1, .1), estimand = "ATT") summary(ow3) # In contrast, tightening the constraint # on married had a large effect on the # variability of the weights, shrinking # the ESS ```