calibrate: Calibrate Propensity Score Weights

View source: R/calibrate.R

calibrateR Documentation

Calibrate Propensity Score Weights

Description

calibrate() calibrates propensity scores used in weights. This involves fitting a new propensity score model using logistic or isotonic regression with the previously estimated propensity score as the sole predictor. Weights are computed using this new propensity score.

Usage

calibrate(x, ...)

## Default S3 method:
calibrate(x, treat, s.weights = NULL, data = NULL, method = "platt", ...)

## S3 method for class 'weightit'
calibrate(x, ...)

Arguments

x

A weightit object or a vector of propensity scores. Only binary treatments are supported.

...

Not used.

treat

A vector of treatment status for each unit. Only binary treatments are supported.

s.weights

A vector of sampling weights or the name of a variable in data that contains sampling weights.

data

An optional data frame containing the variable named in s.weights when supplied as a string.

method

character; the method of calibration used. Allowable options include "platt" (default) for Platt scaling as described by Gutman et al. (2024) and "isoreg" for isotonic regression as described by van der Laan et al. (2024) and implemented in isoreg().

Value

If the input is a weightit object, the output will be a weightit object with the propensity scores replaced with the calibrated propensity scores and the weights replaced by weights computed from the calibrated propensity scores.

If the input is a numeric vector of weights, the output will be a numeric vector of the calibrated propensity scores.

References

Gutman, R., Karavani, E., & Shimoni, Y. (2024). Improving Inverse Probability Weighting by Post-calibrating Its Propensity Scores. Epidemiology, 35(4). \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1097/EDE.0000000000001733")}

van der Laan, L., Lin, Z., Carone, M., & Luedtke, A. (2024). Stabilized Inverse Probability Weighting via Isotonic Calibration (arXiv:2411.06342). arXiv. http://arxiv.org/abs/2411.06342

See Also

weightit(), weightitMSM()

Examples


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

#Using GBM to estimate weights
(W <- weightit(treat ~ age + educ + married +
                 nodegree + re74, data = lalonde,
               method = "gbm", estimand = "ATT",
               criterion = "smd.max"))
summary(W)

#Calibrating the GBM propensity scores
Wc <- calibrate(W)

#Calibrating propensity scores directly
PSc <- calibrate(W$ps, treat = lalonde$treat)


WeightIt documentation built on April 4, 2025, 2:05 a.m.