trimByPs: Trim persons by propensity score

View source: R/PsFunctions.R

trimByPsR Documentation

Trim persons by propensity score

Description

Use the provided propensity scores to trim subjects with extreme scores or weights.

Usage

trimByPs(population, trimByPsArgs = createTrimByPsArgs(trimFraction = 0.05))

Arguments

population

A data frame with the three columns described below

trimByPsArgs

An object of type trimByPsArgs as created by the createTrimByPsArgs() function.

Details

The data frame should have the following three columns:

  • rowId (numeric): A unique identifier for each row (e.g. the person ID).

  • treatment (integer): Column indicating whether the person is in the target (1) or comparator (0) group.

  • propensityScore (numeric): Propensity score.

Value

Returns a tibble with the same three columns as the input.

Examples

rowId <- 1:2000
treatment <- rep(0:1, each = 1000)
propensityScore <- c(runif(1000, min = 0, max = 1), runif(1000, min = 0, max = 1))
iptw <- ifelse(treatment == 1,
               mean(treatment == 1) / propensityScore,
               mean(treatment == 0) / (1 - propensityScore))
data <- data.frame(rowId = rowId,
                   treatment = treatment,
                   propensityScore = propensityScore,
                   iptw = iptw)
result1 <- trimByPs(data, createTrimByPsArgs(trimFraction = 0.05))
result2 <- trimByPs(data, createTrimByPsArgs(equipoiseBounds = c(0.3, 0.7)))
result3 <- trimByPs(data, createTrimByPsArgs(maxWeight = 10))


CohortMethod documentation built on March 21, 2026, 5:06 p.m.