Learn R Programming

rsmatch (version 0.2.1)

coxpsmatch: Propensity Score Matching with Time-Dependent Covariates

Description

Perform propensity score matching as described in Lu (2005) "Propensity Score Matching with Time-Dependent Covariates". Given a longitudinal data frame with covariate information, along with treatment time, match treated individuals to those that haven't been treated yet (or are never treated) based on time-dependent propensity scores from a Cox proportional hazards model. Each treated individual is matched to one other individual, unless the number of pairs is specified.

Usage

coxpsmatch(
  n_pairs = 10^10,
  data,
  id = "id",
  time = "time",
  trt_time = "trt_time",
  covariates = NULL,
  exact_match = NULL,
  options = list(time_lag = FALSE)
)

Value

A data frame containing the pair information. The data frame has columns id, pair_id, and type. id matches the input parameter and will contain all ids from the input data frame. pair_id refers to the id of the computed pairs; NA values indicate unmatched individuals. type

indicates whether the individual in the pair is considered as treatment ("trt") or control ("all") in that pair.

Arguments

n_pairs

The number of pairs desired from matching.

data

A data.frame or similar containing columns matching the id, time, trt_time arguments, and covariates. This data frame is expected to be in tidy, long format, so that id, trt_time, and other variables may be repeated for different values of time. The data.frame should be unique at id and time.

id

A character specifying the id column name (default 'id').

time

A character specifying the time column name (default 'time').

trt_time

A character specifying the treatment time column name (default 'trt_time').

covariates

A character vector specifying the covariates to use for matching (default NULL). If NULL, this will default to all columns except those named by the id, time, and trt_time arguments.

exact_match

A vector of optional covariates to perform exact matching on. If NULL, no exact matching is done.

options

A list of additional parameters with the following components:

  • time_lag A logical value indicating whether the matches should be made on the time period preceding treatment. This can help avoid confounding if treatment happens between two periods.

Author

Mitchell Paukner

References

Lu, Bo. 2005. "Propensity Score Matching with Time-Dependent Covariates." Biometrics 61 (3): 721-28. tools:::Rd_expr_doi("10.1111/j.1541-0420.2005.00356.x")

Examples

Run this code
if (requireNamespace("survival", quietly = TRUE) &
  requireNamespace("nbpMatching", quietly = TRUE)) {
  library(dplyr, quietly = TRUE)
  pairs <- coxpsmatch(
    n_pairs = 13,
    data = oasis,
    id = "subject_id",
    time = "visit",
    trt_time = "time_of_ad"
  )

  na.omit(pairs)

  # evaluate the first match
  first_match <- pairs$subject_id[which(pairs$pair_id == 1)]
  oasis %>% dplyr::filter(subject_id %in% first_match)
}

Run the code above in your browser using DataLab