Last data update: 2014.03.03

R: Bootstraping for propensity score analysis
PSAbootR Documentation

Bootstraping for propensity score analysis

Description

Bootstrapping has become a popular resampling method for estimating sampling distributions. And propensity score analysis (PSA) has become popular for estimating causal effects in observational studies. This function implements bootstrapping specifically for PSA. Like typical bootstrapping methods, this function estiamtes treatment effects for M random samples. However, unlike typical bootstrap methods, this function allows for separate sample sizes for treatment and control units. That is, under certain circumstances (e.g. when the ratio of treatment-to-control units is large) bootstrapping only the control units may be desirable. Additionally, this function provides a framework to use multiple PSA methods for each bootstrap sample.

Usage

PSAboot(Tr, Y, X, M = 100, formu = as.formula(paste0("treat ~ ",
  paste0(names(X), collapse = " + "))), control.ratio = 5,
  control.sample.size = min(control.ratio * min(table(Tr)), max(table(Tr))),
  control.replace = TRUE, treated.sample.size = min(table(Tr)),
  treated.replace = TRUE, methods = getPSAbootMethods(), parallel = TRUE,
  seed = NULL, ...)

Arguments

Tr

numeric (0 or 1) or logical vector of treatment indicators.

Y

vector of outcome varaible.

X

matrix or data frame of covariates used to estimate the propensity scores.

M

number of bootstrap samples to generate.

formu

formula used for estimating propensity scores. The default is to use all covariates in X.

control.ratio

the ratio of control units to sample relative to the treatment units.

control.sample.size

the size of each bootstrap sample of control units.

control.replace

whether to use replacement when sampling from control units.

treated.sample.size

the size of each bootstrap sample of treatment units. The default uses all treatment units for each boostrap sample.

treated.replace

whether to use replacement when sampling from treated units.

methods

a named vector of functions for each PSA method to use.

parallel

whether to run the bootstrap samples in parallel.

seed

random seed. Each iteration, i, will use a seed of seed + i.

...

other parameters passed to Match and psa.strata

Value

a list with following elements:

overall.summary

Data frame with the results using the complete dateset (i.e. unboostrapped results).

overall.details

Objects returned from each method for complete dataset.

pooled.summary

Data frame with results of each boostrap sample.

pooled.details

List of objects returned from each method for each boostrap sample.

control.sample.size

sample size used for control units.

treated.sample.size

sample size used for treated units.

control.replace

whether control units were sampled with replacement.

treated.replace

whether treated units were sampled with replacement.

Tr

vector of treatment assignment.

Y

vector out outcome.

X

matrix or data frame of covariates.

M

number of bootstrap samples.

See Also

getPSAbootMethods

Results