A generic function used to weight data using estimated propensity scores. Six separate propensity score methods can be employed: (i) inverse probability weighting for the average treatment effect on the treated (IPTW-ATT weighting), (ii) IPTW-ATT weighting where controls with predicted propensity scores less than the 1st percentile or greater than the 99th percentile are trimmed (i.e., excluded), (iii) 1:1 nearest neighbor matching without a caliper, (iv) 1:1 nearest neighbor matching with a caliper (of 0.25 standard deviations of the linear propensity score), (v) 1:1 genetic matching without a caliper, and (vi) 1:1 genetic matching with a caliper. Matching is always performed without replacement unless the number of controls is less then the number of treated (in which case it is performed with replacement). Unadjusted (i.e., unweighted) results are also always returned.
psweight(object, ...) # S3 method for ps psweight( object, methods = c("iptw_att", "iptw_att_trim", "match_nearest", "match_nearest_caliper"), ... ) # S3 method for ps_mi psweight(object, ...) # S3 method for list psweight(object, progress = FALSE, outfile = "psweight_out", ...)
| object | An object of the appropriate class containing the propensity score to match on and other relevant information. |
|---|---|
| ... | Additional arguments to pass to |
| methods | The propensity score methods to use. Can select any combination
of the available methods. The default is to use IPTW-ATT weighting (with
and without trimming) and nearest neighbor matching (with and without a
caliper). Genetic matching can be employed using the options |
| progress | Logical. If |
| outfile | File path when |
A dplyr::tibble is always returned that contains (i) each
variable included in data, (ii) the columns ps and logit_ps and for the
propensity score and logit of the propensity score, respectively,
(iii) the column weight for the weight generated, (iv) the column method
for the propensity score method used, (v) the column exclude denoting
whether patients were excluded using either trimming or a caliper, and (vi)
the column method_type for the type of propensity score method (weighting,
matching, or none).
The returned object always inherits from dplyr::tibble but the class
depends on object. If object is of class ps_fit, then there is one row
for each patient and the returned object is of class psweight. If
object is of class ps_fit_mi, then an additional column imp is added
for the imputation number and an object of class psweight_mi is returned. Finally,
if object is of class list, then an additional column grp is added and
an object of class grouped_psweight or grouped_psweight_mi is returned.